Hadoop集群启动的进程及其作用

问题分析

本题主要查看对hadoop环境组件的熟悉程度,搭建过hadoop环境的应该都能够讲出来。

核心问题回答

  1. NameNode它是hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存有metadate。
  2. SecondaryNameNode它不是namenode的冗余守护进程,而是提供周期检查点和清理任务。帮助NN合并editslog,减少NN启动时间。
  3. DataNode它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个datanode守护进程。
  4. ResourceManager(JobTracker)JobTracker负责调度DataNode上的工作。每个DataNode有一个TaskTracker,它们执行实际工作。
  5. NodeManager(TaskTracker)执行任务
  6. DFSZKFailoverController高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。
  7. JournalNode 高可用情况下存放namenode的editlog文件

问题扩展

要熟悉各进程的启动步骤

(1)启动Zookeeper

已经设置自启动

vim /etc/rc.d/rc.local
在vim中新增两行:
export JAVA_HOME=/usr/local/src/java/jdk1.7.0_71
#export JAVA_HOME=/export/servers/jdk1.8.0_141
/soft/zookeeper-3.4.6/bin/zkServer.sh start

(2)启动hadooop集群
start-all.sh (start-dfs.sh start-yarn.sh)

(3)针对单个节点异常的补充启动
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager

(4)检查集群 jps

(5)停止集群
sbin/stop-dfs.sh
sbin/stop-yarn.sh
sbin/mr-jobhistory-daemon.sh stop historyserver

点击此处
隐藏目录