Apache Hadoop 分布式集群环境安装配置详细步骤

    案例基于centos6.5安装hadoop2.6.4集群部署,使用两个节点作为集群环境,一个为Master节点,IP为192.168.168.139;另一个作为Slave1节点,IP为192.168.168.141

一、准备工作(所有机器)

1、创建hadoop用户,并修改/etc/sudoers文件赋予用户root权限 (直接用root用户也可以)

2、修改机器名称    #     vi /etc/sysconfig/network     hostname

 

3、关闭防火墙及其开机启动 #   service iptables stop     #  chkconfig iptables off

查看状态#  service iptables status

关闭SELinux: vi /etc/selinux/config   SELINUX=disabled

# 如果是非root用户操作,应优先对一些配置文件权限开放,linux的一些操作就不细讲。#

4、卸载原有openjdk;安装jdk1.7或1.8并配置环境变量

注意:安装一些常用服务及依赖,例如ssh、perl、psmisc等,根据个人不同机器情况,有些系统是最小化安装的,需要添加服务及依赖!

 

5、修改所有节点的名称与IP映射  #   vim /etc/hosts

Apache Hadoop 分布式集群环境安装配置详细步骤

 

(注意:此处配置包含本节点及所有其他节点的IP主机映射,集群所有机器都要配置相同一份!)

测试互ping一下

Apache Hadoop 分布式集群环境安装配置详细步骤

 

6、ssh无密登录(主要是master无密登录到其他节点)

首先:编辑sshd_config文件,去掉3个注释。(所有节点)

# vi /etc/ssh/sshd_config

 

 

Apache Hadoop 分布式集群环境安装配置详细步骤

 

 

重启ssh服务:#   service sshd restart

 

在Master机器上操作:

#     cd ~/.ssh               # 如果没有该目录,先执行一次ssh localhost

#     rm ./id_rsa*            # 删除之前生成的公匙(如果有)

在用户目录下:       #     cd /home/hadoop

#     ssh-****** -t rsa       # 一直按回车就可以(3个回车)

#     cat ./id_rsa.pub >>./authorized_keys      #让Master节点无密登录本机(如果非当前用户操作,还需要对该文件赋予权限600)

#     ssh Master          #验证无密登录本地

(如果失败过或者进行过公钥删除等操作,有可能会报错:Agent admitted failure to sign using the key ,解决方法是通过ssh-add命令将私钥加进来。#    ssh-add ~/.ssh/id_rsa)

Master节点将上公匙传输到 Slave1节点:

#   scp ~/.ssh/id_rsa.pub [email protected]:/home/hadoop

 

(或者在.ssh目录下执行: ssh-copy-id slave1   直接复制公钥到slave1,该操作之后在slave1上就不需要再进行认证。)

 

Apache Hadoop 分布式集群环境安装配置详细步骤

 

如果有多台几点,都要分发到所有节点。

 

在Slave1节点上操作:

将ssh公钥加入授权认证文件(如果有多个Slave节点,都要进行远程传输和加入授权这两步操作!)

 

#     mkdir ~/.ssh       # 如果不存在该文件夹需先创建,若已存在则忽略

#     cd /home/hadoop/         #进入传送文件所在目录

#     cat id_rsa.pub >>.ssh/authorized_keys         #把公钥加入认证

(注意,可以用复制方法进行操作,先把文件都放在一个文件夹下,通过cp命令覆盖。要在Slave上对认证文件进行权限处理,否则Master登录Slave需要密码!)

#     cd ~/.ssh                  #     chmod 600 authorized_keys

#     rm ~/id_rsa.pub    # 用完可以删掉

Apache Hadoop 分布式集群环境安装配置详细步骤

 

 

hadoop的安装包 hadoop-2.6.4.tar.gz 放在/home/hadoop/下载

# cd /home/hadoop/下载 

#  tar -zxf hadoop-2.6.4.tar.gz-C /usr/local       # 解压复制到local路径下

#     cd /usr/local       # 进入安装路径

#     mv ./hadoop-2.6.4/ ./hadoop     #更改文件夹名称

#     chown -R hadoop:hadoop ./hadoop        #为用户赋权限

 

最后为方便启动命令,配置PATH变量:

 

Hadoop安装目录加入 PATH变量中,这样就可以在任意目录中直接使用 hadoohdfs等命令了,需要在 Master节点上进行配置。首先执行 vim ~/.bashrc,加入一行:

Apache Hadoop 分布式集群环境安装配置详细步骤

 

 

保存后重新加载文件:  #     source ~/.bashrc

 

二、配置集群/分布式环境:

 

集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop中的5个配置文件,更多设置项参考网络,这里仅设置了正常启动所必须的设置项: slavescore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml 

 

1、文件 slaves,将作为 DataNode的主机名写入该文件,每行一个,默认为 localhost,所以在伪分布式配置时,节点即作为 NameNode也作为 DataNode。分布式配置可以保留 localhost,也可以删掉,让 Master节点仅作为 NameNode使用。本案例让 Master节点仅作为 NameNode使用,因此将文件中原来的 localhost删除,只添加一行内容:Slave1

 

Apache Hadoop 分布式集群环境安装配置详细步骤

 

2、修改文件core-site.xml配置


Apache Hadoop 分布式集群环境安装配置详细步骤

 

 

 

 

3、文件 hdfs-site.xmldfs.replication一般设为 3,但本例只有一个 Slave节点,所以 dfs.replication的值还是设为 1设定副本的数量,每个数据节点datanode只能存放一个副本,一般副本数量不超过节点数):

 

Apache Hadoop 分布式集群环境安装配置详细步骤

 

 

4、文件 mapred-site.xml (需要先重命名,默认文件名为 mapred-site.xml.template),然后配置修改如下:

#     mv mapred-site.xml.template mapred-site.xml  #在当前文件目录下执行

Apache Hadoop 分布式集群环境安装配置详细步骤

 

5、修改文件 yarn-site.xml

 

Apache Hadoop 分布式集群环境安装配置详细步骤

 

配置好后,(在master) Master上的 /usr/local/Hadoop文件夹复制到各个节点上。如果之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。在 Master节点上执行:

#     cd /usr/local                    

#     rm -r ./hadoop/tmp     # 删除 Hadoop 临时文件

#     rm -r ./hadoop/logs/*   # 删除日志文件

#     tar -zcf~/hadoop.master.tar.gz ./hadoop   # 先压缩再复制

#     cd ~

#     scp ./hadoop.master.tar.gzSlave1:/home/hadoop      #     传输复制

 

Apache Hadoop 分布式集群环境安装配置详细步骤

 

Slave1节点上执行:

#     rm -r /usr/local/hadoop    # 删掉旧的(如果存在)

#     tar -zxf~/hadoop.master.tar.gz -C /usr/local       #     解压复制到/usr/local

#     chown -R hadoop:hadoop/usr/local/hadoop       #为hadoop用户赋予文件夹权限

如果有其他 Slave 节点,也要执行将hadoop.master.tar.gz 传输到 Slave 节点、在 Slave 节点解压文件的操作。)


三、启动集群

首次启动需要先在 Master节点执行 NameNode的格式化:

#     hdfs namenode -format       # 首次运行需要执行初始化,之后不需要

出现以下状态说明成功。

Apache Hadoop 分布式集群环境安装配置详细步骤

 

需要在准备工作里关闭防火墙

CentOS系统默认开启了防火墙,在开启 Hadoop集群之前,需要关闭集群中每个节点的防火墙。有防火墙会导致 ping得通但 telnet端口不通,从而导致 DataNode启动了,但 Live datanodes 0的情况

(注意:这里需要# vi/usr/local/hadoop/etc/hadoop/Hadoop-env.sh里的java路径该为绝对路径,所有节点都要改!否则会报错找不到java路径)

初始化成功后接着可以启动 hadoop了,启动需要在 Master节点上进行:

#     start-dfs.sh

#     start-yarn.sh

#     mr-jobhistory-daemon.sh start historyserver

 

通过命令 jps 可以查看各个节点所启动的进程。正确的话,在 Master 节点上可以看到 NameNodeResourceManagerSecondrryNameNodeJobHistoryServer进程:

 

Apache Hadoop 分布式集群环境安装配置详细步骤

 

Slave节点可以看到 DataNode NodeManager进程:

 

Apache Hadoop 分布式集群环境安装配置详细步骤

 

缺少任一进程都表示出错。另外还需要在 Master节点上通过命令 

hdfs dfsadmin -report 查看 DataNode是否正常启动,如果 Live datanodes不为 0,则说明集群启动成功。例如我这边一共有 1 Datanodes

 

Apache Hadoop 分布式集群环境安装配置详细步骤

 

也可以通过 Web页面看到查看 DataNode NameNode 的状态:http://master:50070/。如果不成功,可以通过启动日志排查原因。

 

关闭 Hadoop集群也是在 Master节点上执行的:

#     stop-yarn.sh

#     stop-dfs.sh

#     mr-jobhistory-daemon.sh stop historyserver

 

至此,完成了 Hadoop的集群搭建与基本使用。Apache Hadoop 分布式集群环境安装配置详细步骤