分布式集群手操 – Hadoop搭建

Hadoop的分布式集群搭建示例,是在分布式节点部署准备工作基础上的首个集群搭建示例,后续集群将以此为基础。

在搭建集群前,请确认以做好分布式节点部署的准备工作,参见《分布式节点部署准备工作》

下载Hadoop

访问 http://www.apache.org/dyn/closer.cgi/hadoop/common 网站以获取可用的镜像地址。

以北京理工大学镜像为例:

访问:http://mirror.bit.edu.cn/apache/hadoop/common/ ,在列表中选择合适的Hadoop版本下载,每个版本文件夹内含四种文件,分别是以-src.tar.gz为后缀的源码文件、.mds为后缀的校验文件(俩),以及.tar.gz的已编译文件,如无特殊要求,一般下载体积较大的编译文件。

Hadoop2.6.4为例,该已编译文件大小约为187MB,下载后通过XShell文件传输上载到某节点目录(例如hdfs1节点)。使用tar命令解压,然后执行相关配置即可。

参考命令:

解压tar.gz文件:tar -zvxf <压缩文件名>

配置Hadoop

为保持用户目录整洁,习惯上对其进行归纳并适当重命名,在用户目录下创建文件夹Services,定义所有Hadoop集群相关组件均以此为基础安装目录。

规划

三台节点分别为hdfs1hdfs2hdfs3,其中,NameNodeJobTrackerSecondaryNameNode以及ResourceManager均在主节点hdfs1上,其余两节点均为DataNodeTaskTracker.

修改用户目录下的.bash_profile文件,添加或修改如下内容:

.bash_profile
1
2
export HADOOP_HOME=/home/bigdata/services/hadoop-2.6.4
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

修改配置文件

进入Hadoop配置文件路径(./etc/hadoop/),配置以下文件内容:

  • 修改hadoop-env.shyarn-env.sh,设置JAVA_HOME为当前系统JDK安装的绝对路径
  • 修改core-site.xml,添加如下配置:
core-site.xml
1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdfs1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/services/tmp</value>
</property>
</configuration>
  • 修改hdfs-site.xml,添加如下配置:
hdfs-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/bigdata/services/tmp/dfs/data</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/bigdata/services/tmp/dfs/name</value>
</property>
<property>
<name>dfs.heartbeat.interval</name>
<value>3</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>67108864</value>
</property>
<property>
<name>dfs.http.address</name>
<value>hdfs1:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdfs1:50090</value>
</property>
</configuration>
  • 新建文件名为masters,写入如下内容:
masters
1
hdfs1
  • 修改mapred-site.xml,添加如下配置:
mapred-site.xml
1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hdfs1:9001</value>
</property>
</configuration>
  • 修改yarn-site.xml,添加如下配置:
yarn-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hdfs1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
  • 修改slaves,添加如下配置:
slaves
1
2
hdfs2
hdfs3

通过scp -r传送配置好的Hadoop至其他节点,并使环境生效。

启动Hadoop

格式化NameNode

1
hadoop namenode -format

启动HDFS

1
sbin/start-dfs.sh

启动Yarn

1
sbin/start-yarn.sh

运行测试

切换至./share/hadoop/mapreduce/,运行示例任务

1
hadoop jar hadoop-mapreduce-examples-2.6.4.jar pi 2 2

注意:hdfs启动后处于安全模式中,直到收到足够多的各DataNode文件块报告并加载,以组成元数据,才会退出安全模式,在安全模式下不能运行或提交任何Job,否则会抛出异常并提示安全模式预计还有多久关闭。

查看管理


分布式集群手操 – Hadoop搭建
https://vicasong.github.io/big-data/hadoop-distribute-install/
作者
Vica
发布于
2016年9月5日
许可协议