Hadoop完全分布式环境(虚拟机)搭建过程

版权声明:个人博客网址 https://29dch.github.io/ 博主GitHub网址 https://github.com/29DCH,欢迎大家前来交流探讨和fork! https://blog.csdn.net/CowBoySoBusy/article/details/82988265

前些天弄完了hadoop单机版的搭建(具体参考我的这一篇博客HDFS伪分布式单节点版搭建过程总结),这次进入集群的搭建过程
这次是基于虚拟机来实现的,当然你也可以部署在自己的远端服务器上面(比如阿里云,腾讯云等等)
电脑的硬件配置还是稍微高一点,否则开三个虚拟机可能会导致电脑十分卡顿
说完电脑的硬件配置,下面说说具体搭建hadoop集群的准备条件:
1
安装Vmware WorkStation,Hadoop,JDK,Ubuntu镜像(如果3个都使用桌面版,电脑估计会卡死,所以使用server版本比较合适,详细安装过程见https://blog.csdn.net/github_38336924/article/details/82427252)
下载地址:http://releases.ubuntu.com/?_ga=2.148742000.695831999.1499166942-66111771.1499166942
在这里插入图片描述
其他几个的安装我就不提了,参考我单机版搭建过程的博客,其他博客或者其他相应的教程应该都没有大的问题
2
在虚拟机上安装linux操作系统
hadoop一般是运行在linux平台之上,虽然现在也有windows版本,但是在linux上运行比较稳定,也不易出错.虚拟机上安装的linux操作系统可以为ubuntu,centos,deepin等等,看你自己选择,我这里用的是ubuntu的服务器版.怎么用vmware具体安装Linux系统我就不说了,网上教程很丰富
在这里插入图片描述

3
准备3个虚拟机节点
步骤2已经安装了一个Linux系统了,这里不建议重复同样的方法再安装两遍系统,因为三个系统都是一样的,可以考虑克隆操作.就是在你刚安装好的第一个虚拟机节点,将整个系统目录进行复制,形成第二和第三个虚拟机节点。
在这里插入图片描述
在这里插入图片描述
这里有三个虚拟机系统,相当于三个节点,这里命名分别为master,slave1,slave2.按照hadoop集群的基本要求,其中一个是master结点,主要是用于运行hadoop程序中的namenode、secondorynamenode和jobtracker任务,ResourceManager。用外两个结点均为slave结点,其中一个是用于冗余目的,如果没有冗余,就不能称之为hadoop了,所以模拟hadoop集群至少要有3个结点,如果电脑配置非常高,可以考虑增加一些其它的结点。slave结点主要将运行hadoop程序中的datanode和tasktracker任务,NodeManager。
所以,在准备好这3个结点之后,需要分别将linux系统的主机名重命名(因为前面是克隆操作产生另两个结点,此时这3个结点的主机名是一样的),重命名主机名的方法:
vim /etc/hostname
通过修改hostname文件即可,这三个节点均要修改,以示区分。
以下是我对三个结点的ubuntu系统主机分别命名为:master, slave1, slave2
在这里插入图片描述
基本条件准备好了,下面开始集群搭建过程,主要有以下几个步骤:
一、 配置hosts文件
二、 建立hadoop运行帐号
三、 配置ssh免密码连入
四、 下载并解压hadoop安装包
五、 配置namenode,修改site文件
六、 配置hadoop-env.sh文件
七、 配置masters和slaves文件
八、 向各节点复制hadoop
九、 格式化namenode
十、 启动hadoop
十一、 用jps检验各后台进程是否成功启动
十二、 通过浏览器查看集群情况

一、 配置hosts文件
先简单说明下配置hosts文件的作用,它主要用于确定每个结点的IP地址,方便后续master结点能快速查到并访问各个结点。在上述3个虚机结点上均需要配置此文件。由于需要确定每个结点的IP地址,所以在配置hosts文件之前需要先查看当前虚机结点的IP地址是多少,可以通过ifconfig命令进行查看
如果IP地址不对,可以通过ifconfig命令更改结点的物理IP地址
将每个结点的IP地址设置完成后,就可以配置hosts文件了,hosts文件路径为/etc/hosts,大家可以参考自己的IP地址以及相应的主机名完成配置

hostname ip
master 192.168.145.133
slave1 192.168.145.134
slave2 192.168.145.135

配置时ip在前,主机名在后
二、建立hadoop运行帐号
即为hadoop集群专门设置一个用户组及用户,这部分比较简单,参考示例如下:
sudo groupadd hadoop //设置hadoop用户组
sudo useradd –s /bin/bash –d /home/zq –m zq –g hadoop –G admin //添加一个zq用户,此用户属于hadoop用户组,且具有admin权限。
sudo passwd zq //设置用户zq登录密码
su zq //切换到zq用户中

上述3个虚机结点均需要进行以上步骤来完成hadoop运行帐号的建立。

三、 配置ssh免密码连入
SSH主要通过RSA算法来产生公钥与私钥,在数据传输过程中对数据进行加密来保障数据的安全性和可靠性,公钥部分是公共部分,网络上任一结点均可以访问,私钥主要用于对数据进行加密,以防他人盗取数据。总而言之,这是一种非对称算法,想要破解还是非常有难度的。Hadoop集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,hadoop采用的是ssh的方法通过密钥验证及数据加解密的方式进行远程安全登录操作,当然,如果hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免密码的方法直接远程连入被访问结点,这样将大大提高访问效率。
先安装ssh和openssh-server
sudo apt-get install openssh-server
(1)
每个结点分别产生公私密钥。
键入命令:
ssh -keygen -t rsa
后面几步直接回车即可
以上命令是产生公私密钥,产生目录在用户主目录下的.ssh目录中
Id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件,这个步骤是必须的
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
用上述同样的方法在剩下的两个结点中使用即可。
(2)
单机回环ssh免密码登录测试
即在单机结点上用ssh进行登录,看能否登录成功。登录成功后注销退出
(3)
让主结点(master)能通过SSH免密码登录两个子结点(slave)
为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样
master就可以顺利安全地访问这两个slave结点了。
将 slave1 和 slave2 的公钥 id_dsa.pub 传给 master。
scp ~/.ssh/id_dsa.pub zq@master:/home/zq/ssh/id_dsa.pub.slave1
scp ~/.ssh/id_dsa.pub zq@master:/home/zq/ssh/id_dsa.pub.slave2

将 slave1 和 slave2的公钥信息追加到 master 的 authorized_keys文件中。
cat id_dsa.pub.slave1 >> authorized_keys
cat id_dsa.pub.slave2 >> authorized_keys

将 master 的公钥信息 authorized_keys 复制到 slave1 和 slave2 的 .ssh 目录下。
scp authorized_keys zq@slave1:/home/zq/.ssh/authorized_keys
scp authorized_keys zq@slave2:/home/zq/.ssh/authorized_keys

至此,SSH免密码登录已经配置成功。

四、下载并解压hadoop安装包

五、配置namenode,修改site文件
在配置site文件之前需要作一些准备工作,下载java最新版的JDK软件,可以从oracle官网上下载,接着配置JAVA_HOME宏变量及hadoop路径,这是为了方便后面操作,这部分配置过程主要通过修改/etc/profile文件来完成

扫描二维码关注公众号,回复: 3590300 查看本文章

然后执行:
source命令
让配置文件立刻生效。上面配置过程每个结点都要进行一遍。

到目前为止,准备工作已经完成,下面开始修改hadoop的配置文件了,即各种site文件,文件存放在/hadoop/conf下,主要配置core-site.xml、hdfs-site.xml、mapred-site.xml这三个文件。
配置修改见我的单机版配置博客
六、配置hadoop-env.sh文件
这个需要根据实际情况来配置。
配置修改见我的单机版配置博客
七、配置masters和slaves文件
根据实际情况配置masters的主机名,在本例中,masters主结点的主机名为master,
slaves文件中为slave1,slave2.

八、向各节点复制hadoop
向slave1节点复制hadoop.
向slave2节点复制hadoop.

这样,结点slave1和结点slave2也安装了配置好的hadoop软件了。

一下几步的命令参考我的单机版搭建的博客,是一致的
九、格式化namenode

十、启动hadoop

十一、 用jps检验各后台进程是否成功启动

十二、 通过浏览器查看集群情况
在浏览器中输入:http://192.168.145.134:50030,网址为master结点所对应的IP
hdfs,yarn都可以测一下

猜你喜欢

转载自blog.csdn.net/CowBoySoBusy/article/details/82988265
今日推荐