从问题域出发认识Hadoop生态系统

标签: 下一代MapReduce(YARN) Hadoop Hive impala Pig | 发表时间:2013-05-26 11:24 | 作者:Dong
出处:http://dongxicheng.org
作者: Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明
网址: http://dongxicheng.org/mapreduce-nextgen/rethinking-hadoop-from-problems-solved/
本博客的文章集合: http://dongxicheng.org/recommend/


重大消息:我的Hadoop新书《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》已经开始在各大网站销售了,现在购买,可以打75折,购书链接地址: 当当购书网址京东购书网址卓越购书网址。新书官方宣传主页: http://hadoop123.com/


近些年来Hadoop生态系统发展迅猛,它本身包含的软件越来越多,同时带动了周边系统的繁荣发展。尤其是在分布式计算这一领域,系统繁多纷杂,时不时冒出一个系统,号称自己比MapReduce或者Hive高效几十倍,几百倍。有一些无知的人,总是跟着瞎起哄,说Impala将取代Hive,Spark将取代Hadoop MapReduce等。本文则从问题域触发,解释说明Hadoop中每个系统独特的作用/魅力以及它们的不可替代性。

Hadoop作为一个生态系统,每个系统只解决某一个特定的问题域(甚至可能很窄),这也是Hadoop的魅力所在:不搞统一型的一个全能系统,而是小而精的多个小系统。本文重点讨论分布式计算领域的几个开源系统可以解决的问题域。

(1)MapReduce:古老的分布式计算框架,它的特点是扩展性、容错性好,易于编程,适合 离线数据处理,不擅长流式处理、内存计算、交互式计算等领域。MapReduce网址是: http://hadoop.apache.org/

(2)Hive:披着SQL外衣的MapReduce。Hive是为方便用户使用MapReduce而在外面包了一层SQL,由于Hive采用了SQL,它的问题域比MapReduce更窄,因为很多问题,SQL表达不出来,比如一些数据挖掘算法,推荐算法、图像识别算法等,这些仍只能通过编写MapReduce完成。Hive网址是: http://hive.apache.org/

(3)Pig:披着脚本语言外衣的MapReduce,为了突破Hive SQL表达能力的限制,采用了一种更具有表达能力的脚本语言PIG。由于pig语言强大的表达能力,Twitter甚至基于Pig实现了一个大规模机器学习平台(参考Twitter在SIGMOD2012的文章“Large-Scale Machine Learning at Twitter”)。Pig网址是: http://pig.apache.org/

(4)Stinger Initiative(Tez optimized Hive):Hortonworks开源了一个DAG计算框架Tez,该框架可以像MapReduce一样,可以用来设计DAG应用程序,但需要注意的是,Tez只能运行在YARN上。Tez的一个重要应用是优化Hive和PIG这种典型的DAG应用场景,它通过减少数据读写IO,优化DAG流程使得Hive速度提供了很多倍。(Stinger正在开发中,Tez代码: https://svn.apache.org/repos/asf/incubator/tez/branches/

(5)Spark:为了提高MapReduce的计算效率,伯克利开发了spark,spark可看做基于内存的MapReduce实现,此外,伯克利还在Spark基础上包了一层SQL,产生了一个新的类似Hive的系统Shark,但目前Spark和Shark尚属于实验室产品。Spark网站是: http://spark-project.org/

(6)Storm/S4:Hadoop在 实时计算/流式计算领域(MapReduce假设输入数据是静态的,处理过程中不能被修改,而流式计算则假设数据源是流动的,数据会源源不断流入系统),一直比较落后,还好,Twitter开源的Storm和yahoo!开源的S4弥补了这一缺点,Storm在淘宝,mediaV等公司得到广泛的应用。Storm网址是: http://storm-project.net/,S4网址是: http://incubator.apache.org/s4/

(7)Cloudera Impala/Apache drill:Google Dremel的开源实现,也许是因为 交互式计算需求太过强烈,发展迅猛,impala仅用了一年左右便推出1.0GA版本。这种系统适用于交互式处理场景,最后产生的数据量一定要少。Impala尽管发布了1.0版本,但在容错性、扩展性、支持自定义函数等方面,有很长的路要走。Cloudera Impala网址是: https://github.com/cloudera/impala,Apache drill网址是: http://incubator.apache.org/drill/

Hortonworks将应用需求进行了如下划分:

映射到上面几种系统,可知:

(1)实时应用场景(0~5s):Storm、S4、Cloudera Impala,Apache Drill等;

(2)交互式场景(5s~1m):这种场景通常能要求必须支持SQL,则可行系统有:Cloudera Impala、Apache Drill、Shark等;

(3)非交互式场景(1m~1h):通常运行时间较长,处理数据量较大,对容错性和扩展性要求较高,可行系统有:MapReduce、Hive、Pig、Stinger等;

(4)批处理场景(1h+):通常运行时间很长,处理数据量很大,对容错性和扩展性要求很高,可行系统有:MapReduce、Hive、Pig、Stinger等。

原创文章,转载请注明: 转载自 董的博客

本文链接地址: http://dongxicheng.org/mapreduce-nextgen/rethinking-hadoop-from-problems-solved/

作者: Dong,作者介绍: http://dongxicheng.org/about/

本博客的文章集合: http://dongxicheng.org/recommend/


Copyright © 2013
This feed is for personal, non-commercial use only.
The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:
)

相关 [问题 出发 认识] 推荐:

从问题域出发认识Hadoop生态系统

- - 董的博客
Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce-nextgen/rethinking-hadoop-from-problems-solved/. 本博客的文章集合: http://dongxicheng.org/recommend/.

认识Google Now

- - 搜索引擎周边
谷歌在早前的Google I/O开发者大会上推出了Google Now,这也是本次大会的亮点之一,其贴心和个性化的的服务吊足许多人的胃口. 比如,Google Now会告诉你今天的天气和交通情况,上班等车时它会告诉你下一班车大约何时到到,并根据你的喜好推送你喜欢的体育赛事或球队比分等等. 下面是 分文博客上的一篇对Google Now的介绍文章,可以让你对Google Now有个大致的了解:.

初步认识 LESS

- - 博客 - 伯乐在线
来源: 申毅&邵华@IBM DevelopWorks. LESS 提供了多种方式能平滑的将写好的代码转化成标准 CSS 代码,在很多流行的框架和工具盒中已经能经常看到 LESS 的身影了(例如 Twitter 提供的 bootstrap 库就使用了 LESS). 它和 SASS 等样式表语言又有何区别呢.

重新认识JavaScript

- - C++博客-首页原创精华区
   JavaScrpit在我眼中一直是web前端脚本语言,而这段时间的一些工作,让我对JavaScript有了一个全新的认识.    公司准备启动的一个手游项目,服务器端准备使用网易的开源框架pomelo. pomelo是基于Node.js的高性能,分布式游戏服务器框架. 它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发.

mysql索引认识

- - 数据库 - ITeye博客
数据在磁盘中是以 “块”的形式存储的,所以一张表涉及的数据可能会存在多个块中,而在磁盘中查询数据则会根据字段是否为有序与无序来区分,. 无序情况:1.数值具有唯一性则需要查找 总块数/2.                   2.无序+无唯一性则需要查找  总块数. 有序情况:1.数值唯一性:log2(总块数/2)   (log2是二分查找算法).

Docker认识基础

- - CSDN博客推荐文章
作者:chszs,版权所有,未经同意,不得转载. 博主主页: http://blog.csdn.net/chszs. Docker是一个C/S架构的容器引擎,它包括镜像、容器和库这三个重要的概念. Docker是一个开源平台,它包含容器引擎和Docker Hub注册服务器. 1)Docker容器引擎.

Redis几个认识误区

- Class4 - Tim[后端技术]
前几天微博发生了一起大的系统故障,很多技术的朋友都比较关心,其中的原因不会超出James Hamilton在On Designing and Deploying Internet-Scale Service(1)概括的那几个范围,James第一条经验“Design for failure”是所有互联网架构成功的一个关键.

我认识的乔布斯

- Donson - Apple4.us
本文是华尔街日报的「莫博士」于乔布斯去世后撰写的纪念文章. 后者曾多次在苹果产品发布会上引用莫的评论,也曾多次接受其采访. 文/Walt Mossberg   图/Wired.com. 在他八月辞去苹果 CEO 一职以后,说史蒂夫·乔布斯是个天才,一个影响了好几个产业数十亿人的话已经被写过很多遍了.

认识“市场先生”

- 冰醇拿铁 - laoba1梁军儒的BLOG
    本杰明·格雷厄姆和沃伦·巴菲特的投资哲学均以对市场本质的看法为基础. 格雷厄姆还给投资市场起了“市场先生”这么一个人格化的名字.     在写给伯克希尔·哈撒韦公司持股者的一封信中,沃伦·巴菲特是这样描写“市场先生”的:.     本杰明·格雷厄姆,我的朋友和老师,很久以前就提出了对待市场波动的正确态度,我相信这种态度是最容易带来投资成功的.

我认识的乔布斯

- Frank - Apple4.us
本文是华尔街日报的「莫博士」于乔布斯去世后撰写的纪念文章. 后者曾多次在苹果产品发布会上引用莫的评论,也曾多次接受其采访. 文/Walt Mossberg   图/Wired.com. 在他八月辞去苹果 CEO 一职以后,说史蒂夫·乔布斯是个天才,一个影响了好几个产业数十亿人的话已经被写过很多遍了.