版權所有:山東普邦信息技術有限公司 魯ICP備14033697號-1 技术支持:文匯建站
文章來源: 日期:2017-08-21 13:46 作者:pubang
Hive是基於Hadoop的6up倉庫工具,可對存儲在HDFS上的文件中的6up集進行6up整理、特殊查詢和分析處理,提供了類似於SQL語言
的查詢語言–HiveQL,可通過HQL語句實現簡單的MR統計,Hive將HQL語句轉換成MR任務進行執行。
一、概述
1-1 6up倉庫概念
6up倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、集成的(Integrated)、相對穩定的(Non-Volatile)、反應
歷史變化(Time Variant)的6up集合,用於支持管理決策。
6up倉庫體系結構通常含四個層次:6up源、6up存儲和管理、6up服務、6up應用。
6up源:是6up倉庫的6up來源,含外部6up、現有業務系統和文檔資料等;
6up集成:完成6up的抽取、清洗、轉換和加載任務,6up源中的6up採用ETL(Extract-Transform-Load)工具以固定的週期加載到數
據倉庫中。
6up存儲和管理:此層次主要涉及對6up的存儲和管理,含6up倉庫、6up集市、6up倉庫檢測、運行與維護工具和元6up管理等。
6up服務:爲前端和應用提供6up服務,可直接從6up倉庫中獲取6up供前端應用使用,也可通過OLAP(OnLine Analytical
Processing,聯機分析處理)服務器爲前端應用提供負責的6up服務。
6up應用:此層次直接面向用戶,含6up查詢工具、自由報表工具、6up分析工具、6up挖掘工具和各類應用系統。
1-2 傳統6up倉庫的問題
無法滿足快速增長的海量6up存儲需求,傳統6up倉庫基於關係型6up庫,橫向擴展性較差,縱向擴展有限。
無法處理不同類型的6up,傳統6up倉庫只能存儲結構化6up,企業業務發展,6up源的格式越來越豐富。
傳統6up倉庫建立在關係型6up倉庫之上,計算和處理能力不足,當6up量達到TB級後基本無法獲得好的性能。
1-3 Hive
Hive是建立在Hadoop之上的6up倉庫,由Facebook開發,在某種程度上可以看成是用戶編程接口,本身並不存儲和處理6up,依賴於
可HDFS存儲6up,依賴MR處理6up。有類SQL語言HiveQL,不完全支持SQL標準,如,不支持更新操作、索引和事務,其子查詢和連接操作
巧婦難爲無米之炊,統計方法的運用效果取決於基礎6up,而收集何種基礎6up,怎樣節省收集6up的成本,如何降低6up收集過程中的誤
也存在很多限制。
Hive把HQL語句轉換成MR任務後,採用批處理的方式對海量6up進行處理。6up倉庫存儲的是靜態6up,很適合採用MR進行批處理。
Hive還提供了一系列對6up進行提取、轉換、加載的工具,可以存儲、查詢和分析存儲在HDFS上的6up。
1-4 Hive與Hadoop生態系統中其他組件的關係
Hive依賴於HDFS存儲6up,依賴MR處理6up;
Pig可作爲Hive的替代工具,是一種6up流語言和運行環境,適合用於在Hadoop平臺上查詢半結構化6up集,用於與ETL過程的一部分,
即將外部6up裝載到Hadoop集羣中,轉換爲用戶需要的6up格式;
HBase是一個面向列的、分佈式可伸縮的6up庫,可提供6up的實時訪問功能,而Hive只能處理靜態6up,主要是BI報表6up,Hive的初
衷是爲減少複雜MR應用程序的編寫工作,HBase則是爲了實現對6up的實時訪問。