學習Hive和Impala必看經典解析


Hive和Impala作爲數據查詢工具,它們是怎樣來查詢數據的呢?與Impala和Hive進行交互,我們有哪些工具可以使用呢?

我們首先明確HiveImpala分別提供了對應查詢的接口:

(1)命令行shell

1、 Impalaimpala shell

2、 Hivebeeline(早期hive的命令行版本是hive shell,現在基本不使用)

(2)Hue Web UI

 1.Hue裏面提供了 Hive查詢編輯器

2.Hue裏面提供了Impala查詢編輯器

3.Hue裏面提供了元數據管理器,可以直接對元數據進行訪問。

3)提供了JDBCODBC支持

下面進行具體介紹:

一、Impala

(1)使用Impala shell

Impala shell是類似於MySQL的交互式工具,可以直接在終端啓動Impala shell,但是Impala shell在哪裏啓動很有講究。Impala本身是分佈式的架構,它的Impalad是在每個slave節點中的。那麼Impala按照如下這種情況直接執行的話肯定是在slave節點中運行的。

wKioL1hkv4_TrMN6AACnWw5_3po611.png-wh_50

如果不是在slave節點中運行的話,可以指定它的server,像如下這種方式,通過—i的參數,指定21000端口執行。

wKiom1hkv5vjt8qQAABdJUftXlU853.png-wh_50

   Impala shell和所有的SQL一樣,輸入分號作爲語句的結束,使用quit命令退出shell。如果需要查看幫助的話使用impala-shell --help查看完整的選項列表。因爲任何的工具它的參數都是很多的,一定要習慣和學會使用幫助去找到自己想要的一些參數,然後去解決一些複雜數據的分析和處理。

Impala shell裏面執行查詢的示例:

wKiom1hkv6vzYi92AAFZNJdkEuA294.png-wh_50

(2)Impala與操作系統進行交互

Impala裏面,我們有時候需要去執行一些Linux的命令,比如查詢日期,遠程連接,訪問目錄數據等,我們不需要退出Impala shell,直接操作就可以,比如:

wKioL1hkv7qirGzNAAA6YMVJVjo018.png-wh_50

但是Impala不直接支持HDFS命令,但是可以使用shell運行hdfs dfs命令去創建一個目錄,如下:

wKiom1hkv8zTg2mmAAA5kcPLOFc819.png-wh_50

(3)從命令行運行Impala查詢,可以不用登陸Impala shell就可以執行,如:

1、         使用-f選項來執行包含查詢的文件

wKioL1hkv96SazHrAAAHSFkBnZk507.png-wh_50

2、         使用-q選項直接在命令行運行查詢

wKiom1hkv_LQVkqjAAAHue8HSSY024.png-wh_50

3、         使用-o來將結果輸出到文件

wKioL1hkv_7QsO_zAAAN471mgLA206.png-wh_50

 

二、Hive

1)啓動beeline

Hive shellHive早期版本,現在使用Beeline shell,跟Impala shell相似,但是它是基於JDBCODBC,如果需要使用Beeline的話,需要去啓動Hive2,通過爲Hive2服務器指定URL來啓動Beeline,這個時候還需要根據需要指定用戶名和密碼,如下:

wKioL1hkwByDIvjHAAB2HOsV2q4667.png-wh_50

2)在Beeline執行查詢

SQL一樣以分號結束,執行查詢和Impala shell類似,但結果格式有少許不同,如:

wKiom1hkwDKQMuPEAAEV6z9Pa74192.png-wh_50

3)使用Beeline

和其他工具有一些不同,執行查詢都是正常的SQL輸入,但是如果是一些管理的命令,比如進行連接,中斷,退出,執行Beeline命令需要帶上“!”,不需要終止符。常用命令介紹:

1!connect url 連接不同的Hive2服務器

2!exit 退出shell

3!help 顯示全部命令列表

4!verbose 顯示查詢追加的明細

示例:

wKioL1hkwFigOM55AAAIJCmNVHY999.png-wh_50

4)從命令行執行Hive查詢

1、使用-f選項來執行包含HiveQL代碼的文件

wKiom1hkwGmTEXsLAAAG6o2us28331.png-wh_50

2、使用-e選項直接在命令行運行HiveQL

wKioL1hkwI_jSLprAAAH30ck2zQ110.png-wh_50

3、使用--silent來阻止通知的消息輸出,也可以和-e-f選項一起使用

wKioL1hkwJ6B40q5AAAF-LFE4eY065.png-wh_50

 

三、Hue

1)通過Hue訪問HiveImpala,它們各自都有editors,在Huequery editors裏面我們可以找到HiveImpala的一些工具,

如下:

wKioL1hkwLKxAQdcAAB7nvNthQs179.png-wh_50

以及元數據庫我們可以在Data Browsers裏面可以看到它的一些工具,如:

wKiom1hkwMPjVt6MAABKKT-1Qxg030.png-wh_50

2Hue查詢編輯器,查詢ImpalaHive查詢編輯器幾乎相同,具體操作示意:

wKiom1hkwNCCYSZRAAHWtFCRJaA357.png-wh_50

ImpalaHive進行交互,以上就是我們可以利用和使用的工具,但是在實際的操作中我們還需要加強自己的實戰能力才能更好的去掌握和理解。大數據作爲當下還在不斷完善發展的技術,需要每一位想要從事和已經從事它的人員不斷去學習和積累,更需要去交流和分享,共同進步。“大數據cn”、“大數據時代學習中心”是我平時自己在自主學習過程中找到微信服務號,裏面介紹的關於大數據的知識以及大數據發展的一些行業知識都很不錯,平常大家可以看看。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章