Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

  • 1.环境准备
  • 2 jdk1.8安装
    • 2.1 卸载虚拟机自带的JDK
    • 2.2 安装JDK1.8
  • 3.在 hadoop102 安装Hadoop集群
    • 3.1集群安装准备
    • 3.2 安装hadoop
    • 3.3 hadoop运行模式
    • 3.4 完全分布式运行模式(开发重点)
      • 3.4.1 编写集群分发脚本 xsync
      • 3.4.2 ssh免密配置
      • 3.4.3 集群配置
      • 3.4.4 启动集群
    • 3.5 测试集群F1a;
在学习的时候,碰到过很多同学,因为安装集群遇到过各种稀奇古怪的问题,导致很多人的兴趣大大降低。并且本人同学也有很多问题,在安装过程中。所有写一篇安装教程。分享给大家如何搭建。

1.环境准备

大家可以根据自己的需要,进行下载。 需要用的环境是:

1.VMware 15 2.CentOS-7.5 3.xshell 6 Xftp 6 4.jdk 1.8 5.hadoop-3.1.3 jar包 hadoop下载链接

2 jdk1.8安装

2.1 卸载虚拟机自带的JDK

注意:如果虚拟机时安装的桌面版本的linux。需要卸载虚拟机中的JDK。这是安装桌面版本自带的。如果你的虚拟机是最小化安装不需要执行这一步。

[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e 
--nodeps

重启虚拟机:

[root@hadoop100 ~]# reboot

解释字段:

  1. rpm -qa:查询所安装的所有 rpm 软件包
  2. grep -i:忽略大小写
  3. xargs -n1:表示每次只传递一个参数
  4. rpm -e –nodeps:强制@R_126_1644@

2.2 安装JDK1.8

0.用 XShell 传输工具将 JDK 导入到虚拟机中的文件夹下面 我个人习惯在当前用户下建立二个文件夹,一个用来存放安装包,一个是安装软件

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

1.将JDK安装包上传到存放安装包路径中:

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

2.在Linux目录下查看是否上传成功:

[abc@hadoop102 ~]$ ls /opt/Software/

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

3. 解压 JDK 到/opt/module 目录下

[abc@hadoop102 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

4.配置 JDK 环境变量 (1)新建/etc/PRofile.d/my_env.sh 文件

[abc@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh

(2)添加如下内容

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

(3)保存后退出

:wq

(4)source 一下/etc/profile 文件,让新的环境变量 PATH 生效

[abc@hadoop102 ~]$ source /etc/profile

5.测试 JDK 是否安装成功

[abc@hadoop102 ~]$ java -version

出现以下结果表示安装成功:

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

3.在 hadoop102 安装Hadoop集群

3.1集群安装准备

注意:安装前,请确保自己有3台虚拟机,并且没有问题。jdk都存在。可以直接将hadoop102上的虚拟机复制也可以。需要更改下主机名和主机ip 注意:克隆时,要先关闭 hadoop102 1.修改克隆机 IP,以下以 hadoop103 举例说明 修改克隆虚拟机的静态 IP。确保横线部分和配置网络ip一致

[root@hadoop100 ~]# vim /etc/Sysconfig/network-scripts/ifcfg-ens33

改成

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

2.修改克隆机主机名,以下以 hadoop102 举例说明 (1)修改主机名称

[root@hadoop100 ~]# vim /etc/hostname

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

3.重启虚拟机

[root@hadoop100 ~]# reboot

3.2 安装hadoop

Hadoop 下载地址: 链接地址:hadooP3.1.3下载地址 https://Archive.apache.org/dist/hadoop/common/hadoop-3.1.3/ 1.用 XShell 文件传输工具将 hadoop-3.1.3.tar.gz 导入到 opt 目录下面的 software 文件夹下面

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

2.在Linux目录下查看: 命令:/opt/software

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

3.将hadoop-3.1.3解压到module目录下:

[abc@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

4.查看是否解压成功

[abc@hadoop102 software]$ ls /opt/module/hadoop-3.1.3

5.将 Hadoop 添加到环境变量 (1)获取 Hadoop 安装路径

[abc@hadoop102 hadoop-3.1.3]$ pwd 

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

(2)打开/etc/profile.d/my_env.sh 文件

[abc@hadoop102 hadoop-3.1.3]$ sudo vim/etc/profile.d/my_env.sh

(3)将一下内容添加文件中

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

(4) 查看结果

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

(5)让修改后的文件生效

[abc@hadoop102 hadoop-3.1.3]$ source /etc/profile

(6)测试是否安装成功

[abc@hadoop102 hadoop-3.1.3]$ hadoop version

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

3.3 hadoop运行模式

1.Hadoop 官方网站:官方地址 http://hadoop.apache.org/ 2.Hadoop 运行模式包括: 本地模式、伪分布式模式以及完全分布式模式。

  1. 本地模式:单机运行,只是用来演示一下官方案例。生产环境不用
  2. 伪分布式模式:也是单机运行,但是具备 Hadoop 集群的所有功能,一台服务器模拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。
  3. 完全分布式模式:多台服务器组成分布式环境。生产环境使用。

3.4 完全分布式运行模式(开发重点)

安装所需要的条件: 1.准备 3 台客户机(关闭火墙、静态 IP、主机名称) 2.安装 JDK 3.配置环境变量 4.安装 Hadoop 5.配置环境变量

3.4.1 编写集群分发脚本 xsync

  1. 在/home/atguigu/bin 目录下创建 xsync 文件
[abc@hadoop102 opt]$ cd /home/atguigu
[abc@hadoop102 ~]$ mkdir bin
[abc@hadoop102 ~]$ cd bin
[abc@hadoop102 bin]$ vim xsync

在文件中编写以下内容:

#!/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
  1. 修改脚本 xsync 具有执行权限
[abc@hadoop102 bin]$ chmod +x xsync
  1. 测试脚本
[abc@hadoop102 ~]$ xsync /home/atguigu/bin
  1. 将脚本复制到/bin 中,以便全局调用
[abc@hadoop102 bin]$ sudo cp xsync /bin/
  1. 同步环境变量配置(root 所有者
[abc@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh

注意:如果用了 sudo,那么 xsync 一定要给它的路径补全。 让环境变量生效

[abc@hadoop103 bin]$ source /etc/profile
[abc@hadoop104 opt]$ source /etc/profile

3.4.2 ssh免密配置

1.生产密钥命令:ssh-keygen -t rsa

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

出现一下情况一直按回车就解决:

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

生产密钥结束:

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

2.将密钥拷贝到hadoop103 hadoop104:

[abc@hadoop102 .ssh]$ ssh-copy-id hadoop102
[abc@hadoop102 .ssh]$ ssh-copy-id hadoop103
[abc@hadoop102 .ssh]$ ssh-copy-id hadoop104

注意: 还需要在 hadoop103 上采用 atguigu 账号配置一下无密登录hadoop102、hadoop103、hadoop104 服务器上。 还需要在 hadoop104 上采用 atguigu 账号配置一下无密登录hadoop102、hadoop103、hadoop104 服务器上。 还需要在 hadoop102 上采用 root 账号,配置一下无密登录到hadoop102、hadoop103、hadoop104

3.4.3 集群配置

注意: NameNode 和 SecondaryNameNode 不要安装在同一台服务器 ResourceManager 也很消耗内存,不要和 NameNodeSecondaryNameNode 配置在同一台机器上。

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

1.配置文件说明 Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。 (1)默认配置文件: 要获取的默认文件 文件存放在 Hadoop 的 jar 包中的位置

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

(2)自定义配置文件: core-site.XMl、hdfs-site.xML、yarn-site.xml、mapred-site.xml 四个配置文件存放在$HADOOP_HOME/etc/hadoop 这个路径上,用户可以根据项目需求重新进行修改配置。 2.配置集群

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

(1)核心配置文件 vim core-site.xml

<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 网页登录使用的静态用户为 atguigu -->
 <property>
  <name>hadoop.http.staticuser.user</name>
  <value>abc</value>
 </property>
</configuration>

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

(2)HDFS 配置文件vim hdfs-site.xml

<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>

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

(3)YARN 配置文件vim yarn-site.xml

<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>

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

(4);mapReduce 配置文件vim mapred-site.xml

<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
</configuration>

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

(5)配置 workers vim workers 注意:不能有空行

hadoop102
hadoop103
hadoop104

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

3.在集群上分发配置好的 Hadoop 配置文件

[abc@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/

4.去 103 和 104 上查看文件分发情况

[atguigu@hadoop103 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml

[atguigu@hadoop104 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml

3.4.4 启动集群

  1. 如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode

注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停 止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 LOGs 目录,然后再进行格式化。 格式化命令:

[abc@hadoop102 hadoop-3.1.3]$ hdfs namenode -format
  1. 启动 HDFS
[abc@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh
  1. 在配置了 ResourceManager 的节点(hadoop103)启动 YARN
[abc@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh
  1. Web 端查看 HDFS 的 NameNode (a)浏览器中输入:http://hadoop102:9870

    Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

    (b)查看 HDFS 上存储的数据信息

    Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

  2. Web 端查看 YARN 的 ResourceManager (a)浏览器中输入:http://hadoop103:8088 (b)查看 YARN 上运行的 Job 信息。

    Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

  3. 集群搭建完成。使用jps命令查看进程:jps

[abc@hadoop102 ~]$ jps
[abc@hadoop103 ~]$ jps
[abc@hadoop104 ~]$ jps

hadoop102上进程:

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

hadoop103进程:

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

Hadoop104进程:

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

如果出现这几个进程代表安装完成;恭喜大家

3.5 测试集群:

首先确保集群在启动状态下,在hadoop的当前目录下创建一个文件。请确保一下命令君在hadoop102上运行;

  1. 命令:
vim /opt/module/hadoop-3.1.3/word.txt
  1. 给word.txt中写一些数据。 举例子写的一下代码:
hadoop yarn
hadoop mapreduce
hello
hello yarn

保存退出;(按 esc 后,按大写ZZ退出)

  1. 将word.txt上传到hdfs中 命令:
hadoop fs -put /opt/module/hadoop-3.1.3/word.txt /

上hdfs上查看:

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

  1. 利用hadoop自带的测试类运行: 解释:运行wordcount程序,将hdfs跟目录下的word.txt运行,并分类,然后输出到dhfs根目录下的output文件夹
 hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /word.txt /output

运行过程截图:

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

结束时候的运行状况:

Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

  1. 在hdfs网页端查看结果:

    Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

    查看输出的内容:(按序号点击就可查看)

    Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程

    到这里已经安装完成了。如果本篇文章,对大家有帮助,希望大家给点个赞。非常感谢。如果有任何疑问,请评论区提问,感谢大家

脚本宝典总结

以上是脚本宝典为你收集整理的Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程全部内容,希望文章能够帮你解决Hadoop 3.1.3 分布式集群搭建,超详细,保姆级教程所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。