Hadoop 单机环境搭建

实验环境

  • 系统环境:CentOS Linux release 7.6.1810 (Core)
  • JDK 版本:jdk1.8.0_291
  • Hadoop 版本:hadoop-3.3.1

实验步骤

1.创建hadoop账号

为Hadoop创建一个专门的账号:

adduser hadoop
passwd hadoop

授予 hadoop 用户 root权限

chmod +w /etc/sudoers
vim /etc/sudoers

末尾添加一行:

hadoop  ALL=(ALL) ALL

chmod -w /etc/sudoers

切换到Hadoop账号:

su hadoop

2.配置免密登录

生成公私钥:

ssh-keygen -t rsa

进入 ~/.ssh 目录下,将公匙写入到授权文件:

cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys

测试是否成功:

ssh localhost

3.安装 hadoop

下载 hadoop3.3.1 并解压

wget http://apache.claz.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar -zxvf hadoop-3.3.1.tar.gz
sudo mv hadoop-3.3.1 /usr/local/hadoop

配置环境变量

vim ~/.bashrc

添加如下配置:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 

使配置立即生效:

source ~/.bashrc

4.创建 hadoop 文件目录

# hadoop 临时文件目录
mkdir -p /home/hadoop/tmp
# hadoop 主节点(namenode)文件目录
mkdir -p /home/hadoop/hdfs/name
# hadoop 数据节点(datanode)文件目录
mkdir -p /home/hadoop/hdfs/data

5.修改Hadoop配置

  • ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh(配置 JDK 安装路径)

    export JAVA_HOME=/usr/java/jdk1.8.0_291/
    
  • ${HADOOP_HOME}/etc/hadoop/core-site.xml(设置hdfs的监听端口)

    <configuration>
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://localhost:9000</value>
          <description>namenode的hdfs协议文件系统的通信地址</description>
      </property>
      <property>
          <name>hadoop.tmp.dir</name>
          <value>file:/home/hadoop/tmp</value>
          <description>hadoop存储临时文件的目录</description>
      </property>
    </configuration>
    
  • ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml(指定副本系数和临时文件存储位置)

    <configuration>
      <property>
          <name>dfs.namenode.name.dir</name>
          <value>file:/home/hadoop/hdfs/name</value>
      </property>
      <property>
          <name>dfs.datanode.data.dir</name>
          <value>file:/home/hadoop/hdfs/data</value>
      </property>
      <property>
          <name>dfs.replication</name>
          <value>1</value>
      </property>
    </configuration>
    

由于搭建是单机,所以指定 dfs 的副本系数为 1

  • mapred-site.xml(指定 mapreduce 框架为 yarn)

    <configuration>
      <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
      </property>
    </configuration>
    
  • yarn-site.xml(配置 NodeManager 上运行的附属服务,需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序)

    <configuration>
      <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
      </property>
    </configuration>
    

6.启动 hadoop

  • 进入 ${HADOOP_HOME}/bin/ 目录下,执行以下命令格式化 hadoop 文件系统:

    ./hdfs namenode -format
    

第一次启动 Hadoop 时需要进行格式化 hadoop 文件系统

  • 启动 HDFS

    ./start-dfs.sh
    
  • 启动 YARN,进入 ${HADOOP_HOME}/sbin/ 目录下,启动 YARN:

    ./start-yarn.sh
    

也可以选择一键启动,,进入 ${HADOOP_HOME}/sbin/ 目录下:

  ./start-all.sh
  • 验证是否启动成功,执行 jps 命令查看 NodeManager 和 ResourceManager 服务是否已经启动:

    jps
    

可以看到 NameNode、SecondaryNameNode、DataNode、NodeManager、ResourceManager 这五个服务已经启动。

  • 检验,输入如下命令 ,若没有报错,则 hadoop 单机安装成功:

    bin/hadoop fs -ls /