Hadoop, MapReduce,Hive, HBase, Storm, Spark, Flink, Kylin等大数据框架的角色和关系

各种大数据框架近几年发展得如火如荼,比如Hadoop, MapReduce,Hive, Hbase, Storm, Spark, Flink, Kylin 等,各个框架的角色是怎么样的?如何配合起来使用?本文将从时间顺序上逐个说明。

首先要介绍一下Hadoop,现在Hadoop分为3部分,分别是HDFS,Yarn和Mrv2

近几年大数据潮流的推进,是需求和技术相互促进的结果,对大数据需求最强烈公司非Google这个互联网巨头莫属,所以Google率先攻克了大数据处理的技术难题,满足了它自己的业务需要。Google采用的方法是“分布式计算”,用大量的普通服务器组成集群,并发处理数据;

Google总结自己的经验,发了3篇论文,被称为大数据的三大论文。开源社区基于论文中的设计思路,实现了Hadoop开源软件,让更多的中小公司可以低成本地运用大数据,然后进一步引出更多的大数据需求。

多机并行处理的思想由来已久,但是实现一个多机协同的并行处理程序难度非常高,Hadoop开源软件拆除了这个障碍。目前Hadoop被称为一个“生态”,相关的软件项目繁多,通常情况下,大家说的Hadoop,指的是提供海量数据存储能力的HDFS,管理大量机器运算资源的Yarn以及一个编程框架MapReduce。有了这些工具,普通水平的程序员也可以轻松处理TB级别的数据。


Hadoop架构图.jpg

上图的App指的是一个具体的任务,比如运行一个word count,在大数据集上对某个列进行排序等。

HDFS:

HDFS的设计思路主要有三点:一是普通服务器的硬性故障是常态,而不是“异常”,所以分布式文件系统要有自动化的容错性;二是和Linux或者Windows的文件系统相比,分布式文件系统存储的文件要大得多,所以存储粒度大;三是存储的大文件,很少需要修改其中的某一小部分,通常情况下只需要在尾部追加内容。有了HDFS,TB、PB基本的数据存取很容易了,不但如此,HDFS还要多并行处理提供支持,并行处理需要并发地读和写文件。

Yarn:

Yarn由一个ResourceManager和每台机器上的一个NodeManager组成。ResourceManage拥有为系统中所有应用分配资源的绝对权力。NodeManager作为每个机器上的容器,管理系统资源(cpu,memory,disk,network)的使用情况,并向ResourceManager或者Scheduler报告。
在Yarn上运行分布式应用,是通过ApplicationsMaster进行的,这里的应用指一个MapR job或者构成DAG图的多个job,应用运行结束相应的ApplicationsMaster就关闭退出了。
有些持续运行的框架,比如Hbase比较特殊,可以部署在yarn上,也可以不部署在yarn上。还有flink在yarn上运行,有两种部署方式: 一是long-running Flink cluster on YARN;另一种是 run a Flink job on YARN。

Mesos也是一个分布式集群的资源管理框架,相比较yarn它更底层,使用mesos需要它上面计算框架实现更多东西。使用Hadoop组件有这样一种部署方式,是先启动mesos,然后再在上面部署hdfs,yarn,这样就可以运行mapreduce了。Spark,flink这种计算框架都支持直接部署到mesos上(需要用到hdfs的话,需要在mesos上部署hdfs)。

Mrv2:

再了解了解ApplicationsMaster
Yarn支持不同的计算框架是通过ApplicationsMaster来实现的,不同的计算框架实现各自的类库,然后由ApplicationsMaster运行,比如Mrv2,Spark,Flink都可以通过这种方式在Yarn上运行。
Mrv2运行时,首先作为ApplicationsMaster向Yarn的ResourceManager请求所需的资源,然后通过和NodeManager配合启动这些资源,监控它们的执行情况,直到任务运行结束,然后这个ApplicationsMaster实例退出。

Hive

Hive的出现是为了自动化编写MapReduce程序。根据上面的介绍,基于Mrv2的计算框架,我们实现相应的Mapper,Reducer后就可以提交运行,然后通过Yarn的调度,执行完这个MapReduce程序。

但是一个Mapper、一个Reducer的能力有限,完成一个实际业务目的可能需要很多个步骤,比如对一个大的数据集,首先通过某个字段筛选出想要的行,然后根据另一个字段分组统计,最后再对结果进行排序。这些功能逐个通过Mapreduce实现就比较繁琐了,并且对不同的数据集,处理方式可能类似,都是筛选、分组统计、排序等相似的功能。我们可以通过熟悉的SQL语句来描述需要对数据进行的处理,然后通过hive里的引擎把sql转换成一个或多个mapreduce任务并调度执行,这就大大减少了相似的mapreduce编写工作,提高了效率。

HBase

HBase是一个分布式noSql数据库,是google的bigtable论文的开源实现。
HBase可以被理解成一个打的Map数据结构,类似Map<primarkey, map<key, value>>这种。但是它自动地处理海量数据存储的扩展,通过增加或减少机器来改变数据库的容量限制。HBase底层依赖HDFS来实现数据的高可用性,hbase集群由HMaster和HregionServer组成,这两个组件可以独立部署到集群上,也可以部署到Yarn上。

HBase也是Hadoop家族的成员,所以它对Mrv2,Hive的支持很好,可以作为它们的数据源或者结果存储位置;作为Mrv2数据源的时候,Hbase可以提供在HDFS上的位置信息,实现高效的并行计算。

Spark

Spark被认为是第二代大数据处理框架。第一代框架是基于简单的Map Reduce模型的,第一代计算框架和运算的基础,也就是分布式文件系统和分布式资源管理系统一起被创建出来。Spark沿用现有的分布式文件系统和分布式资源管理系统,在计算模型方面有很大的创新。

上面提到Hive可以把sql语句转成多个Mapreduce任务并执行,这和逐个实现Mapper Reducer相比有很大的效率提升;Spark是改进了Mrv2运算模型,首先向上层用户提供更多的算子来表达业务逻辑,底层则把每次任务转换成DAG图,对DAG图进行物理运算的时候,更多地利用内存来缓存,减少JVM的启停次数等,通过这些方法大大提高了数据处理速度。
Spark的生态也很完善,比如Spark Sql,Spark Streaming,Spark MLlib等。

Flink

Flink很长一段时间被Spark的光环掩盖,Flink的特点是实时流计算(Spark Streaming可以轻松做到秒级别的实时计算),把实时计算提到了更高的优先级。
Flink充分考虑事件的时间属性,通过WaterMark等机制,可以实时准确地完成完成流式计算,轻松实现CEP等功能,把批计算当成流计算的一种特例。
Flink像Spark一样,也可以部署到Yarn上,可以用HDFS作为分布式存储。

Kylin

大部分的大数据处理结果,是生成了报表供业务人员分析查阅,快速高效地生成报表就比较重要了。无论是hive还是Spark sql,通过计算生成报表的时间都在分钟级以上,Kylin对输入的hive表(组织成维度/度量的星形模型),预先通过MR进行计算,把计算结果以cube元数据的形式存到HBase里,然后用户可以通过JDBC Driver以sql的方式对数据进行快速查询。

Storm,Zookeeper,Pig,TiDB

Storm是第一代流处理框架,目前逐渐被spark streaming和Flink取代.
Zookeeper提供分布式协同服务,可以被用来做分布式服务的leader选取,主从自动切换等,大部分分布式集群框架都依赖ZooKeeper。
Pig类似Hive,使用Pig Latin语言写逻辑,翻译成MapReduce任务执行.
TiDB对标google的f1和spanner,支持acid,支持CAP理论中的C、P支持,但是也有高可用性。TIDB的使用场景是OLTP,也就是要替换传统的rdbms,比如Mysql。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343