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集群相关组件均以此为基础安装目录。
规划
三台节点分别为hdfs1
、hdfs2
、hdfs3
,其中,NameNode、JobTracker和SecondaryNameNode以及ResourceManager均在主节点hdfs1
上,其余两节点均为DataNode、TaskTracker.
修改用户目录下的.bash_profile
文件,添加或修改如下内容:
.bash_profile1 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.sh
及yarn-env.sh
,设置JAVA_HOME为当前系统JDK安装的绝对路径
- 修改
core-site.xml
,添加如下配置:
core-site.xml1 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.xml1 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>
|
- 修改
mapred-site.xml
,添加如下配置:
mapred-site.xml1 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.xml1 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>
|
通过scp -r
传送配置好的Hadoop至其他节点,并使环境生效。
启动Hadoop
格式化NameNode
启动HDFS
启动Yarn
运行测试
切换至./share/hadoop/mapreduce/
,运行示例任务
1
| hadoop jar hadoop-mapreduce-examples-2.6.4.jar pi 2 2
|
注意:hdfs启动后处于安全模式中,直到收到足够多的各DataNode文件块报告并加载,以组成元数据,才会退出安全模式,在安全模式下不能运行或提交任何Job,否则会抛出异常并提示安全模式预计还有多久关闭。
查看管理