上一篇中我们了解了 MapReduce 和 Yarn 的基本概念, 这里就不再陈述, 接下来带领大家搭建下 Mapreduce-HA 的框架.
结构图如下 ( ﹁ ﹁ ) ~→
开始搭建 ( ﹁ ﹁ ) ~→
一. 配置环境
注: 可以现在一台计算机上进行配置, 然后分发给其它服务器
1.1 编辑 mapred-site.xml 文件:
进入目录 /opt/hadoop/hadoop-2.6.5/etc/hadoop
- cd /opt/hadoop/hadoop-2.6.5/etc/hadoop
- VIM mapred-site.xml
添加如下配置:
- <configuration>
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value> <!-- 指定 mapreduce 通过 yarn 获取数据, 还可以填写参数 localhost-->
- </property>
- <property>
- <name>mapreduce.application.classpath</name>
- <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
- </property>
- </configuration>
1.2 编辑 yarn-site.xml 文件:
VIM yarn-site.xml
添加如下配置:
- <configuratoin>
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value> <!-- 指定 nodemanager 可以拉取数据 -->
- </property>
- <property>
- <name>yarn.resourcemanager.ha.enabled</name>
- <value>true</value><!-- 启动 resourcemanager 高可用 -->
- </property>
- <property>
- <name>hadoop.zk.address</name><!-- 配置 zookeeper 地址 -->
- <value>tuge1:2181,tuge2:2181,tuge3:2181,tuge4:2181</value>
- </property>
- <property>
- <name>yarn.resourcemanager.cluster-id</name>
- <value>cluster1</value><!-- 配置 resourcemanager 虚拟地址到物理地址的映射 -->
- </property>
- <property>
- <name>yarn.resourcemanager.ha.rm-ids</name>
- <value>rm1,rm2</value>
- </property>
- <property>
- <name>yarn.resourcemanager.hostname.rm1</name>
- <value>tuge1</value>
- </property>
- <property>
- <name>yarn.resourcemanager.hostname.rm2</name>
- <value>tuge2</value>
- </property>
- <property>
- <name>yarn.resourcemanager.webapp.address.rm1</name>
- <value>tuge1:8088</value>
- </property>
- <property>
- <name>yarn.resourcemanager.webapp.address.rm2</name>
- <value>tuge2:8088</value>
- </property>
- </configuration>
二. 启动程序
在 tuge1 服务器启动:
- VIM /opt/hadoop/hadoop-2.6.5/sbin
- start-yarn.sh
启动后, 使用 jps 即可查看 resourcemanager 和 nodemanager 是否启动成功.
三. 浏览效果
四. 实现一个计算 Demo
4.1 在 hdfs 里面创建一个 10000 行的 test.txt 文件
使用命令:
-- 首先创建一个 root 文件夹
hadoop fs -mkdir /user/root/
-- 在 Linux 随便找一个目录创建一个文件, 并加入 1 万行 What are you doing 123?
- touch test.txt
- VIM test.txt
然后输入数字 10000, 再点击 i 进行输入 What are you doing 123? , 然后按 Esc 这时 10000 行 What are you doing 123? 就录入了, 然后保存.
-- 将本地文件复制到 hdfs 上面
hadoop dfs -scpFromLocal test.txt /user/root/
4.2 进入 / opt/hadoop/hadoop-2.6.5/share/hadoop/mapreduce
cd /opt/hadoop/hadoop-2.6.5/share/hadoop/mapreduce
4.3 使用 mapreduce 统计刚刚上传文件里面的单词数量
hadoop jar hadoop-mapreduce-examples-2.6.5.jar /user/root/test.txt /user/root/result -- 意思是使用 hadoop 运行 jar 环境, 并执行程序, 统计的文件路径, 输出结果路径 (这个路径必须是空的或者不存在的)
4.4 控制台执行效果图和 Web ui 浏览效果图
4.5 最后我们可以在上面的输出目录查看统计结果
hadoop fs -cat /user/root/result/part-r-00000
从上图可以看到, 每个单词均输出 10000, 那么就哦了~
来源: http://www.bubuko.com/infodetail-3258632.html