一. 案例信息

1. 实验内容

Hadoop的安装部署的模式一共有三种:

  • 本地模式,默认的模式,无需运行任何守护进程(daemon),所有程序都在单个JVM上执行。由于在本机模式下测试和调试MapReduce程序较为方便,因此,这种模式适宜用在开发阶段。使用本地文件系统,而不是分布式文件系统。
  • 伪分布模式,在一台主机模拟多主机。即,Hadoop的守护程序在本地计算机上运行,模拟集群环境,并且是相互独立的Java进程。在这种模式下,Hadoop使用的是分布式文件系统,各个作业也是由JobTraker服务,来管理的独立进程。在单机模式之上增加了代码调试功能,允许检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。类似于完全分布式模式,因此,这种模式常用来开发测试Hadoop程序的执行是否正确。
  • 全分布模式,完全分布模式的守护进程运行在由多台主机搭建的集群上,是真正的生产环境。在所有的主机上安装JDK和Hadoop,组成相互连通的网络。

本案例采用伪分布模式搭建Hadopp,在一台主机模拟多主机,用于后续的程序开发。

2. 实验目的

  • 掌握Hadoop单机版的搭建及配置方法
  • 掌握HDFS文件系统的开启及关闭方法
  • 掌握Yarn的开启及关闭方法
  • 掌握Hadoop平台的基本使用

3. 实验环境

  • hadoop == 3.3.0
  • CentOS == 7.3
  • jdk == 1.8

二. 实验指导

1. 关联技术

  • 环境准备
    • 文件解包解压
    • JDK安装配置
    • VIM文本编辑命令
    • 文件上传
    • 系统环境配置
  • 配置Hadoop
    • XML配置
    • 防火墙配置
    • jps命令
  • 使用内置程序计算PI值
    • jar包执行

2. 实验步骤

  • 环境准备
  • 配置Hadoop
  • 初始化并启动Hadoop
  • Hadoop(YARN)环境搭建
  • 使用内置程序计算PI值

3. 实验效果


三. 实验操作

注意:本实验虚拟机ip绑定为server,所有填ip的地方均为server

01. 步骤一:环境准备

步骤操作说明
1. 配置JDK

https://help.aliyun.com/document_detail/405635.html?spm=5176.smartservice_service_chat.0.0.712c3f1bBoZ19I

  • 创建tools目录,用于存放文件

    mkdir /opt/tools
    
  • 切换至tools目录,上传JDK安装包

  • 解压JDK安装包

    • 创建server目录,用于存放JDK解压后的文件

      mkdir /opt/server
      
    • 解压至server目录

      tar -zvxf jdk-8u131-linux-x64.tar.gz -C /opt/server
      
  • 配置环境变量

    • 编辑 /etc/profile 文件

      vim /etc/profile
      # 文件末尾增加
      export JAVA_HOME=/opt/server/jdk1.8.0_131
      export PATH=${JAVA_HOME}/bin:$PATH
      
    • 执行source命令,使配置立即生效

      source /etc/profile
      
    • 检查是否安装成功

      java -version
      
2. 配置免密登录

  Hadoop 组件之间需要基于 SSH 进行通讯,配置免密登录后不需要每次都输入密码。

  • 配置映射,配置 ip 地址和主机名映射

    vim /etc/hosts
    # 文件末尾增加
    192.168.80.100 server
    
  • 生成公钥私钥

    ssh-keygen -t rsa
    
  • 授权,进入 ~/.ssh 目录下,查看生成的公匙和私匙,并将公匙写入到授权文件:

    cd ~/.ssh
    cat id_rsa.pub >> authorized_keys
    chmod 600 authorized_keys
    
3. 下载解压Hadoop
  • 访问http://archive.apache.org/dist/hadoop/core/hadoop-3.3.0/ 下载Hadoop

  • 切换至tools目录,上传Hadoop安装包

  • 解压Hadoop至server目录

    tar -zvxf hadoop-3.3.0.tar.gz -C /opt/server/
    

02. 步骤二:配置Hadoop

官方文档:https://hadoop.apache.org/docs/r3.3.0/

配置文件位于/opt/server/hadoop-3.3.0/etc/hadoop,主要配置文件如下:

  • 第一类,1个文件:hadoop-env.sh,此文件用于指定Java环境及各进程运行的用户。
  • 第二类,4个文件:xxxx-site.xml ,site表示的是用户定义的配置,会覆盖default中的默认配置。
    • core-site.xml 核心模块配置
    • hdfs-site.xml hdfs文件系统模块配置
    • mapred-site.xml MapReduce模块配置
    • yarn-site.xml yarn模块配置
  • 第三类,1个文件,workers
步骤操作说明
1. 修改配置文件

进入/opt/server/hadoop-3.3.0/etc/hadoop 目录下,修改以下配置:

  • 修改hadoop-env.sh文件,将以下内容加到文件最后

    vim hadoop-env.sh # 使用G+o,跳转到文件最后一行,并插入
    export JAVA_HOME=/opt/server/jdk1.8.0_131
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root 
    
  • 修改core-site.xml文件,分别指定hdfs 协议文件系统的通信地址及hadoop 存储临时文件的目录(此目录不需要手动创建)

    <configuration>
        <property>
            <!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
            <name>fs.defaultFS</name>
            <value>hdfs://server:8020</value>
        </property>
        <property>
            <!-- 设置Hadoop本地保存数据路径,此目录不需要提前创建会自动生成-->
            <name>hadoop.tmp.dir</name>
            <value>/home/hadoop/data</value>
        </property>
        <property>
            <!-- 设置HDFS web UI用户身份 -->
            <name>hadoop.http.staticuser.user</name>
            <value>root</value>
        </property>
    </configuration>
    
  • 修改hdfs-site.xml,指定 dfs 的副本系数

    <configuration>
        <property>
            <!--由于我们这里搭建是单机版本,所以指定 dfs 的副本系数为 1-->
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    </configuration>
    
  • 修改workers文件,配置所有从属节点

    vim workers
    # 配置所有从属节点的主机名或 IP 地址,由于是单机版本,所以指定本机即可:
    server
    
2. 初始化并启动HDFS
  • 关闭防火墙,不关闭防火墙可能导致无法访问 Hadoop 的 Web UI 界面

    # 查看防火墙状态
    sudo firewall-cmd --state
    # 关闭防火墙:
    sudo systemctl stop firewalld
    # 禁止开机启动
    sudo systemctl disable firewalld
    
  • 初始化,第一次启动 Hadoop 时需要进行初始化,进入 /opt/server/hadoop-3.1.0/bin目录下,执行以下命令:

    cd /opt/server/hadoop-3.3.0/bin
    ./hdfs namenode -format
    

在这里插入图片描述

  • 启动HDFS,进入/opt/server/hadoop-3.1.0/sbin/ 目录下,启动 HDFS:

    cd /opt/server/hadoop-3.1.0/sbin/
    ./start-dfs.sh
    
  • 验证是否启动

    • 方式一:执行 jps 查看 NameNode 和 DataNode 服务是否已经启动:

      [root@server bin]# jsp
      41032 DataNode
      41368 Jps
      40862 NameNode
      41246 SecondaryNameNode
      
    • 方式二:查看 Web UI 界面,端口为 9870:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CqUHbQRQ-1672286622617)(2.Hadoop伪分布式环境搭建.assets/image-20211109103546261.png)]

  • 配置环境变量,方便启动

    export HADOOP_HOME=/opt/server/hadoop-3.3.0
    export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
    source /etc/profile
    
3. 步骤效果

03. 步骤三:Hadoop(YARN)环境搭建

步骤操作说明
1. 修改配置文件

进入/opt/server/hadoop-3.3.0/etc/hadoop 目录下,修改以下配置:

  • 修改mapred-site.xml文件

    <configuration>
        <!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <!-- MR程序历史服务地址 -->
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>server:10020</value>
        </property>
        <!-- MR程序历史服务器web端地址 -->
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>server:19888</value>
        </property>
        <property>
            <name>yarn.app.mapreduce.am.env</name>
            <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
        </property>
        <property>
            <name>mapreduce.map.env</name>
            <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
        </property>
        <property>
            <name>mapreduce.reduce.env</name>
            <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
        </property>
    </configuration>
    
  • 修改yarn-site.xml文件,配置 NodeManager 上运行的附属服务

    <configuration>
        <property>
        <!--配置NodeManager上运行的附属服务。需要配置成mapreduce_shuffle后才可以在Yarn上运行MapReduce 程序。-->
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <!-- 是否将对容器实施物理内存限制 -->
        <property>
            <name>yarn.nodemanager.pmem-check-enabled</name>
            <value>false</value>
        </property>
    
        <!-- 是否将对容器实施虚拟内存限制。 -->
        <property>
            <name>yarn.nodemanager.vmem-check-enabled</name>
            <value>false</value>
        </property>
    
        <!-- 开启日志聚集 -->
        <property>
            <name>yarn.log-aggregation-enable</name>
            <value>true</value>
        </property>
    
        <!-- 设置yarn历史服务器地址 -->
        <property>
            <name>yarn.log.server.url</name>
            <value>http://server:19888/jobhistory/logs</value>
        </property>
    
        <!-- 历史日志保存的时间 7天 -->
        <property>
            <name>yarn.log-aggregation.retain-seconds</name>
            <value>604800</value>
        </property>
    </configuration>
    
2. 启动服务
  • 进入 ${HADOOP_HOME}/sbin/ 目录下,启动 YARN:

    ./start-yarn.sh
    
  • 验证是否启动成功

    • 方式一:执行 jps 命令查看 NodeManager 和 ResourceManager 服务是否已经启动

      [root@server bin]# jsp
      41655 ResourceManager
      41032 DataNode
      42125 Jps
      40862 NameNode
      41246 SecondaryNameNode
      41983 NodeManager
      
    • 方式二:查看 Web UI 界面,端口为 8088

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hQbXfltm-1672286622617)(2.Hadoop伪分布式环境搭建.assets/image-20211102133221059.png)]

  • 启动历史日志服务,脚本位于sbin目录,开启此服务后,可以在Web控制台查看MR运行的日志信息

    ./mr-jobhistory-daemon.sh start historyserver
    

一键启停脚本,如果是多台机器,需要配置好机器之间的SSH免密登录和workers文件:

HDFS集群

  • start-dfs.sh
  • stop-dfs.sh

YARN集群

  • start-yarn.sh
  • stop-yarn.sh

Hadoop集群

  • start-all.sh
  • stop-all.sh

04. 步骤四:使用内置程序计算PI值

Hadoop自带的hadoop-mapreduce-examples-x.jar中包含一些示例程序,位于 ${HADOOP_HOME}/share/hadoop/mapreduce 目录。

步骤操作说明
1. 运行示例程序
  • 进入 ${HADOOP_HOME}/bin/ 目录下,执行以下命令

    hadoop jar /opt/server/hadoop-3.3.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar pi 2 10
    
2. 查看运行效果

在这里插入图片描述


五. 附录

技术资料

  • 官方文档:https://hadoop.apache.org/docs/r1.0.4/cn/quickstart.html

Logo

更多推荐