hadoop部署尝试(3.1)

参考自官方英文文档:https://hadoop.apache.org/docs/r3.1.1/index.html

1. 部署hadoop集群

1.1. 前置条件

  1. 本次安装环境为Ubuntu(16/18)
  2. 安装Java 7版本及以上
  3. 安装ssh,并支持集群间免密登陆
  4. 安装并行运维管理工具pdsh:
sudo apt-get install pdsh

在/etc/profile文件中添加export PDSH_RCMD_TYPE=ssh, 运行 source /etc/profile

1.2. 下载hadoop版本

  1. 本次部署环境使用最新hadoop 3.1版本(因此支持GPU资源分配)
  2. 下载安装
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz
tar zxvf hadoop-3.1.1.tar.gz -C /opt/hadoop/
cd /opt/hadoop/hadoop-3.1.1
  1. 设置环境变量,修改etc/hadoop/hadoop-env.sh文件,设置JAVA_HOME/HADOOP_HOME/HADOOP_CONF_DIR
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191
export HADOOP_HOME=/opt/hadoop/hadoop-3.1.1
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  1. 运行bin/hadoop,显示需要的相关参数

1.3. 本地单节点模式

hadoop默认配置为非集群模式,只在一个Java进程中运行。便于调试。
下面是一个读取输入文件进行正则表达式匹配的例子

  $ mkdir input
  $ cp etc/hadoop/*.xml input
  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar grep input output 'dfs[a-z.]+'
  $ cat output/*

1.4. 伪分布式模式

Hadoop可在一个节点上运行伪分布式模式,分多个Java进程运行程序。

1.4.1. 配置

使用以下配置
etc/hadoop/core-site.xml:


    
        fs.defaultFS
        hdfs://localhost:9000
    

etc/hadoop/hdfs-site.xml:


    
        dfs.replication
        1
    

1.4.2. 运行程序

  1. 配置环境变量
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"
  1. 格式化文件系统,并启动NameNode和DataNode
bin/hdfs namenode -format
sbin/start-dfs.sh
  1. 启动成功后,即可访问网站:http://localhost:9870/
  2. 创建运行mapreduce任务需要的目录
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/root
  1. 拷贝文件到HDFS
bin/hdfs dfs -mkdir input
bin/hdfs dfs -put etc/hadoop/*.xml input
  1. 运行测试程序
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar grep input output 'dfs[a-z.]+'
  1. 下载或查看结果
bin/hdfs dfs -get output output
cat output/*
bin/hdfs dfs -cat output/*
  1. 停止HDFS
sbin/stop-dfs.sh

1.5. 单节点Yarn(伪集群)

  1. 重新运行上面的1-4步骤。
  2. 配置以下参数
    etc/hadoop/mapred-site.xml:

    
        mapreduce.framework.name
        yarn
    

    
        mapreduce.application.classpath
        $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*
    

etc/hadoop/yarn-site.xml:


    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
        yarn.nodemanager.env-whitelist
        JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
    

  1. 启动Yarn的ResourceManager和NodeManager
sbin/start-yarn.sh

运行成功后,即可访问管理网站:http://localhost:8088/

  1. 重新运行测试程序
  2. 停止Yarn
sbin/stop-yarn.sh

注意格式化两次的问题: 会导致第二次格式化后,DataNode没法启动的问题。如果要进行第二次格式化,建议先删除/tmp/hadoop*文件夹。

1.6 集群部署

具体参考相关博文:

  1. Hadoop3.1.0完全分布式集群部署超详细记录

你可能感兴趣的:(hadoop部署尝试(3.1))