美文网首页
hadoop部署尝试(3.1)

hadoop部署尝试(3.1)

作者: 区块鱼 | 来源:发表于2018-12-13 16:10 被阅读0次

    参考自官方英文文档: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:

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    

    etc/hadoop/hdfs-site.xml:

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    </configuration>
    

    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:
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    
        <property>
            <name>mapreduce.application.classpath</name>
            <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
        </property>
    </configuration>
    

    etc/hadoop/yarn-site.xml:

    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.env-whitelist</name>
            <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
        </property>
    </configuration>
    
    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)

          本文链接:https://www.haomeiwen.com/subject/gnhvhqtx.html