从问题域出发认识Hadoop生态系统
近些年来Hadoop生态系统发展迅猛,它本身包含的软件越来越多,同时带动了周边系统的繁荣发展。尤其是在分布式计算这一领域,系统繁多纷杂,时不时冒出一个系统,号称自己比MapReduce或者Hive高效几十倍,几百倍。有一些无知的人,总是跟着瞎起哄,说Impala将取代Hive,Spark将取代Hadoop MapReduce等。本文则从问题域触发,解释说明Hadoop中每个系统独特的作用/魅力以及它们的不可替代性。
{关注大规模数据处理,包括Hadoop,YARN,Spark,Flink,Presto等}
近些年来Hadoop生态系统发展迅猛,它本身包含的软件越来越多,同时带动了周边系统的繁荣发展。尤其是在分布式计算这一领域,系统繁多纷杂,时不时冒出一个系统,号称自己比MapReduce或者Hive高效几十倍,几百倍。有一些无知的人,总是跟着瞎起哄,说Impala将取代Hive,Spark将取代Hadoop MapReduce等。本文则从问题域触发,解释说明Hadoop中每个系统独特的作用/魅力以及它们的不可替代性。
本文主要介绍了Hadoop Streaming的一些高级编程技巧,包括,怎样在mapredue作业中定制输出输出格式?怎样向mapreduce作业中传递参数?怎么在mapreduce作业中加载词典?怎样利用Hadoop Streamng处理二进制格式的数据等。
本文介绍了在Hadoop上编写MapReduce程序的基本方法,包括MapReduce程序的构成,不同语言开发MapReduce的方法等。
Borg(来自Google),YARN(来自Apache,属于Hadoop下面的一个分支,开源),Mesos(来自Twitter,开源),Torca(来自腾讯搜搜),Corona(来自Facebook,开源)被称为资源统一管理系统或者资源统一调度系统,它们是大数据时代的必然产物。
基于函数调用的编程模型是低效的,它隐含中整个过程是串行、同步进行的。一种更为先进的编程模型是事件驱动,这在Hadoop YARN和Mesos等分布式系统中得到了广泛应用。本文介绍了Hadoop YARN中的事件驱动机制。
Hadoop Streaming是Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或者脚本文件作为Mapper和Reducer,本文介绍了Hadoop Streaming编程方法。
在Hadoop 0.20.x版本或者更早的版本,Hadoop采用了平级队列组织方式,在这种组织方式中,管理员可将用户分到若干个扁平队列中,在每个队列中,可指定一个或几个队列管理员管理这些用户,随着Hadoop应用越来越广泛,有用户提出需支持层级队列组织方式。
本文介绍了YARN带来的好处,包括更快地MapReduce计算,对多框架支持和框架升级更容易。
Corona可看做下一代MapReduce框架,它解决了MRv1中存在的扩展性、单点故障等不足,但是,相比于YARN,它仍存在一些不足或者当前未考虑的点,本文对介绍了Corona优缺点。
CoronaTaskTracker类似于MRv1中的TaskTracker,是每个节点上的代理服务,负责向ClusterManager和CoronaJobTracker汇报心跳信息,接收来自CoronaTaskTracker的命令,并进行处理。本文介绍了CoronaTaskTracker实现。