Cascading 2.5 支持 Hadoop 2
http://www.infoq.com/cn/news/2014/01/cascading
你不妨问问自己这个问题:有谁愿意写一堆Java代码来完成一句SQL语句就能实现的操作?又有谁愿意写几百行SQL语句来取代最好是用Java来编写并测试的某个操作?Cascading给广大开发人员带来了灵活性。
尽管Hadoop技术的运用越来越广泛,而且一直在增长,但是很多企业仍然面对着一个问题,即寻找恰当的方法来快速经济地开发基于Hadoop的应用。有一种方法可以大大简化这类应用,就是使用领域特定语言(DSL)。
在底层MapReduce API之上,最为流行的一种Java 领域特定语言就是Cascading。Cascading是在2007年底作为一种领域特定语言引入的,用于实现面向大规模数据工作流的函数式编程。它基于“管道(Plumbing)”这种隐喻将数据处理定义为构建于我们熟悉的一组元素之上的工作流,这些元素是: Pipe、Tap、元组行、Filter、Join、Trap等。
本周,Cascading发布了该产品的最新版本——Cascading 2.5,将支持Hadoop 2,以及YARN。根据该公司的新闻稿,该产品的新特性有以下几点:
支持Hadoop 2及其新特性,支持YARN。希望升级到Hadoop 2的Cascading用户,能够无缝地迁移其应用,并且能够使用像YARN这样的较新的高级特性。
对复杂的连接(JOIN)操作有额外的性能改进,对于处理后的数据在HDFS上的动态分区和存储进行了优化,使其更为高效。
与其他Hadoop厂商以及Hadoop即服务的提供者有了更广的兼容性,包括兼容Cloudera、Hortonworks、MapR、Intel、Altiscale、 Qubole及Amazon EMR等,不论在本地(on-premise)还是在云端,为Cascading用户提供了更丰富的部署选择。
同时,Concurrent还发布了Cascading Lingual的GA版本。Cascading Lingual是一个开源项目,该项目对访问基于Hadoop的数据提供了全面的ANSI SQL接口。该项目还涵盖了超过7千条从成熟的工业标准OLAP工具继承而来的SQL-99语句。根据Concurrent的说法:
为Hadoop生态系统内的任何工具都带来了最广泛的SQL覆盖。它有两方 面创新:使Hadoop变得简单、容易使用;只需要一条SQL语句,就能很 简单地将多个数据存储集成到Hadoop中。
InfoQ有幸同Concurrent公司的创始人及首席技术官Chris K Wensel讨论了有关Cascading最新版本的一些话题。
InfoQ****:当您提到Cascading 2.5对YARN的支持时,具体指的是什么?是MapReduce代码使用了YARN资源管理器,还是实际上利用YARN创建了一个新的特定于Cascading的应用管理器?
Wensel****:Cascading 2.5隐性地支持YARN。因为Cascading 2.5支持Hadoop 2,所以它也支持YARN功能。Cascading实际上并未利用YARN进行应用开发。
InfoQ****:对于利用Apache Tez进一步改进Cascading应用的性能,您是否有具体的计划?
Wensel****:是的,在我们的产品发展路线图上的确有关于Tez的计划,我们会在适当的时间向公众宣布相应更新。
InfoQ****:您能针对复杂连接的优化及性能提高为我们解释一下吗?
Wensel****:我们更新了API,以支持更为复杂、定制的连接类型。比如:在某些特定情况下Cascalog能够利用这个特性。
InfoQ****:在您看来,我们对于基于SQL处理的强调是否会限制Hadoop为依托的应用开发?不论SQL有多棒,它只是对于解决某类问题有些好处,而对于利用Hadoop的企业而言,这只是应用的一个有限子集。
Wensel****:SQL几乎能够支持其余99%的开发人员、分析师以及遗留系统使用Hadoop。是的,你的确可能遇到使用SQL会有所限制的情况,但是对于大部分问题而言,90%都可以通过SQL来表述。Cascading给人们提供了选择。你不妨问问自己这个问题:有谁愿意写一堆Java代码来完成一句SQL语句就能实现的操作?又有谁愿意写几百行SQL语句来取代最好是用Java来编写并测试的某个操作?Cascading给广大开发人员带来了灵活性。
查看英文原文:Cascading 2.5 Supports Hadoop 2