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

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

1 三台服务器配置说明

在阿里云平台购买三台服务器,本部分只使用其中的node001作为伪分布式环境搭建案例。
配置信息:ubuntu16.04LTS 4core 8mem
节点名称 公网IP 私网IP
节点1 node001 47.93.223.3 172.18.62.211
节点2 node002 59.110.173.189 172.18.62.209
节点3 node003 47.94.0.107 172.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 [email protected]

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

        
        
                fs.defaultFS
                hdfs://node001:9000
        
        
        
                 hadoop.tmp.dir
                 /usr/local/hadoop/hadoop-3.1.4/data/tmp
        

  1. 配置 hadoop-env.sh ,修改其中的JAVA_HOME
export JAVA_HOME=/usr/local/java/jdk1.8.0_301
  1. 修改 hdfs-site.xml 文件,改变副本拷贝个数

        
        
          dfs.webhdfs.enabled
          true
      
        
        
                dfs.replication
                1
        

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

        
        
                yarn.nodemanager.aux-services
                mapreduce_shuffle
        
        
        
                 yarn.resourcemanager.hostname
                 node001
        

  1. 配置 mapred-env.sh 文件
export JAVA_HOME=/usr/local/java/jdk1.8.0_301
  1. 配置 mapred-site.xml 文件
  • 指定MR运行在YARN上

            
        
                mapreduce.framework.name
                yarn
        
            
        
          yarn.app.mapreduce.am.env
          HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.1.4
        
        
          mapreduce.map.env
          HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.1.4
        
        
          mapreduce.reduce.env
          HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-3.1.4
        

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 中添加映射。

你可能感兴趣的:(Hadoop ubuntu16.04LTS伪分布式环境搭建流程)