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