Hadoop分布式部署

Hadoop 2.0 部署

部署方式

Hadoop 主要有两种安装方式,即传统解压包方式和 Linux 标准方式。本次实验为了熟悉Hadoop运行流程,所以采用传统解压包方式

Hadoop 部署环境分为单机模式、伪分布模式和分布式模式三种。由上述情况,所以采用分布式模式部署

准备环境

真机环境:Windows 11,内存 16G

虚拟机环境:采用基于 Hyper-V 技术的 multipass,运行 Ubuntu 24.04 LTS

预安装软件包:
hadoop-2.10.2.tar.gz
jdk-8u202-linux-x64.tar.gz

创建虚拟机

multipass 的安装过程略

# 真机 powershell
multipass launch -n cMaster -c 1 -m 1G -d 8G
multipass launch -n cSlave0 -c 1 -m 1G -d 8G
multipass launch -n cSlave1 -c 1 -m 1G -d 8G

创建主机名分别为cMaster,cSlave0,cSlave1的三台虚拟机,1核1G内存8G空间

创建虚拟机

安装包挂载

# 真机 powershell
multipass exec cMaster mkdir ./mount # 创建对应挂载目录
multipass exec cSlave0 mkdir ./mount
multipass exec cSlave1 mkdir ./mount

multipass mount E:/data cMaster:/home/ubuntu/mount # 将真机中存放安装
multipass mount E:/data cSlave0:/home/ubuntu/mount # 包的路径挂载到虚
multipass mount E:/data cSlave1:/home/ubuntu/mount # 拟机的对应目录上

也可以选择别的方式将安装包传到Hadoop集群的机器上

集群网络配置

目标IP地址映射如下

主机名IP映射
cMaster192.168.130.100
cSlave0192.168.130.101
cSlave1192.168.130.102
网卡绑定
  1. 在 Hyper-V 管理器的虚拟交换机管理器中,新建虚拟网络交换机,选择内部网络

    新建虚拟网卡

  2. 选择到对应虚拟机的设置,将添加的网卡加入

    插入网卡

  3. 设置虚拟网卡的网关
    打开真机网络适配器,找到 Hyper-V Virtual Ethernet Adapter #2,进入 IPv4 设置
    如下设置

    • IP地址: 192.168.130.1
    • 子网掩码: 255.255.255.0

    配置网关

配置虚拟机静态 IP

以 cMaster 举例

sudo vi /etc/netplan/50-cloud-init.yaml

修改内容

network:
    ethernets:
        eth0:
            ... # eth0 是Hyper-V默认,这里的设置全都不动
        eth1:
            addresses: [192.168.130.100/24] # cMaster是.100,其他机器对应修改
            routes:
                - to: default
                  via: 192.168.130.1
            dhcp4: false

应用修改

sudo netplan apply

重新连接到shell后检查是否成功

设定IP

修改hosts
sudo vi /etc/hosts
sudo vi /etc/cloud/templates/hosts.debian.tmpl # 使hosts重启生效

删除主机名记录

# 127.0.1.1 {{fqdn}} {{hostname}}

添加映射

192.168.130.100 cMaster
192.168.130.101 cSlave0
192.168.130.102 cSlave1
关闭防火墙
sudo systemctl stop ufw
sudo systemctl disable ufw

安装 JDK

sudo mkdir /usr/java # 目标安装路径
sudo tar -zxvf /home/ubuntu/mount/jdk-8u202-linux-x64.tar.gz -C /usr/java # 从挂载的路径解压 JDK8 到目标安装路径
sudo bash -c 'echo "JAVA_HOME=\"/usr/java/jdk1.8.0_202\"" >> /etc/environment' # 全局设置环境变量 JAVA_HOME
sudo bash -c 'echo "export PATH=\"$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin\"" > /etc/profile.d/java-env.sh' # 将 Java 加入 Path
source /etc/environment # 应用更改
source /etc/profile

使用 java -version 检测是否安装完成

ubuntu@cMaster:~$ java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

解压Hadoop

mkdir /home/ubuntu/hadoop
tar -zxvf /home/ubuntu/mount/hadoop-2.10.2.tar.gz -C /home/ubuntu/hadoop

解压完毕可以卸载安装包目录,在真机终端内执行如下命令

# 真机 powershell
multipass unmount cMaster
multipass unmount cSlave0
multipass unmount cSlave1

配置Hadoop

  • 修改core-site.xml文件

    vi ~/hadoop/hadoop-2.10.2/etc/hadoop/core-site.xml
    

    <configuration></configuration>内加入以下内容

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/ubuntu/cloudData</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://cMaster:9000</value>
    </property>
    
  • 修改yarn-site.xml文件

    vi ~/hadoop/hadoop-2.10.2/etc/hadoop/yarn-site.xml
    

    <configuration></configuration>内加入以下内容

    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>cMaster</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
  • 重命名mapred-site.xml.templatemapred-site.xml并修改内容

    cp ~/hadoop/hadoop-2.10.2/etc/hadoop/mapred-site.xml.template\
       ~/hadoop/hadoop-2.10.2/etc/hadoop/mapred-site.xml
    vi ~/hadoop/hadoop-2.10.2/etc/hadoop/mapred-site.xml
    

    <configuration></configuration>内加入以下内容

    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    

启动Hadoop

  • Master上

    cd ~/hadoop/hadoop-2.10.2/
    ./bin/hdfs namenode -format                 # 格式化主节点命名空间
    ./sbin/hadoop-daemon.sh start namenode      # cMaster启动存储主服务
    ./sbin/yarn-daemon.sh start resourcemanager # 启动资源管理主服务
    

    格式化主节点命名空间成功如图,只有第一次启动需要格式化

    格式化主节点命名空间

  • Slave上

    cd ~/hadoop/hadoop-2.10.2/
    ./sbin/hadoop-daemon.sh start datanode     # Slave启动存储从服务
    ./sbin/yarn-daemon.sh start nodemanager    # Slave启动资源管理从服务
    

测试Hadoop

  1. 查询系统内 Java 虚拟机进程

    jps
    

    如果Hadoop运行成功,将会在对应机器看到类似信息

    MasterSlave
    Master jpsSlave jps
  2. 网页访问

    需要先在真机 Hosts 文件添加虚拟机相同映射

验证集群

./bin/hdfs dfs -mkdir /in
./bin/hdfs dfs -put *** /in # 星号部分填自己要上传的内容
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar\
                 wordcount /in /out/wc-01

yarn run

总结与经验

  1. Hadoop 本身部署起来很简单,其大量工作其实都是前期的 Linux 环境配置,Hadoop安装只是解压、修改配置文件、格式化、启动和验证

  2. Hadoop 对网络配置要求非常精确,我在反复尝试中发现 hosts 文件中主机名映射到 127.0.1.1 会导致 Slave 节点访问不到 Master 节点上的服务

  3. 后续可以配置免密SSH,使用 sbin/start-x.sh 相关脚本快速启动集群

  • 21
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值