一、集群搭建
一、集群规划
主机名 | IP地址 | NN-1 | NN-2 | DN | ZK | ZKFC | JNN | RS | NameNode |
---|---|---|---|---|---|---|---|---|---|
node01 | 192.168.163.128 | √ | √ | √ | √ | ||||
node02 | 192.168.163.129 | √ | √ | √ | √ | √ | √ | √ | |
node03 | 192.168.163.130 | √ | √ | √ | √ | ||||
node04 | 192.168.163.131 | √ | √ | √ |
二、修改配置文件
1、切换至cd /opt/software/hadoop/hadoop-2.6.5/etc/hadoop/
目录下,查看文件内容如下:
2、修改mapred-site.xml.template为mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
3、修改mapred-site.xml配置文件
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<-- 跨平台配置 -->
<property>
<name>mapreduce.app-submission.cross-platform</name>
<value>true</value>
</property>
4、修改yarn-site.xml配置文件
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>node01</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>node02</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>node02:2181,node03:2181,node04:2181</value>
</property>
5、将配置好的文件发送给node02,node03,node04节点上
scp -r hadoop-2.6.5 root@node02:`pwd`
scp -r hadoop-2.6.5 root@node03:`pwd`
scp -r hadoop-2.6.5 root@node04:`pwd`
注意:pwd
的用法是切换盘符至hadoop-2.6.5所在的目录下
6、在node02、node03、node04上启动zookeeper
zkServer.sh start
若命令无法启动,说明zookeeper的环境变量没有配置,需要在zookeeper的bin目录下启动./zkServer.sh start
7、在node01上启动HDFS和Yarn集群
start-dfs.sh
start-yarn.sh
8、在node02上手动启动备用的ResourceManager
yarn-daemon.sh start resourcemanager
9、访问192.168.163.128
页面如下图所示
访问192.168.163.129
页面如下,说明Yarn集群启动成功。
二、集群测试
测试用例使用MapReduce所提供的WordCount案例,该jar包在
/opt/software/hadoop/hadoop-2.6.5/share/hadoop/mapreduce
运行测试用例:
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /input /output
查看运行结果:
hdfs dfs -cat /output/_SUCCESS
注:
Input:是HDFS文件系统中数据所在的目录
Output:是HDFS文件系统中不存在的目录,MapReduce运行的结果文件会输出到该目录下
三、遇到的问题
Yarn搭建过程中由于只需要修改两个配置文件,因此没有出错。在测试的过程中由于事先创建了output文件夹,导致报错,错误原因是:
org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://mycluster/output already exists