最全面的CentOS下hadoop的分布式搭建

在开始搭建完全分布式之前,请先确保已经掌握hadoop伪分布式的安装
因为hadoop完全分布式的安装只需在单机模式的基础上配置三个结点即可,同时对一些配置文件稍加改进。

一、本博客的集群相关配置

本博客主要搭建具有三个节点的完全分布式hadoop集群,结点名称分别为hadoop1、hadoop2、hadoop3。具体信息如下:
在这里插入图片描述

二、克隆虚拟机

在搭建好伪分布式的基础,我们不需要在另外单独创建两个虚拟机,直接采用的克隆的方法创建,同时必须确保三台机器的用户名一样

这部分如果觉得比较困难的同学或者遇到bug无法解决的同学可以直接再单独创建两个虚拟机就好了,然后直接跳到第四步。

在这里插入图片描述
进行两次克隆之后,克隆出两个分别名为Hadoop2,Hadoop3的节点
在这里插入图片描述

三、进行Hadoop2、Hadoop3的网络配置

1、生成新的MAC地址
因为是克隆虚拟机,所以导致克隆出的两台虚拟机的MAC地址和原虚拟机的相同。所以我需要重新生成新的MAC地址。
在这里插入图片描述
在这里插入图片描述
2、修改/etc/udev/rules.d/70-persistent-net.rules文件配置

我的虚拟机是创建了两个网卡,eth0(static)用于内网,eth1(dhcp)用于访问外网,其中IP到主机名之间的映射采用的是eth0。所以下面有四个网络,其中两个是新生成的,第一二个是原来的。

在这里插入图片描述
删除eth0和eth1所在所在行,并修改eth2为eth0,eth3为eth1,同时配置/etc/sysconfig/network-scripts/ifcfg-eth0 和/etc/sysconfig/network-scripts/ifcfg-eth1中的MAC地址。确保和/etc/udev/rules.d/70-persistent-net.rules中的MAC地址对应
在这里插入图片描述
3、修改hadoop2和hadoop3的IP地址并配置主机名到IP地址之间的映射
这部分其实就是CentOS的网络配置,我在之前写的博客CentOS搭建中写的比较详细,这里就不赘述了

四、配置三台主机之间的映射免密登陆(重要)

务必确保这一步完全配置好,否则后面容易出现bug

首先确保在三台主机的/etc/hosts文件中都加入了三个主机到IP地址的映射。
在这里插入图片描述

除此之外,因为hadoop1既是NameNode结点,又是datanode结点,其他的两个结点都是datanode结点。所以我们在hadoop1结点启动hdfs模块时,需要远程登录hadoop1、hadoop2、hadoop3结点。因此需要能够在hadoop1上面免密登陆到hadoop1、hadoop2和hadoop3上面。否则我们采用start-dfs.sh命令启动hdfs模块的时候就会报错。

配置方法:
在hadoop1上面依次使用如下命令:
ssh-keygen -t rsa
cd ~/.ssh/
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3

除此之外,因为hadoop2既是resoucemanager结点,又是nodemanager结点,其他的两个结点都是nodemanager结点。所以我们在hadoop2结点启动yarn模块时,需要远程登录hadoop1、hadoop2、hadoop3结点。因此需要能够在hadoop2上面免密登陆到hadoop1、hadoop2和hadoop3上面。否则我们采用start-yarn.sh命令启动hdfs模块的时候就会报错。

配置方法:
在hadoop2上面依次使用如下命令:
ssh-keygen -t rsa
cd ~/.ssh/
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3

五、配置相关文件

只需要在hadoop1上面进行配置,配置好之后进行分发。

1、hdfs模块:slaves、core-site.xml、hadoop-env.sh、hdfs-sit.xml
(1)hadoop-env.sh:配置java路径
在这里插入图片描述
(2)core-site.xml:这里配置的/opt/app/hadoop-2.5.0/data/tmp目录中的data和tmp是不存在,因此需要单独创建
在这里插入图片描述
(3)hdfs-site.xml:在伪分布式中,我们设置了副本数为1,这里不需要设置,主要区分。同时我们在这里加入了secondarynode结点,位置在hadoop3结点上,当然在伪分布式中也可以加入,不过我当时没有配置。
在这里插入图片描述
(4)slaves
在这里插入图片描述
2、yarn模块:slaves、yarn-site.xml、yarn-env.sh
(1)yarn-env.sh:配置java路径
在这里插入图片描述
(2)yarn-site.xml:注意resourcemanager的位置在hadoop2上面
在这里插入图片描述
(3)slaves:在hdfs模块中已经配置过了,所以不需要再配置

3、mapreduce:mapred-site.xml(原名:mapred-site.xml.template)
在这里插入图片描述
以上全都在hadoop1配置好之后,采用scp -r hadoop安装目录 用户名@主机名:hadoop安装目录分发到另外两台机器上

三个机器上的hadooop安装路径必须相同

在这里插入图片描述
在这里插入图片描述

六、运行集群

1、hdfs模块
(1)在Hadoop1上的hadoop安装目录进行格式化:bin/hdfs namenode -format
在这里插入图片描述
(2)在hadoop1上的hadoop安装目录执行sbin/start-dfs.sh启动hdfs模块
在这里插入图片描述

这里出现了WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable问题,本身可以忽略,如果有强迫症的人可以参考解决办法

(3)分别在三个结点上使用jps查看进程:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
出现上图表示hdfs启动成功。

在浏览器上输入:主机名 or IP地址:50070查看web页面
在这里插入图片描述
2、yarn模块
(1)在hadoop2的hadoop安装目录下输入sbin/start-yarn.sh命令
在这里插入图片描述
(2)在各结点上输入jps查看进程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
出现上图表示yarn启动成功。

在浏览器上输入:主机名 or IP地址:8088查看web页面
在这里插入图片描述
3、Mapreduce模块
(1) 在hadoop1的hadoop安装目录下输入sbin/mr-jobhistory-daemon.sh start historyserver命令启动历史服务器
在这里插入图片描述
(2)在hadoop1输入jps查看进程
在这里插入图片描述
至此,hadoop分布式搭建完成了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值