您的位置:首页 > 运维架构

Hadoop2.0集群安装配置

2016-12-11 12:53 399 查看
本集群使用centOS 7作为系统集群,基于原生Hadoop2,使用版本为Hadoop2.6.0。

一. 搭建前提:

在 搭建集群之前,要保证

每台虚拟机都配置好了Hadoop用户

安装SSHServer(centOS 7系统安装好后就默认安装了)

安装JAVA环境

安装Hadoop

二. 网络配置

首先保证所有主机位于同一个局域网内,然后将每台虚拟机的网络都设为桥接模式,并且手工配置IP地址,保证它们的IP地址在同一网段。

可以使用ping命令测试是否能ping通。ping之前需要关闭所有虚拟机的防火墙,centOS 7关闭防火墙的方法:

systemctl stop firewalled.service


开启防火墙的方法:

systemctl start firewalled.service


禁止开机开启防火墙:

systemctl disable firewalled.service


查看防火墙是否关闭

irewall-cmd --state


返回Running表示防火墙正常服务,Not running表示防火墙服务关闭

三. 集群规划

主机名 IP地址 安装的软件 JPS
hadoop-master1 192.168.105.150 Jdk/hadoop ResourceManager/NameNode/JobHistoryServer/SecondaryNameNode
hadoop-slave1 192.168.105.154 Jkd/hadoop datanode/nodemanager
hadoop-slave2 192.168.105.155 Jkd/hadoop datanode/nodemanager
hadoop-slave3 192.168.105.157 Jkd/hadoop datanode/nodemanager
四. 修改主机名

每台虚拟机上分别执行一下指令,设置自己的主机名

hostnamectl set-hostname 主机名


配置/etc/hosts,把每台虚拟机的IP地址和对应的主机名配置进去

/etc/hosts


192.168.105.150   hadoop-master1
192.168.105.154   hadoop-slave1
192.168.105.155   hadoop-slave2
192.168.105.157   hadoop-slave3


五. SSH无密码登录节点

这一步主要是为了让hadoop-master1节点无密码登录其他slave节点

以下操作在每台虚拟机上都要做:

进入~/.ssh下:

cd ~/.ssh


删除之前该目录下的生成的密钥对,如果之前生成过的话:

rm ./id_rsa*


生成密钥对:私钥id_rsa,公钥 id_rsa.pub

ssh-keygen -t rsa


将自己的公钥上传到本机,实现SSH免密码登录本机

cat ./id_rsa.pub >> ./authorized_keys


测试能否免密码登录本机

ssh 本机主机名


将自己的公钥传输到集群的其他节点,此时需要输入其他节点的密码,传输成功后,登录其他节点就可以不输入密码了,为之后的数据传输和集群启动做准备。

ssh hadoop-你自己(如我的:ssh hadoop-master1)
ssh-copy-id hadoop-master1
ssh-copy-id hadoop-slave1
ssh-copy-id hadoop-slave2
ssh-copy-id hadoop-slave3


然后使用ssh 主机名测试是否可以免密码登录其他节点

六. 配置集群/分布式环境

(一)集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5个配置文件,更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 。这些文件均在hadoop安装包的/etc/hadoop/路径之下。

此步骤由hadoop-master1统一完成配置然后传到其他节点,替换之前hadoop安装包,就可以实现hadoop集群了。

slaves:设置所有的slave节点,由于hadoop-master1只作为namenode,所以删除localhost,其他的slave节点(datanode)主机名全都要写入该文件中,一行写一个。

core-site.xml:

指定hdfs的nameservices名称(属性为:fs.defaultFS)为hadoop-master1,与hdfs-site.xml的HA配置相同

指定缓存文件存储的路径 (属性为:hadoop.tmp.dir)

具体配置如图所示:



hdfs-site.xml:

指定hdfs元数据存储的路径(属性为:dfs.namenode.name.dir)

指定hdfs数据存储的路径(属性为:dfs.namenode.name.dir)

指定hdfs数据存储的路径(属性为:dfs.datanode.data.dir)

指定SecondaryNameNode的主机(属性为:dfs.namenode.secondary.http-address),这里是hadoop-master1上,如果加入另一台主机单独作为SecondaryNameNode,就改成其他的主机名(比如hadoop-master2)。

具体配置如下图:



mapred-site.xml

指定MapReduce计算框架使用YARN(属性为:mapreduce.framework.name)

指定jobhistory server的rpc地址(属性为:mapreduce.jobhistory.address)

指定jobhistory server的http地址(属性为:mapreduce.jobhistory.webapp.address)

具体配置如下图:



yarn-site.xml

指定resourcemanager的主机(属性为:yarn.resourcemanager.hostname)

NodeManager上运行的附属服务,需配置成mapreduce_shuffle才可运行MapReduce程序(属性为:yarn.nodemanager.aux-services)

具体配置如下图:



(二)配置好后,将 hadoop-master1 上的hadoop安装目录下的文件夹复制到各个节点上。因为之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。在 hadoop-master1 节点上执行:

sudo rm -r ./tmp     # 删除 Hadoop 临时文件
sudo rm -r ./logs/*   # 删除日志文件


压缩hadoop-2.6.0下的所有文件:

tar -zcf /home/hadoop/hadoop.master.tar.gz ./hadoop-2.6.0


远程复制到其他节点:

scp /home/hadoop/hadoop.master.tar.gz hadoop-slave1:/home/hadoop/hadoop/
scp /home/hadoop/hadoop.master.tar.gz hadoop-slave2:/home/hadoop/hadoop/
scp /home/hadoop/hadoop.master.tar.gz hadoop-slave3:/home/hadoop/hadoop/


在其他slave节点上执行:

cd /home/hadoop/hadoop/
sudo rm -r /home/hadoop/hadoop/hadoop-2.6.0
sudo tar -zxf /home/hadoop/hadoop/hadoop.master.tar.gz –C /home/hadoop/hadoop/
sudo chown –R hadoop /home/hadoop/hadoop/hadoop-2.6.0


(三) 在hadoop-master1在对namenode进行格式化

hdfs namenode –format


注意:格式化只能进行一次,否则容易导致集群启动不成功。如果集群已经安装完毕,需要加入新的主机,那么主从节点同时跟着修改配置,配置完成后,在hadoop-master1上需要重新格式化,那一定要在每一台机子上执行以下命令:

sudo rm -r ./tmp     # 删除 Hadoop 临时文件
sudo rm -r ./logs/*   # 删除日志文件


清除之后,再进行格式化。

(四) 在hadoop-master1之上启动集群

start-dfs.sh


start-yarn.sh


mr-jobhistory-daemon.sh start historyserver


启动完成之后,在每台主机上使用jps查看进程:

hadoop-master1必须有以下进程:

NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer

hadoop-slave上必须有以下进程:

DataNode 和 NodeManager

缺一都说明集群配置有问题。

七. 启动结果:

hadoop-master1:



hadoop-slave1:



hadoop-slave2:



hadoop-slave3:



hadoop-master1:50070:





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息