0


Hadoop3.1.3分布式集群搭建,从零开始,保姆级教程

已经有VMware,已安装Centos7,可以直接跳转到Hadoop集群搭建

本教程更适合第一次安装,不了解Linux和hadoop的同学

写的非常详细,有8k字,希望同学们帮忙点点赞

一、安装VMware

虚拟机(VMware)下载地址:

VMware官网

网盘链接:

链接: https://pan.baidu.com/s/1Yx6822Y_ULXch0G1Ocl_iw?pwd=achf

提取码: achf

这里更改一下安装位置

两个不选

许可证用网上的就行,搜VMware许可证

二、搭建CentOS7系统

这是VMware安装好后的界面

2.1配置CentOS7基本项

点击创建新的虚拟机

下面跟着点

使用centos7映像文件

网盘链接:

链接: https://pan.baidu.com/s/1Yx6822Y_ULXch0G1Ocl_iw?pwd=achf

提取码: achf

这里改一下虚拟机的位置

处理器、内存、磁盘根据自己的需求定就行了,一般磁盘容量不低于40G

这里选择使用网络地址转换(NAT)

下面的直接点下一步就行了

磁盘改一下

点击完成

2.2安装CentOS7系统

前面成功后是下面的界面,回车继续,Ctrl+左ALT可以切换鼠标到Windows系统中

等待安装完成

在最下方选择中文

这两个需要改一下

安装位置进去后直接点完成

网络和主机名进去后跟着我的改

点击开始安装

这里我设置的密码为123456

点击完成,等待系统安装完毕,点击重启

这里用户名是root,密码是我们改成设置的密码(123456)

如果设置的数字密码输入后不正确,注意虚拟机键盘的数字Numlock是否开启,在最右边的数字盘上面有个Num按钮或者是Numlock按钮,需要开启后才能输入右边数字键盘的数字

登录成功后,右键虚拟机->电源->关机

出来后我们接下来开始设置网络

2.3网络配置

最上面点击编辑->虚拟网络编辑器,点击更改设置

选择VMnet8

将子网IP设置为192.168.10.0

点击Net设置

网关IP设置为192.168.10.2

点击应用

我们在本机上点击设置

点击网络和Internet->高级网络设置

找到VMnet8点击编辑

在Internet协议版本4前打勾✔

点击属性

按照我的来设置

我们接下来开启虚拟机,输入账号密码后,修改网络配置文件

vi /etc/sysconfig/network-scripts/ifcfg-ens33

按i进入修改模式,ESC进入命令行模式

进入后修改BOOTPROTO=dhcp为BOOTPROTO=static

修改ONBOOT=no为ONBOOT=yes

在最后添加

IPADDR=192.168.10.102
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
DNS1=8.8.8.8
DNS2=4.4.4.4

最终

退出修改(先点键盘ESC,然后输入:wq)

重启输入

reboot

重启后输入

ip a

出现192.168.10.102表示配置成功

我们尝试一下ping百度能不能ping通

ping baidu.com

出现以下提示则ping通

再试试本机能否ping通虚拟机

打开本机命令提示符,(在自己电脑上点键盘win+R,输入cmd则进入命令提示符)

输入

ping 192.168.10.102

出现以下提示则配置成功

在虚拟机上配置hosts文件

vi /etc/hosts

在最下面添加

192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104

最终结果,ESC进入命令行:wq保存退出

三、Xshell连接虚拟机

下载地址:家庭/学校免费 - NetSarang Website (xshell.com) 这个是免费版下载

两个都下载

点击新建

按照下面来进行配置,点击连接

后面用户名密码就是我们虚拟机的用户名和密码,记得保存用户名和密码

这样xshell就成功连接虚拟机了

四、Hadoop分布式集群搭建

4.1将必要文件导入至虚拟机中

这时候就要用到我们刚才下载的xftp

创建安装包文件夹与应用文件夹(software我们用来存安装包,module用来存软件应用)

mkdir -p /opt/software
mkdir -p /opt/module

在xshell中点击xftp

必要文件包括

jdk-8u221-linux-x64.tar.gz

hadoop-3.1.3.tar.gz

官网下得太慢了,镜像网站也没有历史的版本,这里推荐网盘链接

网盘链接:

链接: https://pan.baidu.com/s/1Yx6822Y_ULXch0G1Ocl_iw?pwd=achf

提取码: achf

把右边的路径修改一下,再在左边找到下载路径拖过来就行了

传输完毕后,关闭xftp,进入software文件夹中

cd /opt/software
ll

ll 查看当前目录中文件是否有jdk和hadoop

4.2 JDK1.8安装

1.卸载系统自带的JDK

rpm -qa | grep java

如果没有任何输出则不需要卸载,如果有java-*-openjdk-*这样的需要一个一个进行删除

删除:

rpm -e --nodeps 包名

解压JDK到/usr/local目录中

tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/

2.添加java环境变量

vi /etc/profile

按i进行修改

在最后添加

# JAVA_HOME
export JAVA_HOME=/usr/local/jdk1.8.0_221
export PATH=$PATH:$JAVA_HOME/bin

按ESC键,:wq保存退出

刷新环境变量

source /etc/profile

查看java版本

java -version

4.3克隆虚拟机

1.克隆

我们先关闭虚拟机

右键虚拟机->管理->克隆

在克隆虚拟机向导里面

创建完整克隆

修改虚拟机目录

创建两台克隆,第二次跟上面步骤一样

修改虚拟机名称

右键虚拟机->重命名

最终是有三台虚拟机

2.修改网络配置文件

我们全部开启,修改hadoop103和hadoop104的网络配置文件

hadoop103和104用户名密码都是hadoop102的用户名密码

vi /etc/sysconfig/network-scripts/ifcfg-ens33

hadoop103上IPADDR修改为192.168.10.103

hadoop104上IPADDR修改为192.168.10.104

3.修改主机名

修改hadoop103和104的hostname文件

hadoop103修改为hadoop103 hadoop104修改为hadoop104

vi /etc/hostname

hadoop103和104重启

4.在Xshell中添加虚拟机

记得改机器名和ip地址,添加两台(hadoop103和104)

点击连接即可,记得保存用户名和密码

5.禁用防火墙

每台机器上执行

systemctl stop firewalld
systemctl disable firewalld

4.4 SSH配置

生产ssh密钥

ssh-keygen -t rsa

敲三次回车

每一台都需要产生密钥,敲三次回车

将密钥拷贝到每一台机器上

ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104

按照顺序输入yes和密码

每一台都需要执行

尝试是否能相互连接

ssh hadoop103

不需要输入密码则配置成功

记得exit退出,机器别配错了

4.5 Hadoop分布式集群搭建

1.解压hadoop文件

进入software目录中

cd /opt/software

解压hadoop压缩文件

tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

2.配置hadoop环境变量

vi /etc/profile

在最下面添加

# HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

保存退出

更新/etc/profile

source /etc/profile

查看hadoop环境变量是否配置成功

hadoop version

将配置文件传输到hadoop103和104中

scp /etc/profile root@hadoop103:/etc/
scp /etc/profile root@hadoop104:/etc/

其他两台机器再更新一下

source /etc/profile

3.修改hadoop配置文件

cd /opt/module/hadoop-3.1.3/etc/hadoop/

修改core-site.xml

vi core-site.xml

在configuration内添加如下内容

<configuration>
 <!-- 指定 NameNode 的地址 -->
 <property>
  <name>fs.defaultFS</name>
  <value>hdfs://hadoop102:8020</value>
 </property>
 <!-- 指定 hadoop 数据的存储目录 -->
 <property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/module/hadoop-3.1.3/data</value>
 </property>
 <!-- 配置 HDFS 网页登录使用的静态用户为 root -->
 <property>
  <name>hadoop.http.staticuser.user</name>
  <value>root</value>
 </property>
</configuration>

修改hdfs-site.xml

vi hdfs-site.xml

在configuration内添加如下内容

<configuration>
<!-- nn web 端访问地址-->
<property>
  <name>dfs.namenode.http-address</name>
  <value>hadoop102:9870</value>
 </property>
<!-- 2nn web 端访问地址-->
 <property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>hadoop104:9868</value>
 </property>
</configuration>

修改yarn-site.xml

vi yarn-site.xml

在configuration内添加如下内容

<configuration>
 <!-- 指定 MR 走 shuffle -->
 <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>
 <!-- 指定 ResourceManager 的地址-->
 <property>
  <name>yarn.resourcemanager.hostname</name>
  <value>hadoop103</value>
 </property>
 <!-- 环境变量的继承 -->
 <property>
 <name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
 </property>
</configuration>

修改mapred-site.xml

vi mapred-site.xml

在configuration内添加如下内容

<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
<!-- 历史服务器端地址 -->
<property> 
    <name>mapreduce.jobhistory.address</name> 
    <value>hadoop102:10020</value> 
</property> 
 
<!-- 历史服务器 web 端地址 --> 
<property> 
    <name>mapreduce.jobhistory.webapp.address</name> 
    <value>hadoop102:19888</value> 
</property> 
</configuration>

修改hadoop-env.sh

vi hadoop-env.sh

修改export JAVA_HOME=/usr/local/jdk1.8.0_221

修改workers

vi workers

删除localhost,修改为

hadoop102
hadoop103
hadoop104

4.配置root启动

如果不是用的root则跳过这一步

进入sbin目录

cd /opt/module/hadoop-3.1.3/sbin/

修改start-dfs.sh和stop-dfs.sh

vi start-dfs.sh
vi stop-dfs.sh

在最顶部添加

HDFS_ZKFC_USER=root
HDFS_JOURNALNODE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=root
#HADOOP_SECURE_DN_USER=root

修改start-yarn.sh和stop-yarn.sh

vi start-yarn.sh
vi stop-yarn.sh

在最顶部添加

#HADOOP_SECURE_DN_USER=root
HDFS_DATANODE_SECURE_USER=root
YARN_NODEMANAGER_USER=root
YARN_RESOURCEMANAGER_USER=root

5.使用scp将hadoop分发到hadoop103和hadoop104上

scp -r /opt/module/hadoop-3.1.3/ root@hadoop103:/opt/module/
scp -r /opt/module/hadoop-3.1.3/ root@hadoop104:/opt/module/

6.启动集群

每台机器先进入hadoop目录中

cd /opt/module/hadoop-3.1.3/

格式化nam****enode

在hadoop102上

hdfs namenode -format

启动HDFS

在hadoop102上

sbin/start-dfs.sh

使用jps发现hadoop102上启动了namenode和datanode

启动Yarn

在hadoop103上

sbin/start-yarn.sh

启动历史服务器

在hadoop102上

bin/mapred --daemon start historyserver

每一台机器执行jps查看进程

hadoop102

hadoop103

hadoop104

7.访问web端

浏览器输入http://192.168.10.102:9870/

HDFS Web端

浏览器输入http://192.168.10.103:8088/

Yarn web端

历史服务器

浏览器输入http://192.168.10.102:19888/

如果上面的网页都能进入说明分布式集群搭建成功

8.关闭集群

在hadoop102上

bin/mapred --daemon stop historyserver

在hadoop103上

sbin/stop-yarn.sh

在hadoop102上

9.脚本文件

创建脚本文件

vi bin/myhadoop.sh

在脚本文件中输入

#!/bin/bash
if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit ;
fi

case $1 in
"start")
    echo " =================== 启动 hadoop 集群 ==================="
    echo " --------------- 启动 hdfs ---------------"
    ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
    echo " --------------- 启动 yarn ---------------"
    ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
    echo " --------------- 启动 historyserver ---------------"
    ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
    echo " =================== 关闭 hadoop 集群 ==================="
    echo " --------------- 关闭 historyserver ---------------"
    ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
    echo " --------------- 关闭 yarn ---------------"
    ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
    echo " --------------- 关闭 hdfs ---------------"
    ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..."
;;
esac

给该文件赋予权限

chmod 777 bin/myhadoop.sh

启动集群

myhadoop.sh start

关闭集群

myhadoop.sh stop

重新开启集群就看启动集群那里

可以自己写shell脚本来一键开启或关闭集群

各位同学配置完可以收藏一下,方便后续配置或更改


本文转载自: https://blog.csdn.net/a3305830029/article/details/142213826
版权归原作者 树懒丁丁 所有, 如有侵权,请联系我们删除。

“Hadoop3.1.3分布式集群搭建,从零开始,保姆级教程”的评论:

还没有评论