大数据框架Hadoop(一)

大数据框架Hadoop(一)

Hadoop是一个适合海量数据的分布式存储和分布式计算的平台。

Hadoop特点

  • 扩容能力:可以横向扩容
  • 成本低:普通机器就可以组件集群
  • 高效率:分发计算到数据节点
  • 可靠性:数据多副本,失败后可自动恢复.

Hadoop由三个组件构成(HDFS,MapReduce,Yarn)

  • hdfs:是一个分布式存储框架,适合海量数据存储。

    • 负责数据分布式存储
    • 主从结构
      • 主节点,最多有2个 namenode
      • 从节点,可以有多个 datanode
    • namenode负责
      • 接收用户请求,是用户操作的入口
      • 维护文件系统的目录结构,称作命名空间
    • datanode负责
      • 存储数据
  • mapreduce:分布式计算框架,适合海量数据计算。

    • Mapredue是一个编程模型,它是分布式运行的,由两个阶段组成: Map和Reduce
      • Map阶段是一个独立程序,有很多节点同时运行,每个节点处理一部分数据。
      • Reduce阶段也是一个独立的程序,在这先把reduce理解为一个单独的聚合程序即可。
  • yarn:资源调度平台,负责给计算框架分配计算资源。

    • 资源调度和管理平台
    • 主从结构
      • 主节点,最多可以2个:ResourceManager
      • 从节点,有很多个: NodeManager
    • ResourceManager负责
      • 集群资源的分配与调度。
      • MapReduce、Storm、Spark等应用,必须实现ApplicationMaster接口,才能被RM管理。
    • NodeManager负责
      • 单节点资源的管理。

Hadoop目前已经有三个大版本

  • Hadoop1.x 和hadoop2.x架构对比
    • Hadoop1.x里面的计算任务和资源管理都是由mapreduce完成的,Hadoop2.x把资源管理分离出来设计了Yarn,Mapreduce仅负责计算
    • hadoop1vs2
    • Hadoop2.x和Hadoop3.x架构没有多大改变

Hadoop 安装部署部分参数介绍

  • core-site.xml

    • 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      <configuration>
      <property>
      <!-- hdfs的数据接口-->
      <name>fs.defaultFS</name>
      <value>hdfs://hadoop100:9000</value>
      </property>
      <property>
      <!-- hadoop在节点的临时数据目录-->
      <name>hadoop.tmp.dir</name>
      <value>/data/hadoop_repo</value>
      </property>
      </configuration>
  • hdfs-site.xml

    • 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      <configuration>
      <property>
      <!-- 伪分布式只有一个从节点,副本参数只能设置为1-->
      <!-- 分布式副本参数默认为3-->
      <name>dfs.replication</name>
      <value>1</value>
      </property>

      <!-- HA机制,分布式才可使用secondNameNode-->
      <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop100:50090</value>
      </property>

      </configuration>
  • yarn-site.xml

    • 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      <configuration>
      <property>
      <!-- 自定义shuffle服务 -->
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
      </property>

      <!-- 指定Yarn主节点(ResourceManager)-->
      <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>hadoop100</value>
      </property>


      </configuration>
  • mapred-site.xml

    • 1
      2
      3
      4
      5
      6
      7
      <configuration>
      <property>
      <!-- 指定资源管理框架-->
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
      </property>
      </configuration>
  • slaves

    • 伪分布式localhost

    • 分布式

      1
      2
      node1Host
      node2Host

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×