简 介:这本书的名字为大数据技术原理与应用,该书的作者为厦门大学著名的研究大数据方向的林子雨老师。顾名思义,概述讲述了大数据的相关知识,包含一些分布式系统以及各种流计算等大数据技术。本书讲述的非常棒,通俗易懂。下面是我在读这本书的时候的记录并加上自己的理解。本文意在记录自己近期学习过程中的所学所得,如有错误,欢迎大家指正。
关键词:Hadoop、MapReduce、大数据生态
一、Hadoop简介
Hadoop是Apache旗下的一个开源分布式计算平台,为广大用户提供了分布式基础架构。Hadoop的两大核心就是HDFS和MapReduce。HDFS就是分布式文件系统,它是将谷歌的GFS进行了开源实现,它支持大规模数据的分布式存储。而MapReduce是用来进行整个HDFS上的数据,使集群中的每个机器进行并行操作,保证处理数据的高效性。
二、Hadoop的特点
Hadoop本身是一种分布式计算框架,具有可靠、高效等特性。
- 高效性:Hadoop是分布式计算平台,它有效地利用了分布式存储和分布式并行处理两大核心技术,大大提高了数据处理的效率
- 可扩展性:因为Hadoop是建立在大的集群之上,所以它可以扩展很多个节点
- 可靠性:因为是集群形式,尽管存在一台机器宕机,但是集群中的其它机器仍然可以进行服务
- 高容错性:Hadoop的HDFS采用的是副本机制,同样的数据存储在多个机器中,有多个副本,一旦某台机器的数据丢失,其它的机器仍然可以提供丢失的数据
- 成本低:集群方式使得我们可以使用很多廉价的机器进行运转任务
三、Hadoop的生态系统
现在已经有很多成熟的框架支持并建立在Hadoop的系统之上,比如Hive、HBase、Spark等大数据组件。
上图可以观察到HDFS是很多大数据框架依赖的基础,因为我们的数据全部都是要存储到分布式文件系统中,然后利用现有的大数据组件进行分析处理、存储等操作。
1.HDFS:
HDFS的全名为Hadoop Distributed File System,它显著的有点就是可以运行在很多廉价的服务器上,而且由于集群的原因,它保证了用户数据的可靠性。而且它的吞吐率很高,这也就是为什么它适合大数据的原因。
2.HBase:
HBase是大数据生态系统中的一个数据库,但是它不同于mysql这些,它是NoSQL,底层是以列进行存储,可以很好的存储非结构化数据,采用rowKey进行区分每条数据。HBase其实就是谷歌曾经的一篇论文BigTable的开源实现。
3.MapReduce:
MapReduce简单来说它不是一种技术,它是一种编程思想,就是可以理解为将我们很多的数据进行切分,一系列的任务进行切分,统一的抽象成两个阶段,分别为Map阶段和Reduce阶段,Map阶段就是将我们的数据进行切分,然后Reduce阶段,将我们的中间结果进行聚合处理。最直白来说,MapReduce的核心思想就是分而治之,它会将一个大的任务分成多个小任务放到集群中多个服务器上去运行,最终整合所有服务器的结果。
4.Hive
Hive是一个基于Hadoop的数据仓库,可以理解为就是存储数据的仓库,这么说好像和数据库差不都,都属用来存数据的,虽说都可以存储数据,但是数据仓库往往是用来存历史数据或者是大型数据,以便于日后进行分析计算等。Hive提供了类SQL的语言进行编程(HQL),大大降低了学习难度,而且书写HQL可以将它转化为MR任务进行执行。
5.Zookeeper
Zookeeper是一种高可靠的协同工作系统,方便我们进行集群管理,以及分布式应用的配置管理等。
6.Flume
Flume是一个可以采集海量日志的工具,它可以实时的检测数据的产生将其采集到我们的数仓,然后进行分析,它的优点是我们可以自定向进行数据的转移。
,它可以实时的检测数据的产生将其采集到我们的数仓,然后进行分析,它的优点是我们可以自定向进行数据的转移。