大数据实战之Centos搭建完全分布式Hadoop集群

Posted 进击的鱼豆腐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据实战之Centos搭建完全分布式Hadoop集群相关的知识,希望对你有一定的参考价值。

集群规划

名称
ip
身份
hadoop101
192.168.231.121
NameNode,DataNode,NodeManager
hadoop102
192.168.231.122
DataNode,ResourceManager
hadoop103
192.168.231.123
DataNode,NodeManager,Secondary NameNode


环境:虚拟机Centos8

安装包:hadoop3.2.1


1. 先配置一台虚拟机然后克隆两台

1.1 修改主机名

vim /etc/hostname


1.2 修改网络ip

cd /etc/sysconfig/network-scripts

vim ifcfg-ens160

大数据实战之Centos搭建完全分布式Hadoop集群

打开后如下图所示

大数据实战之Centos搭建完全分布式Hadoop集群


修改成如下

大数据实战之Centos搭建完全分布式Hadoop集群


然后输入下面两条命令重启网络服务,ens160是网卡名,即上图中的NAME

nmcli c reload

nmcli c up ens160


可以看到ip已经修改成功

大数据实战之Centos搭建完全分布式Hadoop集群


上面的配置还无法识别域名,所以要加上dns解析(这里加的是虚拟网关)

vim /etc/resolv.conf

大数据实战之Centos搭建完全分布式Hadoop集群

然后可以成功ping通啦

大数据实战之Centos搭建完全分布式Hadoop集群


1.3 配置ip和主机名的映射

vim /etc/hosts

大数据实战之Centos搭建完全分布式Hadoop集群

因为之后还有两台也要加映射,所以在这里先添加好


现在重启后修改的主机名就能生效,基本配置工作就完成了,这里先关闭虚拟机然后克隆两台。


对克隆机器依次执行操作:修改主机名->修改网络ip->重启网络服务->重启虚拟机



2. 安装jdk1.8

2.1 下载jdk1.8到windows

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html


2.2 下载lsync,方便之后分发同步文件

在hadoop101上执行:yum install rsync (用root用户才能下载)


2.3 编写分发脚本xsync,有了这个后面可以少做很多工作

cd /usr/local/bin

在这个目录下创建脚本可以全局使用

vim xsync

填写如下内容,ip根据自己机器情况改动

大数据实战之Centos搭建完全分布式Hadoop集群

给文件附加可执行权限

chmod 777 xsync

大数据实战之Centos搭建完全分布式Hadoop集群


2.4 用SecureCRT或Xshell连接到三台虚拟机

大数据实战之Centos搭建完全分布式Hadoop集群


2.5 没有hadoop用户的,创建hadoop用户及hadoop用户组

groupadd hadoop(添加组)

useradd -g hadoop hadoop(添加用户并指定组)

passwd hadoop(修改用户密码)


给hadoop用户赋予临时root权限:在root用户下执行visudo

找到root这一行,在其下方添加hadoop的信息

大数据实战之Centos搭建完全分布式Hadoop集群


2.6 创建工作目录

用root用户在/opt目录下创建software目录,并将其所属用户和组改为hadoop

cd /opt

mkdir software

chown hadoop:hadoop software

然后分发一下这个目录

xsync /opt/software(此时分发是需要输入密码的,后面配置了ssh之后就不用了)


2.7 将jdk安装包上传到/opt/software目录下,并解压

切换到hadoop用户

tar -zxvf jdk-8u241-linux-x64.tar.gz

大数据实战之Centos搭建完全分布式Hadoop集群


2.8 配置环境变量

在root用户下

vim /etc/profile 在文件末尾添加如下内容

大数据实战之Centos搭建完全分布式Hadoop集群

保存退出后刷新一下

source /etc/profile

java -version 可以测试看看


2.9 分发文件

xsync /etc/profile

xsync /opt/software/jdk1.8.0_241

再到其它机器上执行一下source /etc/profile就行了



3. 解压hadoop安装包

3.1 配置ssh免密登录

hadoop群起需要ssh免密登录,而且分发文件时免密登录也更加方便,所以接下来就先在hadoop101上的hadoop用户下配置免密登录


先进入到hadoop家目录下

cd /home/hadoop

在进入隐藏文件夹.ssh中,如果没有就先创建

mkdir .ssh

并改权限

chmod 744 .ssh


cd .ssh

执行命令:ssh-keygen -t rsa,然后一直敲回车

大数据实战之Centos搭建完全分布式Hadoop集群


发送公匙,输入yes和对应的密码则添加成功

ssh-copy-id hadoop101

ssh-copy-id hadoop102

ssh-copy-id hadoop103


ssh hadoop101测试一下,不需要密码登录成功则完成

(可以在root用户下也配置一下,方便root用户下分发文件)


因为后面resourcemanager在hadoop102上,所以在hadoop102的.ssh中也要配置免密登录。


3.2 下载hadoop3.2.1安装包,然后上传到hadoop101的/opt/software目录下

https://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.2.1/


3.3 解压安装包

tar -zxvf hadoop-3.2.1.tar.gz

大数据实战之Centos搭建完全分布式Hadoop集群


3.4 配置环境变量

切换为root用户

su root

vim /etc/profile

大数据实战之Centos搭建完全分布式Hadoop集群

source /etc/profile


3.5 编写hadoop配置文件

在hadoop用户下

vim $HADOOP_HOME/etc/hadoop/core-site.xml

添加如下配置

大数据实战之Centos搭建完全分布式Hadoop集群


vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml

添加如下配置

大数据实战之Centos搭建完全分布式Hadoop集群


vim $HADOOP_HOME/etc/hadoop/mapred-site.xml

添加如下配置

大数据实战之Centos搭建完全分布式Hadoop集群


vim $HADOOP_HOME/etc/hadoop/yarn-site.xml

添加如下配置

大数据实战之Centos搭建完全分布式Hadoop集群


vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

配置JAVA_HOME和HADOOP_HOME的路径

大数据实战之Centos搭建完全分布式Hadoop集群


vim $HADOOP_HOME/etc/hadoop/yarn-env.sh

同样配置JAVA_HOME和HADOOP_HOME的路径

大数据实战之Centos搭建完全分布式Hadoop集群


vim $HADOOP_HOME/etc/hadoop/workers

配置群起的workers (不能有多余的空格和空行

大数据实战之Centos搭建完全分布式Hadoop集群


3.6 分发hadoop3.2.1文件夹

大数据实战之Centos搭建完全分布式Hadoop集群

大数据实战之Centos搭建完全分布式Hadoop集群


3.7 格式化NameNode

cd $HADOOP_HOME 进入hadoop根目录

执行bin/hdfs namenode -format

大数据实战之Centos搭建完全分布式Hadoop集群


3.8 启动dfs

hadoop101的hadoop根目录下执行sbin/start-dfs.sh

启动成功,并且在另外两台上自动创建了日志文件夹

大数据实战之Centos搭建完全分布式Hadoop集群


3.8 启动yarn

hadoop102的hadoop根目录下执行sbin/start-yarn.sh

jps后出现以下进程则一切正常

大数据实战之Centos搭建完全分布式Hadoop集群

大数据实战之Centos搭建完全分布式Hadoop集群

大数据实战之Centos搭建完全分布式Hadoop集群


关闭集群命令:

sbin/stop-dfs.sh

sbin/stop-yarn.sh


3.9 编写群起脚本(能够在hadoop101上启动dfs和hadoop102上的yarn)

切换到root用户su root

cd /usr/local/bin

vim hdp


填写如下内容

大数据实战之Centos搭建完全分布式Hadoop集群


保存退出后给文件附加执行权限

chmod 777 hdp


然后切换到hadoop用户启动脚本,效果如下图所示,启动成功!大数据实战之Centos搭建完全分布式Hadoop集群

大数据实战之Centos搭建完全分布式Hadoop集群



4. 关闭所有机器的防火墙(方便从windows访问集群)

用root用户或sudo执行

systemctl disable firewalld 禁用开机启动

systemctl stop firewalld 禁用防火墙


大数据实战之Centos搭建完全分布式Hadoop集群



5. 集群时间同步

5.1 安装chrony

centos8自带chrony,如未安装可用以下命令安装

yum install chrony -y


5.2 开启服务

在root用户下或用sudo执行(三台机器都要执行)

systemctl enable chronyd.service (加入开机自启动)

systemctl start chronyd.service (开启服务)

systemctl status chronyd.service (查看状态)

大数据实战之Centos搭建完全分布式Hadoop集群


5.3 修改配置文件

vim /etc/chrony.conf

让hadoop101同步阿里云的时钟,集群其它机器同步hadoop101的时钟


hadoop101修改下列两项位置

大数据实战之Centos搭建完全分布式Hadoop集群

大数据实战之Centos搭建完全分布式Hadoop集群


hadoop102和hadoop103的配置文件修改如下


退出保存后重启服务

systemctl restart chronyd

分布式hadoop搭建到此就结束啦!下一章将介绍hadoop命令的基本使用。

以上是关于大数据实战之Centos搭建完全分布式Hadoop集群的主要内容,如果未能解决你的问题,请参考以下文章

大数据实战——hadoop集群安装搭建

大数据实战之MapReduce基础介绍

大数据实战——hadoop的模板虚拟机搭建

大数据实战之Hadoop常用命令及API应用

大数据实战——hadoop集群组件启动及服务组件配置修改

大数据实战之用户画像概念项目概述及环境搭建