Hadoop学习(1)-基本概念

1、Hadoop是Apache软件基金下的一个开源分布式计算平台,主要以HDFS和MapReduce为核心,向用户提供了系统底层细节透明的分布式基础架构。

2、Apache Lucene项目中的子项目中有个Apache Nutch, 里面用到了hadoop,后来hadoop活了,2008年,单独提出来,作为Apache的一个顶级项目。

3、Hadoop项目结构图

层1:        Pig         Chukwa     Hive    HBase

层2:        MapReduce   HDFS    ZooKeeper

层3:        Common                    Avro

个人理解:Common和Avro都是底层一些工具包。MapReduce和Hadoop作为核心内容,层1的应用都是基于层2的内容。就好比单机上面的文件系统有了,上面的数据库应用软件就是基于底层的文件系统。

Pig是一个对大型数据集进行分析、评估的平台;Chukwa是开源的数据收集系统,用于监控和分析大型分布式系统的数据。

4、HDFS中有NameNode, DataNode;MapReduce中有JobTracker和TaskTracker;HBase中有HBaseMaster,HRegionServer,HBaseClient;其实分布式下的特点造成了这么类似的结构,即由一个统筹者,用于管理所有节点的调度等事情,有很多工作者,脚踏实地干好自己的事情就够了。

5、Hadoop用于分布式开发的八个点:

(1)数据分布存储。通过HDFS实现数据的分布式存储。在使用HDFS的过程中,和单机操作文件系统类似。由一个NameNode和多个DataNode构成。NameNode是HDFS的核心,维护一些数据结构来记录每一个文件被分割成了多少个Block,这些Block可以从哪些DataNode中获得,以及各个DataNode的状态等重要信息。

(2)分布式并行计算。主控的JobTracker用于调度和管理其他的TaskTracker,JobTracker可以运行于集群中的任意一台计算机上;TaskTracker则负责执行任务,必须运行于DataNode上面。

(3)本地计算。集群的一个弊端就是机器与机器之间传递数据的限制,网络带宽编程了瓶颈。数据存储在哪个节点上,就由哪个节点进行这部分数据的计算。

(4)任务粒度。把大数据划分为小数据的时候,每一块的大小不要大于DataNode中Block的大小,这样便于本地计算。

(5)数据合并。对于Map之后的键值对,可以先把相同key的合并到一起。

(6)数据分割。把合并之后的键值对,可以根据Reduce节点数目的多少,对数据进行分割。

(7)Reduce。Map之后的结果存储于本地磁盘中,中间结果文件的位置通知JobTracker,JobTracker通知Reduce任务到哪一个TaskTracker上去取中间结果。

(8)任务管道。如果有R个Reduce任务,就会有R个最终结果,可以不先对Reduce结果进行合并,可以作为另一个计算任务的输入,开始另一个并行计算任务。


个人理解:分布式就要做好对各类节点的管理,分布式文件系统和MapReduce计算模型是核心内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值