欢迎投稿

今日深度:

hadoop生态系统,

hadoop生态系统,


前言

我们先了解一下hadoop,然后再介绍生态系统中各组件以及使用方法。(HDFS、MapReduce、Yarn、Zookeeper、Hive、HBase、Oozie、Pig、Flume、Sqoop)

hadoop是一个开源框架,可以编写和运行分布式系统来处理大规模的数据集。Hadoop的核心是HDFS和MapReduce。其中HDFS是分布式文件系统,MapReduce是一种编程模型,用于大规模数据集(>1T)的并行计算。

大数据

大数据是个很宽泛的概念,Hadoop生态圈基本上都是为了处理超过单机尺度的数据处理而诞生的。

1、首先要将大数据保存下来

传统的文件系统是单机的,不能跨越多个不同的系统。HDFS(Hadoop Distributed FileSystem)的设计本质上是为了大量的数据能横跨成百上千台机器。但我们看到的文件系统,不是多个文件系统。文件储存在多台不同的机器上,而我们只要引用这个文件路径。完全不用担心文件储存在哪个机器上,HDFS会管理这些数据。
所以首先会有HDFS分布式文件系统,用来存储数据。

2、这么大的数据该怎么处理

数据存下来后就要开始考虑该怎么处理了,虽然文件分布在多台机器上由HDFS来整理,但毕竟数据太大了。一台机器读取成T成P的数据,一台慢慢的跑,可能要跑好几周。几周后得到的数据都是已经过期了的,所以如果用很多台机器处理,那每台机器分配一点工作量,处理的速度会很快。这就是MapReduce的功能了,MapReduce是一个计算引擎,采用了简化的模型,只有Map和Reduce两个计算过程,用这个模型可以处理大数据领域的问题了。

3、该怎么分配这个处理任务

文件有了,计算的引擎也有了,现在要将HDFS文件系统里的文件交给MapReduce来处理,得到我们需要的结果。那就面临了如何分配工作,机器之间如何互相通信交换数据以完成复杂的计算等等。
Yarn是Hadoop2.0新增的系统,负责集群的资源管理和调度,使得多种计算框架可以运行在一个集群中。它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

4、NoSql数据库

传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,处理PB级的数据。如:HBase

5、数据仓库

数据仓库,英文名称为Data Warehouse,可简写为DW。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
如:Hive、Pig

6、Zookeeper

生产处理数据中,会有节点来进行分配、计算、储存,但如果用来计算的节点宕机了,不能正常工作了,那么整个系统也就瘫痪了,只能重启这个节点来保持系统的正常运行。但是呢,之前计算的数据也在宕机的时候全部清空了,然后集群又要重新计算一遍。这是非常消耗性能的,如果将数据统一保存在某一个地点,就算这个节点宕机了,我重启该节点还能重新去保存的地点获取宕机之前的数据然后继续执行计算。这就要用到zookeeper了,zookeeper相当于是一个数据库,它保存的数据是当前整个集群的运行状态(感觉和jvm中的程序计数器有点像,都是保存当前的运行状态),zookeeper就实现了这个功能,将整个集群中的数据都保存了起来,当hadoop的主节点宕机的时候丝毫不影响数据,并实现HA。(这里HA不细讲)

7、Sqoop

一个数据库采集工具,可以将一个关系型数据库(如:mysql、oracle、sqlserver)的数据导入到HDFS中,也可以从HDFS导入到关系型数据库

8、Flume

实际开发过程中会对日志的访问流量进行分析,可以将日志采集到HDFS然后进行分析计算

9、Oozie工作流

工作流调度:工作流程的编排,调度:安排事件的触发执行(时间触发,事件触发)。看实际情况使用,对当前job的流程进行控制协调

10、Storm

hadoop的MapReduce是一个离线计算引擎。从hadoop开始计算到任务调度再到作业运行,这个过程从数据的产生到最后可以使用已经过去了至少两分多钟。 不能做到实时的计算。
而流式计算则是数据产生时,则有一个程序去一直监控日志的产生,产生一行就通过一个传输系统发给流式计算系统,然后流式计算系统直接处理,处理完之后直接写入数据库,每条数据从产生到写入数据库,在资源充足时可以在毫秒级别完成。
strom是一个分布式实时计算系统,用户只需要将自己编写的逻辑代码发布到strom的服务器上,storm会做到实时的对数据进行分析,但是storm的吞吐量比hadoop底。

11、Spark

Spark也是一个专为大规模数据处理而设计的快速通用的计算引擎,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

12、SparkStreaming

这是一套类似于storm的实时计算框架,具有吞吐量大、速度快、容错、数据源广泛特点。但延迟500毫秒对storm来说还是大很多,所以实时要求比较高的话可以使用其他框架,如storm。

13、HUE

Hue是cdh专门的一套web管理器,它包括3个部分hue ui,hue server,hue db。hue提供所有的cdh组件的shell界面的接口。你可以在hue编写mr,查看修改hdfs的文件,管理hive的元数据,运行Sqoop,编写Oozie工作流等大量工作。

总结

有了这么多乱七八糟的工具,都在同一个集群上运转,大家需要互相尊重有序工作。所以另外一个重要组件是,调度系统。现在最流行的是Yarn。你可以把他看作中央管理,好比你妈在厨房监工,哎,你妹妹切菜切完了,你可以把刀拿去杀鸡了。只要大家都服从你妈分配,那大家都能愉快滴烧菜。你可以认为,大数据生态圈就是一个厨房工具生态圈。为了做不同的菜,中国菜,日本菜,法国菜,你需要各种不同的工具。而且客人的需求正在复杂化,你的厨具不断被发明,也没有一个万用的厨具可以处理所有情况,因此它会变的越来越复杂。

www.htsjk.Com true http://www.htsjk.com/Hadoop/41394.html NewsArticle hadoop生态系统, 前言 我们先了解一下hadoop,然后再介绍生态系统中各组件以及使用方法。(HDFS、MapReduce、Yarn、Zookeeper、Hive、HBase、Oozie、Pig、Flume、Sqoop) hadoop是一个开源框架,可以...
相关文章
    暂无相关文章
评论暂时关闭