Hadoop ubuntu16.04LTS伪分布式环境搭建流程

Hadoop ubuntu16.04LTS伪分布式环境搭建流程

1 三台服务器配置说明

在阿里云平台购买三台服务器,本部分只使用其中的node001作为伪分布式环境搭建案例。
配置信息:ubuntu16.04LTS 4core 8mem
节点名称公网IP私网IP
节点1node00147.93.223.3172.18.62.211
节点2node00259.110.173.189172.18.62.209
节点3node00347.94.0.107172.18.62.210

2 伪分布式模式环境搭建(node001)

2.1 关闭防火墙

# 关闭防火墙
ufw disable
# 查看防火墙状态
ufw status

2.2 配置JDK

  1. 解压到 /usr/local/java
mkdir /usr/local/java
tar -zxvf jdk-8u301-linux-x64.tar.gz -C /usr/local/java
  1. 配置环境变量
vim /etc/profile

# JAVA环境变量配置
export JAVA_HOME=/usr/local/java/jdk1.8.0_301
export PATH=$JAVA_HOME/bin:$PATH
  1. 刷新配置
source /etc/profile
  1. 验证
java -version

2.3 主机环境配置

  1. 修改主机名
# 查看主机名
hostname
# 修改主机名
vim /etc/hostname
# 重启
reboot
  1. 映射 IP 地址及主机名
vim /etc/hosts
172.18.62.211   node001 node001
  1. 免密登录设置
# 1 生成密钥对
ssh-keygen -t rsa
# 2 追加公钥
cat .ssh/id_rsa.pub >> .ssh/authorized_keys 
# 3 免密登录验证
ssh node001
# 或者
ssh root@47.93.223.3

2.4 安装 hadoop 3.1.4

Hadoop的三种启动模式分别为

  • 单机模式(独立模式)(Local或Standalone Mode)
  • 伪分布式模式(Pseudo-Distrubuted Mode)
  • 全分布式集群模式(Full-Distributed Mode)
2.4.1 hadoop包安装
  1. 解压到 /usr/local/hadoop
mkdir /usr/local/hadoop
tar -zxvf hadoop-3.1.4.tar.gz -C /usr/local/hadoop
  1. 配置环境变量
vim /etc/profile

# HADOOP环境变量配置
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.4
export PATH=$HADOOP_HOME/bin:$PATH
export PATH=$HADOOP_HOME/sbin:$PATH
  1. 刷新配置
source /etc/profile
  1. 验证
hadoop
2.4.2 HDFS配置文件修改
  1. 修改 core-site.xml 文件
<configuration>
        <!--指定HDFS中NameNode的地址-->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://node001:9000</value>
        </property>
        <!--指定Hadoop运行时产生文件的存储目录-->
        <property>
                 <name>hadoop.tmp.dir</name>
                 <value>/usr/local/hadoop/hadoop-3.1.4/data/tmp</value>
        </property>
</configuration>
  1. 配置 hadoop-env.sh ,修改其中的JAVA_HOME
export JAVA_HOME=/usr/local/java/jdk1.8.0_301
  1. 修改 hdfs-site.xml 文件,改变副本拷贝个数
<configuration>
        <!--指定HDFS web可以查看文件-->
        <property>
          <name>dfs.webhdfs.enabled</name>
          <value>true</value>
      </property>
        <!--指定HDFS副本的数量-->
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
</configuration>
  1. 格式化NameNode
hdfs namenode -format
2.4.3 Yarn配置文件修改
  1. 配置 yarn-env.sh 文件
export JAVA_HOME=/usr/local/java/jdk1.8.0_301
  1. 配置 yarn-site.xml 文件
<configuration>
        <!--Reducer获取数据的方式-->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <!--指定YARN的ResourceManager放到哪个服务器上-->
        <property>
                 <name>yarn.resourcemanager.hostname</name>
                 <value>node001</value>
        </property>
</configuration>
  1. 配置 mapred-env.sh 文件
export JAVA_HOME=/usr/local/java/jdk1.8.0_301
  1. 配置 mapred-site.xml 文件
  • 指定MR运行在YARN上
<configuration>
            <!--指定MR运行在YARN上-->
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
            <!--/usr/local/hadoop/hadoop-3.1.4是我的Hadoop的安装目录,改成你的-->
        <property>
          <name>yarn.app.mapreduce.am.env</name>
          <value>HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.1.4</value>
        </property>
        <property>
          <name>mapreduce.map.env</name>
          <value>HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.1.4</value>
        </property>
        <property>
          <name>mapreduce.reduce.env</name>
          <value>HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.1.4</value>
        </property>
</configuration>
2.4.4 添加 root 参数
  1. 将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root
  1. start-yarn.sh,stop-yarn.sh顶部也需添加以下参数
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
2.4.5 在开发机添加IP映射(Mac 为例)
sudo vim /etc/hosts

47.93.223.3 node001
2.4.6 基础命令
# 启动集群
start-all.sh
# 关闭集群
stop-all.sh
# 查看进程
jps
2.4.7 测试案例验证搭建是否成功
  1. 网页验证
  • 查看yarn界面
http://47.93.223.3:8088
image-20220703170604671.png
  • 查看hdfs界面
http://47.93.223.3:9870
image-20220703170634114.png
  1. wordcount 案例验证
# 1.创建文件夹
hdfs dfs -mkdir -p /usr/yqj/input
# 2.查看文件列表
hdfs dfs -ls /
# 3.将本地 wc.txt 文件上传到hdfs中
hdfs dfs -put wc.txt /usr/yqj/input
# 4.进入hadoop提供案例包的位置
cd /usr/local/hadoop/hadoop-3.1.4/share/hadoop/mapreduce
# 5.执行提供的wordcount案例
hadoop jar hadoop-mapreduce-examples-3.1.4.jar wordcount /usr/yqj/input /usr/yqj/output
  • 案例输入文件
image-20220703170841309.png
  • 案例输出文件
image-20220703170909476.png

3 坑点总结

  1. 未正常启动 DataNode。
    • 原因: format 的文件没有删除干净,导致存在问题。
    • 解决办法:删除指定的文件 /usr/local/hadoop/hadoop-3.1.4/data/tmp 重新 format。
  2. start-all.sh 启动报错,there is no YARN_RESOURCEMANAGER_USER defined。
    • 原因:没有在 sh 脚本中设置指定的参数。
    • 解决办法:参考2.4.4 ,添加参数。
  3. 执行 mr 报错,Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster
    • 原因:在 mapred-site.xml 中缺少 env 的配置。
    • 解决办法:在 mapred-site.xml 增加配置。
  4. 开发机无法查看 hdfs 中的文件。
    • 原因:在 hdfs-site.xml 缺少对 webhdfs 参数的配置。另外,开发机没有配置IP映射关系
    • 解决办法:在 hdfs-site.xml 添加配置。并在开发机(Mac)的 /etc/hosts 中添加映射。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城老湿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值