0


Hadoop分布式集群搭建教程

摘要:本文讲解了在Ubuntu22.04上搭建Hadoop分布式集群的教程


前言

  1. 本篇博客主要讲解如何在Linux虚拟机上搭建Hadoop的分布式集群
  1. 最近在网上找HadoopUbuntu上的搭建教程,却发现大多是在Centos上搭建的,许多配置不尽相同,出于记录和提供帮助的想法,我写下了本篇博客。
  1. 如果您是Linux小白,请先阅读

Hadoop配置教程的前期准备-CSDN博客

  1. ,如果您有一定Linux基础可以在命令报错后自行解决,那么您可以直接阅读本教程。

前期准备

VMware版本可以任意选择,其他资源版本建议保持一致或相近

  1. VMware:VMware Workstation Pro v16.1.2(版本可以任意)
  2. Ubuntu:ubuntu-22.04.4-desktop-amd64.iso
  3. JDK:jdk-8u171-linux-x64.tar.gz
  4. Hadoop:hadoop-3.4.0.tar.gz
  • Ubuntu:ubuntu-releases-22.04安装包下载_开源镜像站-阿里云*

jdk:https://repo.huaweicloud.com/java/jdk/8u171-b11/

Hadoop:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.4.0/


一、JDK、Hadoop下载

Hadoop的分布式和伪分布式的JDK、Hadoop下载操作一致

详见:Hadoop伪分布式搭建教程-CSDN博客


二、JDK配置

** **Hadoop的分布式和伪分布式的JDK配置操作一致

详见:Hadoop伪分布式搭建教程-CSDN博客


三、ssh免密登录

在之后操作集群的时候我们需要经常登录主机和从机,所以设置SSH免密登录时有必要的。

输入如下代码:生成无密码密钥对,询问保存路径直接输入回车,生成密钥对:id_rsa和id_rsa.pub,默认存储在~/.ssh目录下。

  1. ssh-keygen -t rsa -P ''

接下来:把id_rsa.pub追加到授权的key里面去

  1. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

然后修改权限:

  1. chmod 600 ~/.ssh/authorized_keys

接着需要启用RSA认证,启动公钥私钥配对认证方式:vim /etc/ssh/sshd_config 如果提示权限不足在命令前加上sudo;
修改ssh配置:

  1. RSAAuthentication yes # 启用 RSA 认证
  2. PubkeyAuthentication yes # 启用公钥私钥配对认证方式
  3. AuthorizedKeysFile %h/.ssh/authorized_keys # 公钥文件路径

重启ssh:

  1. service ssh restart

四、Hadoop配置

** **Hadoop的分布式和伪分布式的Hadoop配置操作基本一致,但需要对部分文件进行修改,我们在这里重新配置各个文件(没有做伪分布的直接看这个就行)。

** 需要修改的配置文件有:**

** hadoop-env.sh**

** yarn-env.sh**

** **core-site.xml

** hdfs-site.xml**

** yarn-site.xml**

** mapred-site.xml**

** workers**

首先进入Hadoop安装路径下的/etc/hadoop-3.4.0/etc/hadoop目录下,然后依次编辑上述文件。

  1. cd /app/hadoop-3.4.0/etc/hadoop

4.1编辑hadoop-env.sh

在hadoop-env.sh文件中添加以下代码:

  1. export JAVA_HOME=/app/jdk1.8.0_171
  2. export HADOOP_HOME=/app/hadoop-3.4.0
  3. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
  4. export HADOOP_LOG_DIR=$HADOOP_HOME/logs

4.2编辑yarn-env.sh

在yarn-env.sh文件中添加以下代码:

  1. export JAVA_HOME=/app/jdk1.8.0_171

4.3编辑core-site.xml

  1. <configuration>
  2. <property>
  3. <name>fs.default.name</name>
  4. <value>hdfs://hadoop-1:9000</value>
  5. <description>HDFS的URI,文件系统://namenode标识:端口号</description>
  6. </property>
  7. <property>
  8. <name>hadoop.tmp.dir</name>
  9. <value>/usr/hadoop/tmp</value>
  10. <description>namenode上本地的hadoop临时文件夹</description>
  11. </property>
  12. </configuration>

4.4编辑hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.name.dir</name>
  4. <value>/usr/hadoop/hdfs/name</value>
  5. <description>namenode上存储hdfs名字空间元数据 </description>
  6. </property>
  7. <property>
  8. <name>dfs.data.dir</name>
  9. <value>/usr/hadoop/hdfs/data</value>
  10. <description>datanode上数据块的物理存储位置</description>
  11. </property>
  12. <property>
  13. <name>dfs.namenode.hosts</name>
  14. <value>hadoop-1,hadoop-2,hadoop-3</value>
  15. </property>
  16. <property>
  17. <name>dfs.namenode.handler.count</name>
  18. <value>100</value>
  19. </property>
  20. <property>
  21. <name>dfs.replication</name>
  22. <value>2</value>
  23. </property>
  24. <property>
  25. <name>dfs.namenode.http-address</name>
  26. <value>localhost:9870</value>
  27. </property>
  28. <property>
  29. <name>dfs.datanode.data.dir.perm</name>
  30. <value>700</value>
  31. </property>
  32. </configuration>

4.5编辑yarn-site.xml

这里的192.168.147.101要填你虚拟机自己的IP地址

  1. <configuration>
  2. <property>
  3. <name>yarn.nodemanager.aux-services</name>
  4. <value>mapreduce_shuffle</value>
  5. </property>
  6. <property>
  7. <name>yarn.resourcemanager.hostname</name>
  8. <value>hadoop-1</value>
  9. </property>
  10. <property>
  11. <name>yarn.resourcemanager.webapp.address</name>
  12. <value>192.168.147.101:8099</value>
  13. <description>这个地址是mr管理界面的</description>
  14. </property>
  15. </configuration>

4.6编辑mapred-site.xml

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>yarn.app.mapreduce.am.env</name>
  8. <value>HADOOP_MAPRED_HOME=/app/hadoop-3.4.0</value>
  9. </property>
  10. <property>
  11. <name>mapreduce.map.env</name>
  12. <value>HADOOP_MAPRED_HOME=/app/hadoop-3.4.0</value>
  13. </property>
  14. <property>
  15. <name>mapreduce.reduce.env</name>
  16. <value>HADOOP_MAPRED_HOME=/app/hadoop-3.4.0</value>
  17. </property>
  18. </configuration>

4.7添加workers

在workers文件中添加三台主机名,(如果你的hadoop版本是2.x,则需要修改slaves文件)

  1. hadoop-1
  2. hadoop-2
  3. hadoop-3

4.8配置环境变量

在配置环境变量之前,由于我们在配置文件中用到了一些没有创建的文件夹路径,所以我们先来创建文件夹

  1. mkdir -p /usr/hadoop/tmp
  2. mkdir /usr/hadoop/hdfs
  3. mkdir /usr/hadoop/hdfs/data
  4. mkdir /usr/hadoop/hdfs/name

将Hadoop添加到/etc/profile环境变量中

  1. vim /etc/profile
  2. export HADOOP_HOME=/app/hadoop-3.4.0
  3. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

4.9使文件生效

  1. source /etc/profile

五、修改hadoop启动、停止文件

首先进入Hadoop的sbin目录下

  1. cd /app/hadoop-3.4.0/sbin

在start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数:

  1. #!/usr/bin/env bash
  2. HDFS_DATANODE_USER=root
  3. HADOOP_SECURE_DN_USER=hdfs
  4. HDFS_NAMENODE_USER=root
  5. HDFS_SECONDARYNAMENODE_USER=root

在start-yarn.sh,stop-yarn.sh顶部添加以下参数:

  1. #!/usr/bin/env bash
  2. YARN_RESOURCEMANAGER_USER=root
  3. HADOOP_SECURE_DN_USER=yarn
  4. YARN_NODEMANAGER_USER=root

六、虚拟机克隆

6.1克隆前的准备

在克隆虚拟机之前,我们还需要对集群进行一些配置

首先对配置好的第一台虚拟机修改主机名为hadoop-1

  1. hostnamectl set-hostname hadoop-1 # 修改主机名

修改hadoop-1的IP地址(根据你自己的IP地址修改下面的静态IP地址和网关、DNS)

  1. vim /etc/netplan/01-network-manager-all.yaml
  2. # Let NetworkManager manage all devices on this system
  3. network:
  4. version: 2
  5. renderer: NetworkManager
  6. ethernets:
  7. ens33: # 请根据你的实际接口名称替换这个
  8. #dhcp: no # 禁用 DHCP
  9. addresses:
  10. - 192.168.147.101/24 # 设置静态 IP 地址和子网掩码
  11. routes:
  12. - to: default #默认路由
  13. via: 192.168.147.2 # 设置网关
  14. nameservers:
  15. addresses:
  16. - 192.168.147.2 # 设置 DNS 服务器

配置主机映射,修改hosts文件,在/etc/hosts文件中添加以下内容(也是根据你自己的IP地址进行修改):

  1. vim /etc/hosts
  2. 192.168.147.101 hadoop-1
  3. 192.168.147.102 hadoop-2
  4. 192.168.147.103 hadoop-3

(由于我们还没有克隆虚拟机,所以这里的hadoop-2和hadoop-3的IP地址暂时是不存在的,现在先把它们的IP配置好,方便虚拟机克隆以后的修改,在6.3会讲解克隆机的IP配置)

6.2克隆虚拟机

首先将我们的虚拟机关机,然后找到右键虚拟机找到克隆选项--->选择创建完整克隆,其他选项默认就可以了

6.3修改克隆机的配置

克隆两台虚拟机hadoop-2和hadoop-3,然后启动我们的三台虚拟机

将第二台和第三台虚拟机修改主机名为hadoop-2、hadoop-3(分别在各自主机上运行)

  1. hostnamectl set-hostname hadoop-2 # 修改主机名,在hadoop-2上运行
  2. hostnamectl set-hostname hadoop-3 # 修改主机名,在hadoop-3上运行

将hadoop-2和hadoop-3的静态IP地址单独修改(我的hadoop-2是192.168.147.102,hadoop-3是192.167.147.103),具体要根据你的IP修改

  1. vim /etc/netplan/01-network-manager-all.yaml
  2. # Let NetworkManager manage all devices on this system
  3. network:
  4. version: 2
  5. renderer: NetworkManager
  6. ethernets:
  7. ens33: # 请根据你的实际接口名称替换这个
  8. #dhcp: no # 禁用 DHCP
  9. addresses:
  10. - 192.168.147.101/24 # 设置静态 IP 地址和子网掩码
  11. routes:
  12. - to: default #默认路由
  13. via: 192.168.147.2 # 设置网关
  14. nameservers:
  15. addresses:
  16. - 192.168.147.2 # 设置 DNS 服务器

七、启动Hadoop集群

虚拟机克隆完成以后,将三台虚拟机hadoop-1,hadoop-2和hadoop-3全部开机启动。

  1. #如果重启后连不上网,并且命令行ping www.baidu.com出现域名解析出现暂时性错误
  2. #使用sudo dhclient ens33可以获取并配置网络接口

详见: ubuntu出现“域名解析出现暂时性错误”解决办法-CSDN博客

由于重启了虚拟机,我们需要先生效一下配置文件

  1. source /etc/profile
  1. 然后在主节点(hadoop-1)上运行hadoop namenode -format进行格式化
  1. hadoop namenode -format

2.然后启动hadoop(只需要在hadoop-1上启动),可以使用start-dfs.sh、start-yarn.sh分别启动,也可以使用start-all.sh一键全部启动(hadoop-2和hadoop-3会自动启动)

  1. start-all.sh

3.检查各个机子的启动的结点,分别在hadoop-1,hadoop-2和hadoop-3查看jps

  1. jps
  1. 如果你的三台虚拟机出现下图结果表示Hadoop分布式搭建并启动成功:

或者是登陆localhost:9870,查看集群是否有三台虚拟机。如果出现下图,恭喜您,您的Hadoop分布式搭建到此成功!

如果没有成功,可能是IP地址没有改对,确保另外两台虚拟机的IP跟我们在hadoop-1中配置的IP是一样的


八、总结

以上就是本文要讲的内容,主要涉及JDK、Hadoop的安装和配置,ssh免密登录、虚拟机克隆和静态IP地址修改等操作。

希望本篇博客对您有所帮助,感谢您的阅读!

参考内容:

Hadoop-001-本地虚拟机环境搭建_虚拟机新建hadoop1-CSDN博客
Hadoop-002-部署并配置HDFS集群-CSDN博客

Hadoop集群搭建完整版(奶妈保姆级别教程,超级详细),一个半小时即可完成

Hadoop完全分布式集群搭建教程


本文转载自: https://blog.csdn.net/n04j04h06/article/details/143828387
版权归原作者 赶紧写完去睡觉 所有, 如有侵权,请联系我们删除。

“Hadoop分布式集群搭建教程”的评论:

还没有评论