Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)

Hadoop简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

Hadoop生态系统

广义的Hadoop,一般称为Hadoop生态系统,如下所示。

Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)

Hadoop生态系统中这些软件的作用:

  • HDFS:Hadoop的分布式文件系统,可以看见HBase、MapReduce这些软件是运行在HDFS之上的,可以说是Hadoop生态系统的基石。
  • HBase:Google分布式数据库Bigtable的开源实现,是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要用来存储非结构化和半结构化的松散数据。为了提高数据可靠性和健壮性,发挥HBase处理大数据量等功能,一般使用HDFS作为HBase的底层数据存储方式。
  • MapReduce:分布式计算框架。
  • Sqoop:协助RDBMS与Hadoop的Hive和HBase之间进行数据传导的工具。
  • Hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
  • Pig:是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。
  • ZooKeeper:是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
  • Avro:是一个基于二进制数据传输高性能的中间件。在Hadoop的其他项目中例如HBase和Hive的Client端与服务端的数据传输也采用了这个工具。Avro是一个数据序列化的系统。Avro可以将数据结构或对象转化成便于存储或传输的格式。Avro设计之初就用来支持数据密集型应用,适合于远程或本地大规模数据的存储和交换。

HDFS 系统架构

HDFS 采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)。

  • 名称节点(NameNode)作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。HDFS集群中,只有唯一一个名称节点。
  • 数据节点(DataNode)一般是一个节点运行一个数据节点进程,负责处理文件系统客户端的读写请求,在名称节点的统一调度下,进行数据块(Blocks)的创建、删除和复制等操作。

Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)

HDFS采用Java语言开发,因此任何支持JVM的机器都可以部署名称节点和数据节点。

在配置好Hadoop 集群之后,可以通过浏览器访问 http://[NameNodeIP]:9870,查询HDFS文件系统。通过该Web界面,可以查看当前文件系统中各个节点的分布信息。

Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)

HBase系统架构

HBase系统架构如下所示,包括客户端、Zookeeper服务器、Master主服务器、Region服务器。一般而言,HBase会采用HDFS作为底层数据存储。

Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)

在HBase服务器集群中,包含了一个Master和多个Region服务器,Master是HBase集群的“总管”,它必须知道Region服务器的状态。

HBase中可以启动多个Master,但是Zookeeper 可以帮助选举出一个Master 作为集群的总管,并保证在任何时刻总有唯一一个Master在运行,这样可以避免Master单点失效的问题。

Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求。

Store是Region服务器的核心。每个Store对应了表中的一个列族的存储。每一个Store包含了一个MemStore缓存和若干个StoreFile文件。

HBase采用HLog来保证系统发生故障时,能够恢复到正确的状态。HLog是磁盘上面的记录文件,它记录着所有的更新操作。

HBase系统为每个Region服务器配置了一个HLog文件,它是一种预写式日志(Write Ahead Log),也就是说,用户更新数据必须首先被记入日志后,才能写入MemStore缓存。

此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。

Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)

注意:Hadoop 安装完成之后,只包含HDFS和MapReduce,并不含HBase,因此需要在Hadoop 之上继续安装HBase。

相关推荐