0


Hadoop分布式集群搭建教程

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


前言

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

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

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

前期准备

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

    VMware:VMware Workstation Pro v16.1.2(版本可以任意)

    Ubuntu:ubuntu-22.04.4-desktop-amd64.iso

    JDK:jdk-8u171-linux-x64.tar.gz

    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目录下。

ssh-keygen -t rsa -P ''

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

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

然后修改权限:

chmod 600 ~/.ssh/authorized_keys

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

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

重启ssh:

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目录下,然后依次编辑上述文件。

cd /app/hadoop-3.4.0/etc/hadoop

4.1编辑hadoop-env.sh

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

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

4.2编辑yarn-env.sh

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

export JAVA_HOME=/app/jdk1.8.0_171

4.3编辑core-site.xml

<configuration>  
 <property>  
    <name>fs.default.name</name>  
    <value>hdfs://hadoop-1:9000</value>  
    <description>HDFS的URI,文件系统://namenode标识:端口号</description>  
</property>  
  
<property>  
    <name>hadoop.tmp.dir</name>  
    <value>/usr/hadoop/tmp</value>  
    <description>namenode上本地的hadoop临时文件夹</description>  
</property>  
</configuration>  

4.4编辑hdfs-site.xml

<configuration>  
<property>  
    <name>dfs.name.dir</name>  
    <value>/usr/hadoop/hdfs/name</value>  
    <description>namenode上存储hdfs名字空间元数据 </description>   
</property>  
  
<property>  
    <name>dfs.data.dir</name>  
    <value>/usr/hadoop/hdfs/data</value>  
    <description>datanode上数据块的物理存储位置</description>  
</property>  
 
<property>
    <name>dfs.namenode.hosts</name>
    <value>hadoop-1,hadoop-2,hadoop-3</value>
</property>
<property>
    <name>dfs.namenode.handler.count</name>
    <value>100</value>
</property>
<property>  
    <name>dfs.replication</name>  
    <value>2</value>  
</property> 
<property>  
    <name>dfs.namenode.http-address</name>  
    <value>localhost:9870</value>  
</property> 
<property>
    <name>dfs.datanode.data.dir.perm</name>
    <value>700</value>
</property>
</configuration>

4.5编辑yarn-site.xml

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

<configuration>  
<property>  
        <name>yarn.nodemanager.aux-services</name>  
        <value>mapreduce_shuffle</value>  
</property>  
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop-1</value>
</property>
<property>  
        <name>yarn.resourcemanager.webapp.address</name>  
        <value>192.168.147.101:8099</value>  
        <description>这个地址是mr管理界面的</description>  
</property>  
</configuration>  

4.6编辑mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
<property>
      <name>yarn.app.mapreduce.am.env</name>
      <value>HADOOP_MAPRED_HOME=/app/hadoop-3.4.0</value>
</property>
<property>
      <name>mapreduce.map.env</name>
      <value>HADOOP_MAPRED_HOME=/app/hadoop-3.4.0</value>
</property>
<property>
      <name>mapreduce.reduce.env</name>
      <value>HADOOP_MAPRED_HOME=/app/hadoop-3.4.0</value>
</property>
</configuration>

4.7添加workers

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

hadoop-1
hadoop-2
hadoop-3

4.8配置环境变量

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

mkdir -p /usr/hadoop/tmp 
mkdir /usr/hadoop/hdfs 
mkdir /usr/hadoop/hdfs/data 
mkdir /usr/hadoop/hdfs/name

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

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

4.9使文件生效

source /etc/profile

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

首先进入Hadoop的sbin目录下

cd /app/hadoop-3.4.0/sbin

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

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

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

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

六、虚拟机克隆

6.1克隆前的准备

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

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

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

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

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

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

vim /etc/hosts
192.168.147.101 hadoop-1
192.168.147.102 hadoop-2
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(分别在各自主机上运行)

hostnamectl set-hostname hadoop-2        # 修改主机名,在hadoop-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修改

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

七、启动Hadoop集群

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

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

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

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

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

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

start-all.sh

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

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分布式集群搭建教程”的评论:

还没有评论