美文网首页我爱编程
Hadoop 环境搭建之(伪)分布式模式

Hadoop 环境搭建之(伪)分布式模式

作者: C_Hans | 来源:发表于2017-08-14 02:44 被阅读0次

    介绍

    Hadoop 伪分布式模式是指在一台机器的各个进程上运行 Hadoop 的各个模块, 非真正意义上的分布式(多机器).先配置伪分布式环境, 完成后在此基础上修改为分布式.

    • Hadoop 的四种部署模式
      各模块分别指: NameNode, DataNode, ResourceManager, NodeManager 等
    模式名 各模块占用的 JVM 进程数 各模块运行的机器数
    本地模式 1个 1个
    伪分布式模式 N个 1个
    完全分布式及HA完全分布式 N个 N个

    配置文件解析

    Hadoop 主要配置文件

    配置 Hadoop

    在单机模式的基础上增加以下配置

    • 配置 $HADOOP_HOME/etc/hadoop/core-site.xml
     <property>
       <!-- 配置 HDFS 的地址 -->
       <name>fs.defaultFS</name>
       <value>hdfs://master:9000</value>       
     </property>
     <property> 
         <!-- 配置 Hadoop 临时目录, 比如 NameNode 数据存放于此 -->
         <name>hadoop.tmp.dir</name>
         <value>/home/hadoop/data/tmp</value>
     </property> 
    
    • 配置 $HADOOP_HOME/etc/hadoop/hdfs-site.xml
    <property>
            <!-- 配置 HDFS 存储时的备份数量, 由于伪分布式环境只有一个节点,所以为1 -->
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    
    • 格式化 HDFS: hdfs namenode -format
      格式化是对 HDFS 这个分布式文件系统中的 DataNode 进行分块, 统计所有分块后的初始元数据存储在 NameNode 中.
      执行后,查看 指定 tmp 目录下是否有了 dfs 目录, 有即成功.

    • 启动 NameNode: hadoop-daemon.sh start namenode

    • 启动 DataNode : hadoop-daemon.sh start datanode
      类似可启动 SecondaryNameNode.

    • jps 查看是否启动成功

    • 创建目录: hdfs dfs -mkdir /demo1

    • 上传文件: hdfs dfs -put file.txt.local /demo1

    • 读取文件: hdfs dfs -cat /demo1/file.txt

    • 下载文件: hdfs dfs -get /demo1/file.txt

    配置, 启动 YARN

    • 配置 $HADOOP_HOME/etc/hadoop/mapredp-site.xml
    <property>
        <!-- 指定 mapreduce 运行在 yarn 框架上 -->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    
    • 配置 $HADOOP_HOME/etc/hadoop/yarn-site.xml
    <property>
    <!-- 配置 yarn 的默认混洗方式 -->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
    <!-- 指定 ResourceManager 运行在哪个节点上 -->
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
     </property>
    
    • 启动 ResourceManager 和 NodeManager
      yarn-daemon.sh start resourcemanager; yarn-daemon.sh start nodemanager
    • 启动后, jps 测试可以看到 5 个进程, 除了 jps.
    • 访问 YARN 的 web 页面: master:8088
    • 开启 历史服务: mr-jobhistory-daemon.sh start historyserver

    在上面的基础上配置分布式环境

    • 配置 hdfs-site.xml
    <property>
    <!-- 指定 SNN 的地址和端口 -->
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:50090</value>
    </property>
    
    • 配置 yarn-site.xml
    <!-- Site specific YARN configuration properties -->
        <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        </property>
        <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>slave1</value>
        </property>
        <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
        </property>
    
        <property> 
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 
        <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
        </property> 
        <property>
        <name>yarn.resourcemanager.scheduler.address</name> 
        <value>master:8030</value> 
        </property> 
        <property> 
        <name>yarn.resourcemanager.resource-tracker.address</name> 
        <value>master8025</value>
        </property>
        <property> 
    <!-- 指定 resourcemanager 服务器指向 master:8040
        <name>yarn.resourcemanager.address</name>
        <value>master:8040</value>
        </property> 
        <property>
    <!-- 启用日志聚焦功能 -->
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>106800</value>
        </property>
    
    
    • 配置 slaves( 指定 HDFS 上有哪些 DataNode 节点)
    vim $HADOOP_HOME/etc/hadoop/slaves
    master
    slave1
    slave1
    :qw
    

    模式切换技巧

    使用符号链接 ln -s conf.standalone $HADOOP_HOME/etc/hadoop

    参考

    https://zhuanlan.zhihu.com/p/25472769

    相关文章

      网友评论

        本文标题:Hadoop 环境搭建之(伪)分布式模式

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