对集群进行集中管理

一、目前存在的问题

在阅读这篇文章之前,你应该先阅读:简单认识namenode和datanode.

在之前,我们启动Hadoop集群的时候,首先是启动namenode,然后启动datanode. 注意:我们之前的做法是手动的将启动datanode的命令发送给所有的datanode,显然如果在集群很庞大的时候,这种做法是不合适的.我们希望通过start-dfs.sh的方式启动所有的节点.那么我们就需要配置namenode机器上面的slaves文件,这个文件管理着这个namenode下面所有的datanode.这个文件的位于:${hadoop_home}/etc/hadoop,其中${hadoop_home}是Hadoop的安装目录.

二、配置namenode机器上slaves文件

1. 运行cd  /usr/local/hadoop/hadoop-2.7.3/etc/hadoop 进入到slaves文件所在的目录

对集群进行集中管理

2. 运行 vim slaves命令,添加slave机器名称, 保存并退出。

对集群进行集中管理

三、配置免密SSH远程登陆

1. 在namenode机器上面,进入/root/.ssh目录下面,运行命令: ssh-keygen -t rsa

对集群进行集中管理

 2. 将namenode机器上面的公钥copy到npfdev1(本机),npfdev2,npfdev3,npfdev4上面.

运行如下命令:

ssh-copy-id npfdev1

ssh-copy-id npfdev2

ssh-copy-id npfdev3

ssh-copy-id npfdev4

四、在namenode机器上运行start-dfs.sh启动集群

1. 启动完成之后,查看:

注意:start-dfs.sh会默认启动secondarynamenode

对集群进行集中管理

五、在namenode机器上运行stop-dfs.sh启动集群

1. 停止完成之后,查看:

对集群进行集中管理

六、启动和关闭Hadoop集群命令步骤总结:

1. 修改master上/etc/hadoop/slaves文件,每一个slave占一行.

2. 配置免密SSH远程登陆.

3. start-dfs.sh启动集群.

4. stop-dfs.sh停止集群.

注意:如果你出现类似的错误,

对集群进行集中管理

解决方法是在hadoop-env.sh和yarn-env.sh中添加如下两行:

export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"

参考文献:

1. Hadoop 2.2.0集群安装

相关推荐