大資料- Hive

來源:互聯網
上載者:User

標籤:

構建在Hadoop之上的資料倉儲,資料計算使用MR,資料存放區使用HDFS        因為資料計算使用mapreduce,因此通常用於進行離線資料處理Hive 定義了一種類 SQL 查詢語言——HQL        類似SQL,但不完全相同可認為是一個HQL-->MR的語言翻譯器。簡單,容易上手
有了Hive,還需要自己寫MR程式嗎?        Hive的HQL表達的能力有限                迭代式演算法無法表達                有些複雜運算用HQL不易表達        Hive效率較低                Hive自動產生MapReduce作業,通常不夠智能;                HQL調優困難,粒度較粗                可控性差
Hive各模組組成        使用者介面                包括 CLI,JDBC/ODBC,WebUI        中繼資料存放區(metastore)                預設儲存在內建的資料庫derby中,線上使用時一般換為MySQL        磁碟機(Driver)                解譯器、編譯器、最佳化器、執行器        Hadoop                用 MapReduce 進行計算,用 HDFS 進行儲存
Hive部署架構-實驗環境

Hive部署架構-生產環境

資料模型
Partition 和Bucket 
Partition        為減少不必要的暴力資料掃描,可以對錶進行分區        為避免產生過多小檔案,建議只對離散欄位進行分區Bucket        對於值較多的欄位,可將其分成若干個Bucket        可結合Partition與Bucket使用
select語句        不支援having和exist in操作, 可轉換為LEFT SEMI JOIN操作        Join(僅支援等值串連),不支援非等值的串連
Order by和Sort by 
Order by        啟動一個reduce task        資料全域有序        速度可能會非常慢        Strict模式下,必須與limit連用Sort by        可以有多個reduce task        每個Reduce Task內部資料有序,但全域無序        通常與distribute by
Distribute by與Cluster bydistribute by        相當於MapReduce中的paritioner,預設是基於hash實現的;        與sort by連用,可發揮很好的作用cluster by        當distribute by與sort by(降序)連用,且跟隨的欄位 相同時,可使用cluster by簡寫;
使用者自訂函數UDF:擴充HQL能力的一種方式
HQL支援索引嗎?        HQL執行過程主要是並行地暴力掃描。目前Hive僅支援單表索引,但提供了索引建立介面和調用方法,可由使用者根據需要實現索引結構;HQL支援update操作嗎?        不支援。Hive底層是HDFS,HDFS僅支援追加操作,不支援隨機寫;Skew Data處理機制?        指定skew 列:CREATE TABLE list_bucket_single (key STRING, value STRING) SKEWED BY (key) ON (1,5,6);        為skew task分配更多資源(TODO)        將skew task分解成多個task,再合并結果(TODO)
Hive On HBase使用HQL處理HBase中的資料        比直接通過HBase API存取資料方便;        但效能更低,相當於把線上處理轉為批處理存在問題        不夠成熟;        不能按時間戳記擷取資料,預設總是取最新的資料
Hive的類似系統Stinger        下一代Hive被稱為“Stinger”,其底層的計算引擎將由Tez替換MapReduce;        Tez相比於MapReduce具有眾多優勢:                提供了多種運算元(比如Map、Shuffle等)供使用者使用;                將多個作業合并成一個作業,減少磁碟讀寫IO;                充分利用記憶體資源。
Shark        Hive On Spark(http://spark.incubator.apache.org/);        Spark是一個記憶體計算架構,相比於MapReduce,效率更加高效(部分測試表明,速度快100x);        Shark完全相容Hive,底層計算引擎採用Spark。
Impala        底層計算引擎不再採用MR,而是使用與商用並行關聯式資料庫類似的分散式查詢引擎;
效能比較




大資料- Hive

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.