引言:随着大数据的不断发展,以及云计算等新兴技术的不断融合,Hadoop现在已经发展成为了一个生态圈,而不再仅仅是一个大数据的框架了。在Apache基金下,Hadoop社区已经发展成为一个大数据与云计算结合的生态圈,对于大数据的计算不满足于离线的批量处理了,同时也支持在线的基于内存和实时的流式计算。

  了解完大数据的基础部分,Hadoop基础之后,接下来学习Hadoop生态圈的技术,这才是大数据的实用部分,商用部分以及更有价值的部分。Hadoop生态圈在hadoop核心基础上,对数据的储存和处理,以及协调调度方面都有着许许多多发展,这些方方面面就构成了Hadoop生态圈(Hadoop Ecosystem)。

  Hadoop生态圈

  1、hadoop核心:HDFS分布式文件系统、MapReduce计算模型、Yarn资源调度。

  2、数据储存:hive数据仓库架构、hbase分布的NoSQL数据库。

  3、数据处理:Pig数据分析平台、Mahout数据检索、hama大规模并行计算框架。

  4、协调组件:zookeeper分布式应用协调服务、core/common为其他子项目提供支持。

  Spark简介

  Spark是个开源的数据 分析集群计算框架,最初由加州大学伯克利分校AMPLab,建立于HDFS之上。spark与hadoop一样,用于构建大规模,延迟低的数据分析应用。spark采用Scala语言实现,使用Scala作为应用框架。spark采用基于内存的分布式数据集,优化了迭代式的工作负载以及交互式查询。与hadoop不同的是,spark与Scala紧密集成,Scala象管理本地collective对象那样管理分布式数据集。spark支持分布式数据集上的迭代式任务,实际上可以在hadoop文件系统上与hadoop一起运行(通过YARN,MESOS等实现)。

  简单阐述Spark是一个针对大规模数据处理的快速通用引擎。类似MapReduce,都进行数据的处理。Spark的特点:(1)基于Scala语言、Spark基于内存的计算;(2)快:基于内存;(3)易用:支持Scala、Java、Python;(4)通用:Spark Core、Spark SQL、Spark Streaming、MLlib、Graphx(5)兼容性:完全兼容Hadoop。

  Pig简介

  Pig是一种基于hadoop的数据流系统、数据流语言和运行环境,用于检索非常大的数据集。为大型数据集的处理提供了一个更高层次的抽象。Pig包括两部分:一是用于描述数据流的语言,称为Pig Latin;二是用于运行Pig Latin程序的执行环境。Apache Pig 是一个高级过程语言,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布式数据集进行类似 SQL 的查询,Pig 可以简化 Hadoop 的使用。

  用MapReduce进行数据分析。当业务比较复杂的时候,使用MapReduce将会是一个很复杂的事情,比如你需要对数据进行很多预处理或转换,以便能够适应MapReduce的处理模式。另一方面,编写MapReduce程序,发布及运行作业都将是一个比较耗时的事情。Pig的出现很好的弥补了这一不足。Pig能够让你专心于数据及业务本身,而不是纠结于数据的格式转换以及MapReduce程序的编写。本质是上来说,当你使用Pig进行处理时,Pig本身会在后台生成一系列的MapReduce操作来执行任务,但是这个过程对用户来说是透明的。

  Storm简介

  storm是一个分布式的,容错的计算系统,storm属于流处理平台,多用于实时计算并更新数据库。storm也可被用于“连续计算”,对数据流做连续查询,在计算时将结果一流的形式输出给用户。他还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。

  Kafka简介

  kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

转载于:https://blog.51cto.com/14231577/2364032