標籤:

MaxCompute 2.0 生態開放之路及最新發展

MaxCompute(原ODPS)是阿里雲自主研發的分散式大數據處理系統。長久以來,這套阿里自研的系統為阿里內部服務,有自己的類型系統,配套工具以及 SDK 和編程介面。但是隨著公共領域對 MaxCompute 的需求越來越強烈,我們也在盡自己所能,使 MaxCompute 能夠兼容現有生態,提高使用體驗以及最重要的,保護用戶投資。

用戶介面層的基本簡介

首先整體介紹一下 MaxCompute 的用戶介面層。

MaxCompute 從研發的第一天起就被設計統一由 Restful API 提供服務。在 Restful API 之上,我們各種語言的 SDK。由 SDK 編寫形成的各種工具、驅動等等構成了 MaxCompute 的用戶介面層,即外圍生態。

協議兼容:JDBC 和 Hive Proxy

JDBC 是 MaxCompute 第一次提供標準化協議的嘗試。通過 JDBC,我們可以順利對接如 Pentaho 這樣的 BI 工具,如 TalentD 這樣的 ETL 工具以及 SQL Workbench 這樣的傳統資料庫管理工具(圖為 ODPS JDBC on Zeppelin)。

同時,JDBC 的編程介面也為更多人所熟知,很多用戶可以不用學習新的 SDK 即可編程完成常見的數據處理任務。這方面可以參考我們之前發表在雲棲社區的文章《使用 odps-jdbc 接入 ODPS,不再從零開始》。

ODBC 也是重要的兼容協議之一。為此我們正在研發 Hive Proxy,直接從 thrift 協議層進行兼容,以期可以提供包括 ODBC 在內的 Hive 整個生態的接入能力。Hive Proxy 部署在客戶端,將 Hive 的 thrift 請求轉換成 MaxCompute 的 Restful API 請求,可以用來直接對接諸如 Tableau、Qlik 這樣不直接支持 JDBC 的 BI 工具,或者 HPL 這樣的 Hive 組件。

目前 Hive Proxy 正在緊密的開發測試階段,相信不久就可以和各位見面。

編程介面兼容:RODPS 和 PyODPS

MaxCompute 的強項是大規模數據分析,這是很多數據分析師每天的主要工作。因此提供數據分析師熟悉的用戶介面就變成很重要的事情。目前,我們提供的 RODPS,使用戶具備在 R 中提交 SQL,並將結果數據拖回本地進行 R 分析計算的能力。

對於熟悉 Python DataFrame 的用戶,我們提供的 PyODPS 則提供了更加強大的能力。PyODPS 提供了全新的分散式 ODPS DataFrame,可以直接用熟悉的 DF 來操作 MaxCompute 中的海量數據。PyODPS 能夠自行構建對應的 SQL,進行優化並託管這些 SQL 的執行。PyODPS 甚至可以將本地的 Pandas DataFrame 和 ODPS DataFrame 進行混合操作(比如 join)!同時,PyODPS 天然可以與 Jupyter Notebook 相結合,構成強有力的交互開發環境。我們為此特意增加了如結果集的互動式可視化等功能,使基於 PyODPS 的數據分析空前的方便。這一切都可以通過 docker 鏡像和免費體驗服務快速獲得。

目前,PyODPS 正在對接 MaxCompute TensorFlow。

Hadoop MR Adapter

MaxCompute 提供的 MapReduce 實現叫 OpenMR,編程介面跟 Hadoop MR 不太一樣。遷移 Hadoop MR 到 OpenMR 是個挺吃力不討好的事情,因此對於已經擁有 Hadoop MR 任務的用戶,我們準備了 Hadoop MR Adapter。只需替換一個運行時 jar 包,即可將 Hadoop MR 任務在運行時改寫成 OpenMR 任務執行。

目前這個插件已經接近完成,正在小範圍測試。我們將在後續專門推出相關文章。

開放源代碼

目前,我們的 Java SDK、PyODPS 、JDBC 驅動 等都是 github 開源項目(恕未一一列舉,您可以關注 Github 的 aliyun group 來獲取完整的項目列表)。我們非常希望通過開放源碼的形式,獲得社區的幫助和建議,和社區形成良性的互動。

同時,我們的 Restful API 也向最終用戶開放,歡迎各界愛好者共同完善 MaxCompute 的生態環境。

可喜的是,我們已經收到了來自開源愛好者貢獻的 Ruby 和 PHP SDK。基於 Ruby SDK,我們順利的開發了 Fluentd 插件,實在是令人高興的事情。

本來選自阿里雲大數據產品專家「隱林」,擅長MaxCompute、機器學習、分散式、可視化、人工智慧等大數據領域。


推薦閱讀:

三個月成為大數據工程師,你需要具備哪些條件?
數據壓縮有沒有可能發展到極限?
堆內和堆外
大數據交易的「上海模式」,底氣在哪裡? | 數據科學50人·湯奇峰
Hadoop如何處理?如何增強Hadoop 安全?

TAG:大數據 |