日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hive 常见问题与技巧【Updating】

發布時間:2024/1/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hive 常见问题与技巧【Updating】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

1Q: 是否有像類似于phpmyadmin一樣的hive查詢客戶端,能以界面的方式查詢hive語句和導出數據

A: 有的,客戶端的話可以使用squirrel來連接hive,squirrel是一個通用的數據庫查詢客戶端,還有有一個開源項目phphiveadmin也不錯,

web方式訪問hive,這里也有一個hive web client(https://github.com/lalaguozhe/hiveweb-1)

2Q: 執行語句時候,能否控制reducer的個數

A: 可以在執行hive語句之前先?set mapred.reduce.tasks=<number>

3Q: 是否可能在輸出的時候在結果第一行打印列名

A: 可以在執行hive語句之前先?set hive.cli.print.header=true;

4Q: Hive是否支持跨數據庫查詢,比如database arch的table1和database algo的table2 進行join

A: 可以,只要有用戶有這兩張表的select權限即可,用戶需要用“database.table”的方式來指定數據庫下的表

5Q: Hive是否有內置的函數,可以對輸出的數據進行處理

A: Hive提供了豐富的內置函數,參見https://cwiki.apache.org/Hive/languagemanual-udf.html

用戶也可以自己實現自定義的UDF方法來滿足更復雜的查詢需求

6Q: Hive支持exist in么?

A: 不支持,但是可以通過改寫語句達到相同的效果,比如對于查詢語句:

SELECT a.key, a.value FROM a WHERE a.key in (SELECT b.key FROM B);

可以改寫成:

SELECT a.key, a.val

FROM a LEFT SEMI JOIN b on (a.key = b.key)

PS:上述答案過時了,目前 hive 已經支持 in 查詢了。

http://blog.csdn.net/yfkiss/article/details/8073608

7Q:Hive是否支持本地執行模式

A:Hive支持本地執行模式,當數據量小的時候,本地執行比提交到集群上執行效率提升很大

set hive.exec.mode.local.auto=true(默認false)

當一個job滿足如下條件才能真正使用本地模式:

1.job的輸入數據大小必須小于參數hive.exec.mode.local.auto.inputbytes.max(默認值128MB)

2.job的map處理的文件數大于參數hive.exec.mode.local.auto.input.files.max(默認值4)

3.job的reduce數必須為0或者1,不管是用戶設置的還是系統推測出來的

用參數hive.mapred.local.mem(默認0)來設置local mode下mapper和reducer task jvm heap size

8Q: 關鍵詞UNION ALL的用法

A:The number and names of columns returned by each select_statement has to be the same. Otherwise, a schema error is thrown.

UNION ALL兩邊的字段名,和字段數都必須一致,可以用as xxx來統一字段名,并且目前UNION ALL只能作為子查詢。

9Q:hive left outer join的問題:where 與 on 條件的區別

http://blog.csdn.net/lalaguozhe/article/details/9498947

10Q:其它技巧請見:

http://my.oschina.net/leejun2005/blog/121945

11、對于 jar 包調用失敗 NullPointerException 的問題

FAILED: Error in metadata: java.lang.NullPointerException
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

你可能需要再 hive-site.xml 中添加 jar 的路徑:

具體參考:http://abloz.com/2013/03/28/the-hive-execute-statements-times-nullpointerexception.html

<property><name>hive.aux.jars.path</name><value>file:///home/june/soft/hive-0.9.0-bin/lib/hive-json-serde.jar</value> </property>

12、通過偽列定位出錯的原始文件和行號:http://blog.csdn.net/lalaguozhe/article/details/11467593

通常用戶在HIVE中用SELECT語句出來結果,無法確定結果是來自哪個文件或者具體位置信息,HIVE中考慮到了這點,在Virtual Column虛列中可以指定三個靜態列:
1. ?INPUT__FILE__NAME ? ? ? ?map任務讀入File的全路徑
2. ?BLOCK__OFFSET__INSIDE__FILE ? ? ? 如果是RCFile或者是SequenceFile塊壓縮格式文件則顯示Block file Offset,也就是當前快在文件的第一個字偏移量,如果是TextFile,顯示當前行的第一個字節在文件中的偏移量
3. ?ROW__OFFSET__INSIDE__BLOCK ? ? ? ?RCFile和SequenceFile顯示row number, textfile顯示為0
注:若要顯示ROW__OFFSET__INSIDE__BLOCK ,必須設置set hive.exec.rowoffset=true;

select hostname, INPUT__FILE__NAME,BLOCK__OFFSET__INSIDE__FILE,ROW__OFFSET__INSIDE__BLOCK from t_NginxLog where dt='2013-09-01' limit 10;





REF:

Hive 常見問題(持續更新。。。)

http://blog.csdn.net/lalaguozhe/article/details/9081971

hive 0.10 0.11新增特性綜述

http://blog.csdn.net/lalaguozhe/article/details/11730817

hive0.11升級碰到的坑

http://blog.csdn.net/lalaguozhe/article/details/17504761

轉載于:https://my.oschina.net/leejun2005/blog/164249

總結

以上是生活随笔為你收集整理的Hive 常见问题与技巧【Updating】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。