一.启动Hadoop集群

1.格式化文件系统

如果集群是第一次启动,需要在hadoop102节点格式化NameNode。

注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。

  1. [li@hadoop102 ~]$ hdfs namenode -format
  2. # 或者
  3. [li@hadoop102 ~]$ hadoop namenode -format
执行上述任意一条命令均可以进行Hadoop集群格式化。执行格式化指令之后,出现: has been successfully formatted.信息,表明HDFS文件系统成功格式化,即可正式启动集群;否则,需要查看命令是否正确,或者安装配置是否正确。

二.启动Hadoop进程

Hadoop集群的启动,需要启动其内部的两个集群框架,HDFS集群和YARN集群。启动方式有单节点逐个启动和使用脚本一键启动两种。

2.1.启动HDFS

  1. [li@hadoop102 sbin]$ start-dfs.sh
  2. Starting namenodes on [hadoop102]
  3. Starting datanodes
  4. hadoop104: WARNING: /opt/module/hadoop-3.1.3/logs does not exist. Creating.
  5. hadoop103: WARNING: /opt/module/hadoop-3.1.3/logs does not exist. Creating.
  6. Starting secondary namenodes [hadoop104]

2.2.启动YARN

在配置了ResourceManager的节点(hadoop103)启动YARN
  1. [li@hadoop103 sbin]$ start-yarn.sh
  2. Starting resourcemanager
  3. Starting nodemanagers

三.监控Hadoop集群

Hadoop集群有相关的服务监控端口,方便用户对Hadoop集群的资源、任务运行状态等信息有更直观的了解,具体如下表:

:::info 服务 Web接口 默认端口

NameNode http://namenode_host:port/ 9870

ResourceManager http://resourcemanager_host:port/ 8088

MapReduce JobHistoryServer http://jobhistroyserver_host:port/ 19888

:::

3.1.HDFS监控

Web端查看HDFS的NameNode:
(a)浏览器中输入:http://hadoop102:9870 第五章 hadoop集群操作 - 图1 + Overview 记录了NameNode的启动时间、版本号、编译版本等一些基本信息。 + Summary 记录集群信息。 提供了当前集群环境的一些有用信息,同时还标注了当前集群环境中DataNode的信息,对活动状态的DataNode也专门进行了记录。 + NameNode Storage 提供了NameNode的信息,最后的State标示此节点为活动节点,可正常提供服务。 依次选择“Utilities”→“Browse the file system”命令可以查看HDFS上的文件信息。 第五章 hadoop集群操作 - 图2 (b )查看HDFS上存储的数据信息

第五章 hadoop集群操作 - 图3

(c )查看Hadoop进程

  1. [li@hadoop102 hadoop-3.1.3]$ jps
  2. 2384 NameNode
  3. 3153 Jps
  4. 2889 NodeManager
  5. 2555 DataNode

3.2.YARN监控

Web端查看YARN的ResourceManager:
(a)浏览器中输入:http://hadoop103:8088 第五章 hadoop集群操作 - 图4 (b)查看YARN上运行的Job信息
  1. [li@hadoop103 hadoop-3.1.3]$ jps
  2. 3024 Jps
  3. 2528 NodeManager
  4. 2388 ResourceManager
  5. 2184 DataNode

3.3.日志监控

Web端查看Hadoop的日志监控界面即JobHistroy:
(a)在浏览器中地址栏中输入http://hadoop102:19888 第五章 hadoop集群操作 - 图5 ## 四.停止Hadoop集群 ### 4.1.各模块分开启动/停止 在配置ssh的前提下
  1. 整体启动/停止HDFS
  1. start-dfs.sh/stop-dfs.sh
  1. 整体启动/停止YARN
  1. start-yarn.sh/stop-yarn.sh

4.2.各服务组件逐一启动/停止

  1. 分别启动/停止HDFS组件
  1. hdfs --daemon start/stop namenode/datanode/secondarynamenode
  1. 启动/停止YARN
  1. yarn --daemon start/stop resourcemanager/nodemanager

五.Hadoop集群常用脚本

5.1.Hadoop集群启停脚本

包含HDFS,Yarn,Historyserver:myhadoop.sh
  1. [li@hadoop102 hadoop-3.1.3]$ cd /home/li/bin
  2. [li@hadoop102 bin]$ vim myhadoop.sh
输入如下内容:
  1. #!/bin/bash
  2. if [ $# -lt 1 ]
  3. then
  4. echo "No Args Input..."
  5. exit ;
  6. fi
  7. case $1 in
  8. "start")
  9. echo " =================== 启动 hadoop集群 ==================="
  10. echo " --------------- 启动 hdfs ---------------"
  11. ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
  12. echo " --------------- 启动 yarn ---------------"
  13. ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
  14. echo " --------------- 启动 historyserver ---------------"
  15. ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
  16. ;;
  17. "stop")
  18. echo " =================== 关闭 hadoop集群 ==================="
  19. echo " --------------- 关闭 historyserver ---------------"
  20. ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
  21. echo " --------------- 关闭 yarn ---------------"
  22. ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
  23. echo " --------------- 关闭 hdfs ---------------"
  24. ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
  25. ;;
  26. *)
  27. echo "Input Args Error..."
  28. ;;
  29. esac
:wq保存退出。
修改脚本执行权限:
  1. [li@hadoop102 bin]$ chmod +x myhadoop.sh
  1. [li@hadoop102 bin]$ myhadoop.sh stop #停止集群

5.2.查看进程脚本

查看三台服务器Java进程脚本:jpsall
  1. [li@hadoop102 bin]$ vim jpsall
输入如下内容:
  1. #!/bin/bash
  2. for host in hadoop102 hadoop103 hadoop104
  3. do
  4. echo =============== $host ===============
  5. ssh $host jps
  6. done
:wq保存后退出,然后赋予脚本执行权限
  1. [li@hadoop102 bin]$ chmod +x jpsall

5.3.脚本分发

分发/home/li/bin目录,保证自定义脚本在三台机器上都可以使用
  1. [li@hadoop102 bin]$ xsync /home/li/bin/
  2. ==================== hadoop102 ====================
  3. sending incremental file list
  4. sent 129 bytes received 17 bytes 292.00 bytes/sec
  5. total size is 2,007 speedup is 13.75
  6. ==================== hadoop103 ====================
  7. sending incremental file list
  8. bin/
  9. bin/jpsall
  10. bin/myhadoop.sh
  11. sent 1,490 bytes received 58 bytes 1,032.00 bytes/sec
  12. total size is 2,007 speedup is 1.30
  13. ==================== hadoop104 ====================
  14. sending incremental file list
  15. bin/
  16. bin/jpsall
  17. bin/myhadoop.sh
  18. sent 1,490 bytes received 58 bytes 3,096.00 bytes/sec
  19. total size is 2,007 speedup is 1.30