你好,游客 登录 注册 搜索
背景:
阅读新闻

伪分布式Hadoop2搭建

[日期:2016-05-31] 来源:The AnyISalIn blog  作者: [字体: ]

前言

这几天学习了Hadoop的基础知识, 很多很多知识点都搞不明白, 只能先这样了, 以后再学习吧, 理论没有学好, 配置当然要会!今天给大家带来一篇”Hadoop伪分布式集群的搭建”

Hadoop

Hadoop工作的类型

hadoop可以工作在三种类型下

  • 单节点模式
  • 伪分布式
  • 完全分布式

    一般前两种模式只会再测试时使用, 来测试是否能够正常运行Hadoop集群, 而我们今天部署的就是”伪分布式集群”, 单台节点上部署Hadoop2的各个组件, HDFS, YARN等…

由于我水平实在太低, 对于Hadoop的组件、工作原理都不能用自己组织出来, 所以就不献丑了, 这里推荐想要了解Hadoop各个组件工作原理的朋友可以看下以下的资料

Hadoop学习指南:你不得不了解的大数据工具 –马哥出品 Hadoop 2.6.4 官方文档

Google三篇经典论文 [翻译请自行搜索]

  • The Google File System
  • MapReduce: Simplified Data Processing on Large Clusters
  • Bigtable: A Distributed Storage System for Structured Data

配置过程

环境配置

shell> vim /etc/profile.d/java.sh
        export JAVA_HOME=/usr

shell> yum install java-1.7.0-openjdk-devel
shell> mkdir /bgdata
shell> tar xf hadoop-2.6.2.tar.gz  -C /bgdata   #将hadoop程序解压到特定位置, 自行从官方站点下载
shell> cd /bgdata && ln -sv hadoop-2.6.2 hadoop
shell> vim /etc/profile.d/hadoop.sh
      export HADOOP_PREFIX="/bgdata/hadoop"
      export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
      export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
      export HADOOP_HDFS_HOME=${HADOOP_PREFIX}
      export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}
      export HADOOP_YARN_HOME=${HADOOP_PREFIX}

创建相关用户和组

出于安全的目的, 通常需要使用特定的用户来运行hadoop不同的进程, 我们这里只使用一个hadoop组和hadoop用户来运行Hadoop的所有进程
shell> groupadd hadoop
shell> useradd -g hadoop hadoop

创建相关的目录

shell> mkdir -pv /bgdata/hadoop/hdfs/{nn,snn,dn}
shell> chown -R hadoop:hadoop /bgdata
shell> mkdir -p /var/log/hadoop/yarn
shell> chown hadoop:hadoop /var/log/hadoop/yarn

shell> mkdir /bgdata/hadoop/logs
shell> chown -R hadoop:hadoop /bgdata/hadoop/logs

hadoop配置

shell> cd /bgdata/hadoop  #下面配置文件的路径都是相对路径!

etc/hadoop/core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:8020</value>
    <final>true</final>
  </property>
</configuration>

etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///bgdata/hadoop/hdfs/nn</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///bgdata/hadoop/hdfs/dn</value>
    </property>
    <property>
        <name>fs.checkpoint.dir</name>
        <value>file:///bgdata/hadoop/hdfs/snn</value>
    </property>
    <property>
        <name>fs.checkpoint.edits.dir</name>
        <value>file:///bgdata/hadoop/hdfs/snn</value>
    </property>
</configuration>

etc/hadoop/mapred-site.xml

shell> cp etc/mapred-site.xml.template etc/mapred-site.xml
<configuration>
    <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
    </property>
</configuration>  

etc/hadoop/yarn-site.xml

 <configuration>
     <property>
         <name>yarn.resourcemanager.address</name>
     </property>
     <property>
         <name>yarn.resourcemanager.address</name>
         <value>localhost:8032</value>
     </property>
     <property>
         <name>yarn.resourcemanager.scheduler.address</name>
         <value>localhost:8030</value>
     </property>
     <property>
         <name>yarn.resourcemanager.address</name>
        <value>localhost:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>localhost:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>localhost:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>localhost:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>0.0.0.0:8088</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce_shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
    </property>
</configuration>

格式化HDFS

shell> su - hadoop
shell> hdfs namenode -format

如果出现以下信息, 说明成功了
    Storage directory /bgdata/hadoop/hdfs/nn has been successfully formatted.

启动HDFS和YARN

shell> hadoop-daemon.sh start namenode  #启动名称节点
shell> hadoop-daemon.sh start secondarynamenode  #启动从节点
shell> hadoop-daemon.sh start datanode  #启动数据节点

shell> yarn-daemon.sh start resourcemanager  #启动RM
shell> yarn-daemon.sh start nodemanager    #启动NM

验证是否启动

shell> jps  #通过JPS命令可以查看相关信息 
2958 DataNode
3342 NodeManager
3478 Jps
3101 ResourceManager
2905 SecondaryNameNode
2785 NameNode

通过WEB UI访问

圆周率计算

MapReduce程序写起来比较困难, 为了便于测试, Hadoop自带了一些MapReduce程序, 下面我们通过一个程序来计算圆周率

shell> cd /bgdata/hadoop/share/hadoop/mapreduce/
shell> yarn jar hadoop-mapreduce-examples-2.6.2.jar pi 5 25

#中间省略
Job Finished in 88.031 seconds  #计算了88S
Estimated value of Pi is 3.13600000000000000000  #计算出的数值

总结

伪分布式一般只在测试的时候搭建, 关于完全分布式,无外乎就是将不同组件分布在不同的节点运行, 下次有机会再写

文章内容浅尝辄止, 大家有更好的见解可以提出, 觉得我写的不错, 可以点一波赞~(≧▽≦)/~ 
作者: AnyISaIln QQ: 1449472454 
感谢: MageEdu





收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款