我爱编程

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

2017-08-14  本文已影响0人  C_Hans

介绍

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

模式名 各模块占用的 JVM 进程数 各模块运行的机器数
本地模式 1个 1个
伪分布式模式 N个 1个
完全分布式及HA完全分布式 N个 N个

配置文件解析

Hadoop 主要配置文件

配置 Hadoop

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

 <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> 
<property>
        <!-- 配置 HDFS 存储时的备份数量, 由于伪分布式环境只有一个节点,所以为1 -->
    <name>dfs.replication</name>
    <value>1</value>
</property>

配置, 启动 YARN

<property>
    <!-- 指定 mapreduce 运行在 yarn 框架上 -->
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
<!-- 配置 yarn 的默认混洗方式 -->
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
<!-- 指定 ResourceManager 运行在哪个节点上 -->
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
 </property>

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

<property>
<!-- 指定 SNN 的地址和端口 -->
    <name>dfs.namenode.secondary.http-address</name>
    <value>slave1:50090</value>
</property>
<!-- 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>

vim $HADOOP_HOME/etc/hadoop/slaves
master
slave1
slave1
:qw

模式切换技巧

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

参考

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

上一篇 下一篇

猜你喜欢

热点阅读