8 Hadoop集群的启动 8.1 集群启动步骤
// 启动zookeeper集群(分别在slave1、slave2和slave3执行)
$ zkServer.shstart
// 启动HDFS(在master1执行)
$ start-dfs.sh
备注:此命令分别在master1/master2节点启动了NameNode和ZKFC,分别在slave1/slave2/slave3节点启动了DataNode和JournalNode,如下图所示。
// 启动YARN(在master2执行)
$ start-yarn.sh
备注:此命令在master2节点启动了ResourceManager,分别在slave1/slave2/slave3节点启动了NodeManager。
// 启动YARN的另一个ResourceManager(在master1执行,用于容灾)
$ yarn-daemon.sh start resourcemanager
// 启动YARN的安全代理(在master2执行)
$ yarn-daemon.sh start proxyserver
备注:proxyserver充当防火墙的角色,可以提高访问集群的安全性
// 启动YARN的历史任务服务(在master1执行)
$ mr-jobhistory-daemon.sh starthistoryserver
备注:yarn-daemon.sh start historyserver已被弃用;CDH版本似乎有个问题,即mapred-site.xml配置的mapreduce.jobhistory.address和mapreduce.jobhistory.webapp.address参数似乎不起作用,实际对应的端口号是10200和8188,而且部需要配置就可以在任意节点上开启历史任务服务。
8.2 集群启动截图hadoop-master1开启了NameNode、ResourceManager、HistoryServer和ZKFC,如下图所示:
hadoop-master2开启了NameNode、ResourceManager、ProxyServer和ZKFC,如下图所示:
hadoop-slave1、hadoop-slave2和hadoop-slave3分别开启了DataNode、JournalNode、NodeManager和ZooKeeper,如下图所示:
8.3 Web UI下图为:50070,可看到NameNode为active状态:
下图为:50070,可看到NameNode为standby状态:
HDFS还有一个隐藏的UI页面:50070/dfshealth.jsp比较好用:
下图为:8088,可看到ResourceManager为active状态:
下图为:8088,可看到ResourceManager为standby状态,它会自动跳转到:8088:
下图为:19888,可查看历史任务信息:
9 功能测试// 向HDFS上传数据
$ hadoopfs -put webcount.txt /input
// 查看HDFS上的数据
$ hadoopfs -ls /input
$ hadoopfs -cat /input/webcount.txt
// 向YARN提交MapReduce任务,该任务用于分析网站日志文件webcount.txt统计每小时的点击次数
$ hadoopjar mr-webcount-0.0.1-SNAPSHOT.jar com.mr.demo.WebCountDriver/input/webcount.txt /output/webcount 1 1
// 在HDFS查看结果
$ hadoopfs -ls /output/webcount
$ hadoopfs -cat /output/webcount/part-r-00000
// 通过Web UI查看任务信息和历史任务信息