天天看點

【Hive】Hive 基礎

hive架構:

【Hive】Hive 基礎

hive基礎

1 概念

1.1 簡介

1.1.1 hive是基于hadoop的一個資料倉庫工具,可以将結構化的資料檔案映射為一張資料庫表, 并提供簡單的sql查詢功能,可以将sql語句轉換為mapreduce任務進行運作。--olap

1.2 背景

1.2.1 olap邏輯和sql一樣大體一緻,可以将這些邏輯轉化為對應的mr,不需要每種類型的查詢分析都重複寫mr

1.2.2 facebook開發通用的mr程式架構,對外使用sql接口,架構就是hive

1.3 官網

1.3.1 http://hive.apache.org/

1.4 原理

1.4.1 建表

1.4.1.1 hive儲存中繼資料

1.4.1.1.1 可以使用mysql

1.4.1.2 指定hdfs檔案路徑

1.4.2 sql查詢

1.4.2.1 compiler編譯器比對mr模闆,生成mr執行個體

1.4.2.2 mr執行器

1.4.2.2.1 送出運作mr,傳回輸出

1.4.3 問題

1.4.3.1 hive采用的方法是将sql查詢轉化成mapreduce任務,這導緻hive的性能很差。 而且,hive隻能支援不到30%的sql分析功能

1.5 同類産品

1.5.1 impala

1.5.1.1 使用mpp并行資料庫思想,完全抛棄了mapreduce這個不太适合做sql查詢的範式。 比基于mapreduce的hivesql查詢速度提升3~30倍。支援hdfs、hbase作為存儲引擎。

1.5.1.2 http://baike.baidu.com/link?url=wjjdggrc150mjrw_jx53p8aedlotvwi7ho6p31ckjamq 2v7p6mevkrllluyvqxi7p_gusn3du2jf4detmy1t-q

1.5.1.3 http://www.ctocio.com/bigdata/9236.html

1.5.2 drill

1.5.2.1 impala僅支援cdh,drill建構在hadoop通用版本之上

1.5.3 spark shark

1.5.3.1 shark為了實作hive相容,在hql方面重用了hive中hql的解析、邏輯執行計劃翻譯、 執行計劃優化等邏輯,可以近似認為僅将實體執行計劃從mr作業替換成了spark作業

1.5.3.2 http://zhidao.baidu.com/link?url=ksali5bexln9hvhfp4mabsq2xspwdllf89-sgzlwz1laouo opmjwggs0w-eahovbaxgymsxbi5kjyxfrj1sv1mc_xtw0bn2hf96nf8zdhcu

1.5.4 spark sql

1.5.5 cassandra

1.5.5.1 http://baike.baidu.com/link?url=vqqi3df9gqb6pnudacglzz6ncgrvlovoa0mtxgdeqiawcy22yt2ftyrjkv perns6uymhvkrwmtlcb_312cmg9a

1.5.6 presto

1.5.6.1 http://www.linuxidc.com/linux/2015-07/119958.htm

1.5.6.2 http://prestodb-china.com/

1.5.7 如何選擇?

1.5.7.1 http://stackoverflow.com/questions/17113964/comparing-cassandras-cql-vs-spark- shark-queries-vs-hive-hadoop-dse-version

1.5.7.2 http://blog.163.com/xiaoji0106@126/blog/static/136134661201411322353856/

1.5.7.3 http://blog.sina.com.cn/s/blog_6277623c0102vnq2.html

1.5.7.4 http://blog.chinaunix.net/uid-29242841-id-4030543.html

1.5.7.5 https://www.zhihu.com/question/41541395

繼續閱讀