本文原创,如需转载,请注明原文链接和作者
所用到的命令的总结:
yarn:启动start-yarn.sh 停止stop-yarn.sh
zk :zkServer.start ;:zkServer.stop;
启动hdfs : start-dfs.sh 停止:stop-dfs.sh
当然可以需要在zk集群已经跑起来的情况下在头结点上用start-all.sh命令去启动整个集群,
这个命令会启动的进程如下所示
之后还需要两个命令去启动两个yarn的resource manager进程 :yarn-daemon.sh start resourcemanager
1、基本配置
现结点的配置情况
1、单节点的yarn管理的配置
需要配置mapread-site.xml
Configure parameters as follows:
etc/hadoop/mapred-site.xml:
#mapread-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> etc/hadoop/yarn-site.xml: #和yarn-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
2、配置HA高可用中的yarn管理
需要配置的是yarn-site.xml文件
Here is the sample of minimal setup for RM failover.
<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>node03</value> </property> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>node04</value> </property> <property> <name>yarn.resourcemanager.zk-address</name> <value>node02:2181,node03:2181,node04:2181</value> </property>
3、具体的自己在搭建的过程中将那几个结点当做resourcemanager所在的结点,则需要将这两个结点互相的分发秘钥,实现互相的免秘钥登录
node03
[root@node03 ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
自己实现对自己的免秘钥登录
[root@node03 ~]# cd .ssh/ [root@node03 .ssh]# ll 总用量 20 -rw-r--r-- 1 root root 616 9月 23 11:35 authorized_keys -rw------- 1 root root 672 10月 4 15:57 id_dsa -rw-r--r-- 1 root root 601 10月 4 15:57 id_dsa.pub -rw-r--r-- 1 root root 171 9月 23 11:26 known_hosts -rw-r--r-- 1 root root 616 9月 23 11:34 node01.pub [root@node03 .ssh]# cat id_dsa.pub >> authorized_keys
在node03将秘钥发给node04结点并改名
[root@node03 .ssh]# scp id_dsa.pub node04:`pwd`/node03.pub
之后在node中执行追加命令
[root@node04 .ssh]# cat node03.pub >> authorized_keys
node04进行同样的和node03一样的命令且将自己的秘钥文件发给Node03并在03上将node04的秘钥文件追加到自己的验证文件中
4、启动集群步骤
概括:
启动:node01: 1 zookeeper 2 hdfs (注意,有一个脚本不要用,start-all)start-dfs.sh 如果nn 和 nn2没有启动,需要在node06,node07分别手动启动: hadoop-daemon.sh start namenode 3 start-yarn.sh (启动nodemanager) 4 在03,04节点分别执行脚本: yarn-daemon.sh start resourcemanager UI访问: ip:8088 停止: node01: stop-dfs.sh node01: stop-yarn.sh (停止nodemanager) node03,node04: yarn-daemon.sh stop resourcemanager (停止resourcemanager)
先启动zk集群;command: zkServer.sh start
因为mr是在hdfs的基础是哪个的,所以在主结点上先启动hdfs 命令:start-dfs.sh
hdfs集群启动:
在主结点上启动Node Manager,这个进程会分别的在DataNode的结点上启动
[root@node01 hadoop]# start-yarn.sh
注意到这里并没有启动,需要到两个配置resourcemanager的结点去分别的去启动它
[root@node03 .ssh]# yarn-daemon.sh start resourcemanager starting resourcemanager, logging to /opt/sxt/hadoop-2.6.5/logs/yarn-root-resourcemanager-node03.out
[root@node04 .ssh]# yarn-daemon.sh start resourcemanager starting resourcemanager, logging to /opt/sxt/hadoop-2.6.5/logs/yarn-root-resourcemanager-node04.out
之后可以通过ss -nal命令查看端口 8088是yarn和浏览器的默认通信端口,
而3888是zk集群选举机制所用的端口,2888是zk集群内部通信所用的端口,2181是服务器和客户单通信的端口
浏览器访问yarn
2、 运用它的计算功能:
先自己创建以及上传一个文件
[root@node01 hadoop-2.6.5]# for i in `seq 100000`;do echo "hello sxt $i" >> test.txt;done
[root@node01 software]# hdfs dfs -D dfs.blocksize=1048576 -put test.txt
具体的运用计算功能的过程
找到自己的hadoop安装路径
cd /opt/sxt/hadoop-2.6.5/share/hadoop/mapreduce
对test.txt进行单词统计
[root@node01 mapreduce]# hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /test.txt /wordcount
可以看滚动条的计算进度过程
后台的linux命令行中的执行过程
先执行map 作业在执行 reduce作业
浏览器端观察计算已经完成
通过命令行看完成的现象
这种状态代表正常的执行完毕了计算,没有出现语法问题,但是这并不代表计算的结果是正确的
等待之心完毕之后,可以在命令行下通过命令
查看hdfs中的文件 hdfs dfs -cat /文件 查看统计的结果
hdfs dfs -cat /wordcount/part-r-00000
结果
完成最基本的mr的计算的功能!!