Apache蜂巢

免費試著磚

Apache蜂巢是什麼?

Apache蜂巢是開源數據倉庫軟件閱讀,寫作,和管理大型數據集從Apache Hadoop分布式文件係統(HDFS),更大的一個方麵Hadoop生態係統

與廣泛的Apache蜂巢文檔和持續更新,Apache蜂巢繼續創新數據處理在一個易於使用的方法。

Apache蜂巢的曆史

Apache蜂巢所設想的是一個開源項目創造Joydeep森Sarma和Ashish Thusoo期間他們在Facebook上。蜂巢開始作為Apache Hadoop的子項目,但畢業成為自己的頂級項目。Hadoop的增長限製和減少就業和增加地圖大小的數據從2006年的每天10 GB 1 tb /天15 tb /天在幾年之內。工程師們在Facebook無法運行複雜的工作輕鬆,蜂巢的創建。

Apache蜂巢是實現兩個目標——一個基於SQL的聲明性語言,還允許工程師能夠插入自己的腳本和程序當SQL沒有足夠了,這也使得大部分工程世界(基於SQL技能)使用蜂巢的破壞最小或再培訓與他人相比。

其次,它提供了一個集中式元數據存儲(基於Hadoop)組織中所有的數據集。雖然最初在Facebook的牆壁被開發,Apache使用蜂巢和Netflix等其他公司開發的。亞馬遜維護一個Apache軟件叉蜂巢中包括亞馬遜彈性MapReduce亞馬遜網絡服務。

蜂巢的特點是什麼?

Apache蜂巢支持大型數據集的分析存儲在Hadoop的HDFS和兼容的文件係統,如Amazon S3, Azure Blob存儲Azure數據湖存儲、穀歌雲存儲和Alluxio。

它提供了一個sql查詢語言稱為HiveQL schema-on-read和透明地將查詢到Apache火花、MapReduce和Apache特斯工作。蜂群的其他特性包括:

  • 蜂窩數據功能幫助處理大數據集和查詢。這些函數提供的一些功能包括字符串操作、操作日期,類型轉換,有條件的運營商,數學函數等等
  • 元數據存儲在關係數據庫管理係統
  • 不同的存儲類型等拚花純文本,RCFile HBase,獸人等等
  • 操作使用算法壓縮數據存儲到Hadoop生態係統
  • 內置的用戶定義函數(udf)操作日期、字符串、和其他數據挖掘工具。蜂巢支持擴展UDF將處理用例不支持的內置函數
  • sql查詢(HiveQL),隱式轉換成MapReduce或特斯,或引發工作

Apache蜂巢結構和關鍵Apache蜂巢組件

Apache蜂巢架構的關鍵組件是蜂巢服務器2,蜂巢查詢語言(HQL)外部Apache蜂巢Metastore,蜂巢直線殼。

蜂巢服務器2

蜂巢服務器2接受來自用戶和應用程序傳入的請求,並創建一個執行計劃,自動生成一個紗工作處理SQL查詢。服務器還支持蜂群優化和蜂巢編譯器來簡化數據提取和處理。

蜂巢的查詢語言

通過啟用SQL-reminiscent代碼的實現,Apache蜂巢否定需要冗長的JavaScript代碼整理非結構化數據,並允許用戶使用內置的HQL查詢語句(HQL)。這些語句可以用來導航大型數據集,優化結果,在節省成本和時間的方式和共享數據。

蜂巢Metastore

Apache蜂巢中央存儲庫的基礎設施,在metastore蜂巢的所有元數據存儲。metastore,也可以格式化為元數據蜂巢表在關係數據庫和分區比較數據。這包括表名、列名、數據類型、HDFS上的分區信息和數據位置。

蜂巢直線殼

與其他數據庫管理係統(DBMS),蜂巢有它自己的內置命令行界麵,用戶可以運行HQL語句。同時,蜂巢殼還經營蜂巢JDBC和ODBC驅動程序可以從一個開放數據庫連接進行查詢或Java數據庫連接應用程序。

Apache蜂巢軟件是如何工作的呢?

蜂巢服務器2接受傳入的請求從用戶和應用程序創建一個執行計劃,並自動生成一個紗工作處理SQL查詢。紗線的工作可能生成的MapReduce,特斯,或者引發工作負載。

這個任務然後在Hadoop作為分布式應用程序。一旦SQL查詢處理,結果將被返回給終端用戶或應用程序,或傳輸回HDFS。

蜂巢Metastore將利用關係數據庫如Postgres或MySQL堅持此元數據,與蜂巢服務器2檢索表結構的查詢計劃。在某些情況下,應用程序也可以詢問metastore作為潛在的一部分處理。

蜂巢工作負載執行在紗、Hadoop資源管理器,提供一個處理環境Hadoop執行工作的能力。這個處理環境包括分配的內存和CPU從各個工人的Hadoop集群中的節點。

紗將嚐試利用HDFS的元數據信息,以確保處理部署所需的數據存放在哪裏,MapReduce,特斯,火花,或蜂巢可以自動生成SQL查詢代碼MapReduce,特斯或火花工作。

盡管蜂巢最近才利用MapReduce,大多數Cloudera Hadoop部署將蜂巢配置為使用MapReduce,有時火花。Hortonworks(黃芪丹參滴丸)部署通常特斯設置執行引擎。

什麼是五個不同數據類型使用Apache蜂巢嗎?

通過其使用批處理,Apache蜂巢是能夠有效地提取和分析海量數據速度快,是一種理想的運行不僅處理數據,還特別查詢。

Apache蜂窩數據類型包括五類:數字、日期/時間、字符串、複雜和混雜。

數值數據類型

顧名思義,這些數據類型是基於整數數據類型。這些數據類型的例子有非常小的整數,“短整型,”“INT,”和“長整型數字”。

日期/時間數據類型

這些數據類型允許用戶輸入一個日期和時間,與“時間戳”,“日期”和“區間”,所有被接受輸入。

字符串數據類型

這種類型的數據非常簡單又允許書麵文本,或“字符串”實現數據進行處理。字符串數據類型包括“字符串”,“VARCHAR,”和“字符”。

複雜數據類型

的一個更高級的數據類型,複雜類型記錄更詳細的數據和由類型像“結構”,“地圖”“數組”和“聯盟”。

混雜。類型

數據類型不符合其他四類被稱為雜項數據類型和可以輸入,如“布爾”或“二進製”。

蜂巢Apache地圖加入是如何工作的

在Apache蜂巢,地圖加入功能用來提高查詢的速度和效率相結合,或者說“加入,”來自兩個表的數據同時繞過使用映射-規約模式階段的過程。

什麼是關係數據庫管理係統(RDBMS)和Apache蜂巢如何使用它呢?

關係數據庫管理係統(RDBMS)是一個數據庫模型,通過將元數據存儲在一個行或列的表結構和允許連接和比較不同的數據集。

通過使用RDBMS, Apache蜂巢可以確保所有的數據存儲和處理安全,可靠,準確,因為集成特性,比如基於角色的安全性和加密通信確保隻有正確的人得到的信息提取。

什麼是Apache蜂巢和傳統RDBMS的區別?

有幾個關鍵Apache蜂巢和RDBMS之間的區別:

  • RDBMS功能工作多次讀寫而蜂巢工作編寫一次,讀過很多次了。
  • 蜂巢是schema-on-read規則,隻有意思沒有數據驗證,檢查或解析,隻是複製/移動文件。在傳統的數據庫中,一個模式應用於一個表執行模式編寫規則。
  • 因為蜂箱是建立在Hadoop之上,它必須遵守相同的Hadoop MapReduce,限製其他RDBMS可能不需要。

Apache蜂巢與Apache火花

處理大量數據而設計的一個分析框架在不同數據集,Apache火花提供了一個強大的用戶界麵能夠支持各種語言從R到Python。

蜂巢提供了一個抽象層,代表了數據表的行,列和數據類型來查詢和分析使用一個名為HiveQL的SQL接口。Apache蜂巢支持ACID事務蜂巢LLAP。交易保證一致的視圖中數據的一個環境中多個用戶/進程同時訪問數據的創建、讀取、更新和刪除(CRUD)操作。

磚了三角洲湖,這是類似於蜂巢LLAP,它提供了酸事務擔保,但是它提供了一些其他福利來幫助訪問數據時的性能和可靠性。火花SQL是Apache火花的模塊進行交互與結構化數據表示為表的行,列和數據類型。

火花SQL SQL 2003兼容並使用Apache火花作為分布式引擎來處理數據。除了引發SQL接口,DataFrames API可以用來與數據交互使用Java, Scala, Python和r . SQL類似於HiveQL火花。

都使用ANSI SQL語法,和大多數的蜂巢功能將運行在磚。這包括蜂巢為日期/時間轉換和解析函數,集合,字符串處理,數學運算和條件的函數。

有些函數具體蜂巢需要轉換成等價的火花的SQL,或者在火花SQL數據磚是不存在的。你可以期望所有HiveQL ANSI SQL語法和火花SQL數據磚。

這包括ANSI SQL聚集和分析功能。蜂巢是優化的優化排柱狀(獸人)文件格式還支持拚花。磚鋪和δ優化,但也支持獸人。我們總是建議使用δ,它使用開源鑲花的文件格式。

Apache蜂巢和很快

項目最初建立在Facebook, PrestoDB,俗稱很快,是一個分布式的SQL查詢引擎,允許用戶快速處理和分析海量數據的速度。轉眼間的基礎設施支持關係數據庫和非關係數據庫的集成從MySQL和Teradata MongoDB和卡桑德拉。

額外的資源

回到術語表
Baidu
map