impala 遇到的坑

文章原文連接 http://www.bbgo.xyz/accounts/...shell

一、儘可能少使用 invalidate metadata,儘可能用REFRESH TABLE_NAME;
二、set APPX_COUNT_DISTINCT=true 與 ndv 函數是同樣的,都只是估值函數

Impala SQL 不支持的一個查詢中的多個聚合函數使用 DISTINCT
如:select count(distinct id),count(distinct uid) from table;執行會報錯
impala 提供了 ndv 函數 及 set APPX_COUNT_DISTINCT=true 參數。但這兩個都不是精確值

三、impala 保存含中文結果到文件oop

impala-shell -i hadoop07 -B -q 'select "我" from dual' -o result.txt
這個太坑了
修改  /data/cloudera/parcels/CDH-5.6.0-1.cdh5.6.0.p0.45/bin/../lib/impala-shell/impala_shell.py
添加
# coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

而後修改:
query = self.imp_client.create_beeswax_query("select %s" % args,self.set_query_options)
爲
 query = self.imp_client.create_beeswax_query("select %s" % (args.encode('utf-8')),self.set_query_options)

四、impala 內存限制問題,超出內存查詢任務就被殺死ui

這個猜想有兩種可能:
一、就是的確集羣的內存不足就該加內存了
二、就是集羣中內存足夠,只是impala在生成查詢計劃時,計算的內存使用量比實際須要量小,這個對依賴的表都加上 compute stat 語句,這樣impala 在生成查詢計劃時就能更準確的計算資源使用量
Memory Limit Exceeded
Query(f14d4983f27e4bc9:aef735d6523a7eb7) Limit: Consumption=7.51 GB

五、 impala not in 爲 0,3d

就是在使用 not in 語句時獲得的結果爲 0 ,但實際上並非
 緣由是表中 in 的字段有 null 值
 PS:impala這個真是坑死我了

六、cdh impala 添加 Llama服務的坑code

添加此服務是 Llama 會修改 /yarn/nm/usercache/ 目錄的權限,致使hive及mr都執行不了,由於 yarn 須要此目錄的讀寫權限,不事後來改了權限仍是老有問題,乾脆就撤掉此服務

七、Impala compute stats內存

老是遇到問題,猜想是由於元數據刷新延遲的問題,暫時在 compute status前添加 sleep 5s
相關文章
相關標籤/搜索