美文网首页我爱编程
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