2013年12月15日 星期日

New Techs of Hadoop 2.0: Tez, Stinger, Knox & Falcon (2)

圖片來源:Hortonwork -stinger

延續上一篇介紹YARN和Tez,這一篇主要是要介紹Stinger,其實在官網的資料就非常詳盡的,Jeff的介紹就算是幫我們大家導讀一遍。

Stinger  


當初在Survey real time query 的相關技術時,就有聽到Stinger這個名字,以為又是一個Hortonwork推出的新Apache 專案,類似於Amplab的shark、Cloudera的Impala,Apache的Drill,所以也沒有仔細去研究,不過在經過Jeff的解釋之後才了解到,這只是一個計畫的名稱,並不是一個新的軟體專案,在這邊Jeff特別提到Howtonwork的哲學,不像其他公司都要自己建造一個新的SQL like query 產品,但是Hortonwork 覺得應該直接改善提昇Hive的效率,讓大家原本就在使用Hive/Pig 人不用學習新的語法,讓Based on hive/pig 開發的系統可以無痛升級繼續使用。他們深信善用open source 社群的力量,比自己浪費人力重新找幾個工程師重新寫一個SQL like query 好多了。




Stinger 這個計畫分三階段(如下圖所示)主要的目的是要改善與提高Hive的效率,目前Stinger已經處於Phase2的階段(主要都還是Based on Hadoop 1.x上),直到Phase 3才會開始跟Hadoop 2.0整合,並且真正Based on Tez上開發。  

圖片來源:官網


在前面這兩個階段,主要有幾大改進:

1. Enhancing SQL Semantics - HiveQL not SQL but will as like as possible.

下圖就是HiveQL增加的DataTypes和Semantic,目的就是Make Hive better , make SQL compliance.



而Jeff在這邊也有特別提到,藉由上圖可以注意到裡面有許多已經不是簡單的SQL的語法,已經直接是High level的 Analytic Function 在裡面,這部份都是由SAP大力贊助的,根據The Stinger Initiative: Making Apache Hive 100 Times Faster的介紹:
Harish Butani from SAP has led an effort to add analytics and windowing functions to Hive.  This will add the OVER clause for use with existing aggregate functions as well as adding analytics functions like RANK and NTILE and windowing functions like LEAD and LAG; you can see this work at HIVE-896
2. Optimization Query Planner

這部份就是由Facebook的工程師大力贊助

Namit Jain from Facebook has been spending a lot of time lately optimizing Hive’s query execution planning so that it performs joins and other operations more efficiently and with less need for hints from the user.  Hortonworks engineers have been collaborating on these and other community efforts to improve Hive.
3. Add ORCFile Format

根據官網使用ORCFile是更好的格式,可以更有效壓縮檔案大小和提昇讀取效率,詳情請見: ORCFile in HDP 2: Better Compression, Better Performance,此外根據Jeff的說法,這個部分就是由Microsoft 大力贊助的。




在聽到的當下頭上一堆問號,ORCFile是什麼?為什麼有這麼神奇的效果?
ORCFile (Optimized Row Columnar) offered excellent compression, delivered through a number of techniques including run-length encoding, dictionary encoding for strings and bitmap encoding.

更多詳情請見:

Next: New Techs of Hadoop 2.0: Tez, Stinger, Knox & Falcon (3)

張貼留言