[ 登录注册 ]

架构设计

Hadoop入门分析

2016-08-25 18:37:59 admin 返回上一页

  今天本人复习了一下,当下最流行的分布式计算平台,Hadoop,在此平台上开发,可以屏蔽程序员在大数据处理上的所要考虑的各种,多线程,高并发的问题。好,下面就好好的了解一下什么是Hadoop

  HadoopApache旗下的一个开源分布式平台。以Hadoop文件系统(HDFS)和MapReduce计算模型为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。Hadoop中的HDFS具有高容错性,并且是基于Java语言开发的,这使得他可以部署在低廉的计算机集群中。HadoopHDFS的数据管理能力,和MapReduce处理任务时候的高效性使得他在分布式系统中十分流行。

  Hadoop的项目结构包含很多子项目,是很多项目的集合。虽然核心内容是HDFSMapReduce,但是与其相关的Chukwa,Hive,Zookeeper,HBase等项目也是不可或缺的。

  HadoopMapReduce计算模型是一种大规模数据集的并行运算。Map(映射)Reduce(化简),是其中的主要操作,具体流程如下:

输入数据   数据分割     | map(映射) | shuffle| reduce计算|  输出结果 |

数据片段1   key, value)  (key, value)  (key, value_list)(key, value)  data

数据片段2   key, value)  (key, value)  (key, value_list)(key, value->data

数据片段3   key, value)  (key, value)  (key, value_list)(key, value)  data

 

HadoopHDFS文件系统是一个分布式文件系统,HDFS采用的是流失的数据访问。

HadoopdHDFS体系结构采用了主从(Master/Slave)结构模型,一个HDF集群是由一个NameNode和若干个DataNode组成的,其中NameNode作为主服务器,管理文件系统的命名和客户端对文件的操作,从内部来看,文件被分成若干个数据块,若干个数据块被存放到一组DataNode上。从NameNode上你可以获取的每个文件的每个块所在的DataNode.DataNode通过心跳(HeartBeat)机制定时向NameNode发送所存储的文件块信息。

Hadoop的副本存放策略是一般对一份数据采用3个副本的形式,1分副本存放在本地的机架上的一个结点上,1份副本存放在同一机架的另一个结点上,第三份副本存放在另一份机架的结点上,防止同一机架的副本遭遇灾害。

.    前面介绍完Hadoop的整体架构和MapReduce计算模型,下面说说另一个也是非常重要的子项目,HBaseHBaseGoogle公司的分布式表格系统非常的相似,BigTable,很多思想上有着共同之处,比如面向列的稀疏存储啊,还有以追加的形式来更新数据才,采用文件的形式来保存数据,数据类型统统都用字符串类型来表示,大大简化了数据的管理,而这恰恰能满足当今海量数据处理的一个要求。HBase存数的数据可以理解为一种key ,value的和关系数据库数据之间。HBase是一个开源的,分布式的,多版本的面向列的存储模型,他可以直接使用本地文件系统,也可以使用HadoopHDFS文件系统,建议使用使用HDFD作为文件系统会更加稳妥,并且能发挥HBase处理大数据的能力。

     HBase的体系结构同样遵从主从服务器架构。他由HRegion服务器和HBase Master服务器构成,HBase Master服务器负责管理所有的HRegion服务器,HBase中所有的服务器都由ZooKeeper来进行协调。

HMaseter    ******************Zookeeper

                                    **  |

|--------------------------------------------------------

|                  |                  |

HRegionServer   HRegionServer   HRegionServer

|                  |                   |

|                  |                   |

HRegion         HRegion           HRegion

 

HRegionServer包含两大部分,HLog部分和HRegion部分,其中HLog用来存储数据日志的,采用的先写日志的方法后操作的方法,至于为什么是先写日志,我想大家都懂的吧,这是未了避免操作的丢失,如果先操作,导致系统挂了,日志上根本就找不到记录了。

---------------------------------------------------------------------------

|HRegionServer

|       

|HLog  HRegion 

|       HRegion

        HRegion

|---------------------------------------------------------------------------

 

HBase中的数据不涉及数据的直接删除和更新,所有的取代操作为追加的形式的更新,当新数据到达的时候会首先驻留在MemStore 内存中,等内存中的数据到了一定闋值的时候,数据才会被更新到文件中。

   HRegion是按照表名和主键范围划分的,所有在HRegion存在的meta元数据表,等元数据增加到一定程度,就又会进行划分出多个元数据表,这时候就有了root表的出现,所以在HBase启动的时候主服务器首先会去扫描跟数据表,从而获取其中的所有的元数据信息。ZooKeeper存储的就是HBaseROOT表和META元数据表。

     Hadoop的简单介绍就这么多了,其实里面还有很多的子项目的功能都还没有介绍,有机会的话可以深入其中的源码进行学习。


文章来源:http://www.bozhiyue.com/enterprise/2016/0825/430596.html
返回上一页    返回分类 上一篇:   下一篇:
相关