文档首页/ 弹性云服务器 ECS/ 最佳实践/ 搭建环境/ 手工搭建Hadoop环境(Linux)
更新时间:2025-07-30 GMT+08:00

手工搭建Hadoop环境(Linux)

简介

本文介绍了如何在华为云上使用弹性云服务器的Linux实例手工搭建Hadoop环境。Hadoop是一款由Apache基金会用Java语言开发的分布式开源软件框架,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的能力进行高速运算和存储。Hadoop的核心部件是HDFS(Hadoop Distributed File System)和MapReduce:

  • HDFS:是一个分布式文件系统,可对应用程序数据进行分布式储存和读取。
  • MapReduce:是一个分布式计算框架,MapReduce的核心思想是把计算任务分配给集群内的服务器执行。通过对计算任务的拆分(Map计算和Reduce计算),再根据任务调度器(JobTracker)对任务进行分布式计算。

更多信息,请参见Hadoop官网

前提条件

  • 已购买一台弹性云服务器,且已为其绑定弹性公网IP。
  • 弹性云服务器所在安全组添加了如下表所示的安全组规则,具体步骤参见为安全组添加安全组规则
    表1 安全组规则

    方向

    优先级

    策略

    类型

    协议端口

    源地址

    入方向

    1

    允许

    IPv4

    TCP: 8088

    0.0.0.0/0

    入方向

    1

    允许

    IPv4

    TCP: 9870

    0.0.0.0/0

操作流程

Linux实例手工搭建Hadoop环境的具体操作步骤如下:

  1. 安装JDK
  2. 配置SSH免密登录
  3. 安装Hadoop
  4. 配置Hadoop
  5. 启动Hadoop

实施步骤

  1. 登录弹性云服务器。
  2. 安装JDK

    1. 执行以下命令,下载JDK 1.8安装包。
      wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
    2. 执行以下命令,解压下载的JDK 1.8安装包。
      tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
    3. 执行以下命令,移动并重命名JDK安装包。

      本示例中将JDK安装包重命名为java8,您可以根据需要使用其他名称。

      sudo mv java-se-8u41-ri/ /usr/java8
    4. 执行以下命令,配置Java环境变量。

      如果您将JDK安装包重新命名为其他名称,需将以下命令中的java8替换为实际的名称。

      sudo sh -c "echo 'export JAVA_HOME=/usr/java8' >> /etc/profile"
      sudo sh -c 'echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile'
      source /etc/profile
    5. 验证安装。
      java -version

      回显信息如下表示jdk安装成功。

  3. 配置SSH免密登录

    1. 执行以下命令,创建公钥和私钥。
      ssh-keygen -t rsa

      按三次回车后回显信息如下图所示,表示创建公钥和私钥成功。

    2. 执行以下命令,将公钥添加到authorized_keys文件中。
      cd .ssh
      cat id_rsa.pub >> authorized_keys

  4. 安装Hadoop

    1. 执行以下命令,下载Hadoop软件包

      此处以3.2.4版本为例。

      cd
      wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
    2. 解压Hadoop安装包到opt目录下。
      sudo tar -zxvf hadoop-3.2.4.tar.gz -C /opt/
      sudo mv /opt/hadoop-3.2.4 /opt/hadoop
    3. 执行以下命令,配置环境变量。
      sudo sh -c "echo 'export HADOOP_HOME=/opt/hadoop' >> /etc/profile"
      sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/bin' >> /etc/profile"
      sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/sbin' >> /etc/profile"
      source /etc/profile
    4. 执行以下命令,修改配置文件yarn-env.sh和hadoop-env.sh中JAVA_HOME的路径。
      sudo sh -c 'echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/yarn-env.sh'
      sudo sh -c 'echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/hadoop-env.sh'
    5. 验证安装。
      hadoop version

      回显信息如下,表示Hadoop安装成功。

  5. 配置Hadoop

    1. 修改Hadoop配置文件core-site.xml。
      1. 执行以下命令,进入编辑页面。
        vim /opt/hadoop/etc/hadoop/core-site.xml
      2. 输入i,进入编辑模式。
      3. 在<configuration></configuration>节点内,插入如下内容。
            <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/opt/hadoop/tmp</value>
                <description>location to store temporary files</description>
            </property>
            <property>
                <name>fs.defaultFS</name>
                <value>hdfs://localhost:9000</value>
            </property>
      4. Esc键退出编辑模式。
      5. 执行以下命令保存并退出。
        :wq
    2. 修改Hadoop配置文件hdfs-site.xml。
      1. 执行以下命令,进入编辑页面。
        vim /opt/hadoop/etc/hadoop/hdfs-site.xml
      2. 输入i,进入编辑模式。
      3. 在<configuration></configuration>节点内,插入如下内容。
            <property>
                <name>dfs.replication</name>
                <value>1</value>
            </property>
            <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/opt/hadoop/tmp/dfs/name</value>
            </property>
            <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/opt/hadoop/tmp/dfs/data</value>
            </property>
      4. Esc键退出编辑模式。
      5. 执行以下命令保存并退出。
        :wq

  6. 启动Hadoop

    1. 执行以下命令,初始化namenode。
      hadoop namenode -format
    2. 依次执行以下命令,启动Hadoop。
      • 出于系统安全和稳定性考虑,Hadoop官方不推荐使用root用户来启动Hadoop服务,直接使用root用户会因为权限问题无法启动Hadoop。您可以通过非root用户身份启动Hadoop服务,例如ecs-user用户等。
      • 如果您一定要使用root用户启动Hadoop服务,请在了解Hadoop权限控制及相应风险之后,修改配置文件,具体步骤请参见相关操作
      • 使用root用户启动Hadoop服务会带来严重的安全风险,包括但不限于数据泄露、恶意软件更容易获得系统最高权限、意料之外的权限问题或行为。更多权限说明,请参见Hadoop官方文档
      start-dfs.sh

      回显信息如下图所示。

      start-yarn.sh

      回显信息如下图所示。

    3. 执行以下命令,可查看成功启动的进程。
      jps

      成功启动的进程如下所示。

    4. 打开浏览器访问http://服务器弹性公网IP地址:8088和http://服务器弹性公网IP地址:9870。

      若显示如下界面,表示Hadoop环境搭建完成。

相关操作

修改配置文件,以便root用户可以启动Hadoop服务。

  1. 分别执行以下命令,编辑start-dfs.shstop-dfs.sh两个文件。
    vim /opt/hadoop/sbin/start-dfs.sh
    vim /opt/hadoop/sbin/stop-dfs.sh
  2. 在文件中添加以下参数。
    HDFS_DATANODE_USER=root
    HADOOP_SECURE_DN_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root

  3. 分别执行以下命令,编辑start-yarn.shstop-yarn.sh两个文件中添加以下参数。
    vim /opt/hadoop/sbin/start-yarn.sh
    vim /opt/hadoop/sbin/stop-yarn.sh
  4. 在文件中添加以下参数。
    YARN_RESOURCEMANAGER_USER=root
    HADOOP_SECURE_DN_USER=yarn
    YARN_NODEMANAGER_USER=root