Change Dir

          先知cd——熱愛生活是一切藝術的開始

          統計

          留言簿(18)

          積分與排名

          “牛”們的博客

          各個公司技術

          我的鏈接

          淘寶技術

          閱讀排行榜

          評論排行榜

          Hive配置項的含義詳解(3)

          hive.exec.script.maxerrsize:一個map/reduce任務允許打印到標準錯誤里的最大字節數,為了防止腳本把分區日志填滿,默認是100000;

          hive.exec.script.allow.partial.consumption:hive是否允許腳本不從標準輸入中讀取任何內容就成功退出,默認關閉false;

          hive.script.operator.id.env.var:在用戶使用transform函數做自定義map/reduce時,存儲唯一的腳本標識的環境變量的名字,默認HIVE_SCRIPT_OPERATOR_ID;

          hive.exec.compress.output:控制hive的查詢結果輸出是否進行壓縮,壓縮方式在hadoop的mapred.output.compress中配置,默認不壓縮false;

          hive.exec.compress.intermediate:控制hive的查詢中間結果是否進行壓縮,同上條配置,默認不壓縮false;

          hive.exec.parallel:hive的執行job是否并行執行,默認不開啟false,在很多操作如join時,子查詢之間并無關聯可獨立運行,這種情況下開啟并行運算可以大大加速;

          hvie.exec.parallel.thread.number:并行運算開啟時,允許多少作業同時計算,默認是8;

          hive.exec.rowoffset:是否提供行偏移量的虛擬列,默認是false不提供,Hive有兩個虛擬列:一個是INPUT__FILE__NAME,表示輸入文件的路徑,另外一個是BLOCK__OFFSET__INSIDE__FILE,表示記錄在文件中的塊偏移量,這對排查出現不符合預期或者null結果的查詢是很有幫助的(來自這篇文章);

          hive.task.progress:控制hive是否在執行過程中周期性的更新任務進度計數器,開啟這個配置可以幫助job tracker更好的監控任務的執行情況,但是會帶來一定的性能損耗,當動態分區標志hive.exec.dynamic.partition開啟時,本配置自動開啟;

          hive.exec.pre.hooks:執行前置條件,一個用逗號分隔開的實現了org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext接口的java class列表,配置了該配置后,每個hive任務執行前都要執行這個執行前鉤子,默認是空;

          hive.exec.post.hooks:同上,執行后鉤子,默認是空;

          hive.exec.failure.hooks:同上,異常時鉤子,在程序發生異常時執行,默認是空;

          hive.mergejob.maponly:試圖生成一個只有map的任務去做merge,前提是支持CombineHiveInputFormat,默認開啟true;

          hive.mapjoin.smalltable.filesize:輸入表文件的mapjoin閾值,如果輸入文件的大小小于該值,則試圖將普通join轉化為mapjoin,默認25MB;

          hive.mapjoin.localtask.max.memory.usage:mapjoin本地任務執行時hash表容納key/value的最大量,超過這個值的話本地任務會自動退出,默認是0.9;

          hive.mapjoin.followby.gby.localtask.max.memory.usage:類似上面,只不過是如果mapjoin后有一個group by的話,該配置控制類似這樣的query的本地內存容量上限,默認是0.55;

          hive.mapjoin.check.memory.rows:在運算了多少行后執行內存使用量檢查,默認100000;

          hive.heartbeat.interval:發送心跳的時間間隔,在mapjoin和filter操作中使用,默認1000;

          hive.auto.convert.join:根據輸入文件的大小決定是否將普通join轉換為mapjoin的一種優化,默認不開啟false;

          hive.script.auto.progress:hive的transform/map/reduce腳本執行時是否自動的將進度信息發送給TaskTracker來避免任務沒有響應被誤殺,本來是當腳本輸出到標準錯誤時,發送進度信息,但是開啟該項后,輸出到標準錯誤也不會導致信息發送,因此有可能會造成腳本有死循環產生,但是TaskTracker卻沒有檢查到從而一直循環下去;

          hive.script.serde:用戶腳本轉換輸入到輸出時的SerDe約束,默認是org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe;

          hive.script.recordreader:從腳本讀數據的時候的默認reader,默認是org.apache.hadoop.hive.ql.exec.TextRecordReader;

          hive.script.recordwriter:寫數據到腳本時的默認writer,默認org.apache.hadoop.hive.ql.exec.TextRecordWriter;

          hive.input.format:輸入格式,默認是org.apache.hadoop.hive.ql.io.CombineHiveInputFormat,如果出現問題,可以改用org.apache.hadoop.hive.ql.io.HiveInputFormat;

          hive.udtf.auto.progress:UDTF執行時hive是否發送進度信息到TaskTracker,默認是false;

          hive.mapred.reduce.tasks.speculative.execution:reduce任務推測執行是否開啟,默認是true;

          hive.exec.counters.pull.interval:運行中job輪詢JobTracker的時間間隔,設置小會影響JobTracker的load,設置大可能看不出運行任務的信息,要去平衡,默認是1000;

          hive.enforce.bucketing:數據分桶是否被強制執行,默認false,如果開啟,則寫入table數據時會啟動分桶,個人對分桶的理解可以參考這篇文章,寫的較清楚,有示例,分桶在做全表查詢和帶有分區字段查詢時感覺影響不大,主要作用在sampling;

          hive.enforce.sorting:開啟強制排序時,插數據到表中會進行強制排序,默認false;

          hive.optimize.reducededuplication:如果數據已經根據相同的key做好聚合,那么去除掉多余的map/reduce作業,此配置是文檔的推薦配置,建議打開,默認是true;

          hive.exec.dynamic.partition:在DML/DDL中是否支持動態分區,默認false;

          hive.exec.dynamic.partition.mode:默認strict,在strict模式下,動態分區的使用必須在一個靜態分區確認的情況下,其他分區可以是動態;

          hive.exec.max.dynamic.partitions:動態分區的上限,默認1000;

          hive.exec.max.dynamic.partitions.pernode:每個mapper/reducer節點可以創建的最大動態分區數,默認100;

          hive.exec.max.created.files:一個mapreduce作業能創建的HDFS文件最大數,默認是100000;

          hive.exec.default.partition.name:當動態分區啟用時,如果數據列里包含null或者空字符串的話,數據會被插入到這個分區,默認名字是__HIVE_DEFAULT_PARTITION__;

          hive.fetch.output.serde:FetchTask序列化fetch輸出時需要的SerDe,默認是org.apache.hadoop.hive.serde2.DelimitedJSONSerDe;

          hive.exec.mode.local.auto:是否由hive決定自動在local模式下運行,默認是false,關于滿足什么條件開啟localmode,可以參考這篇文章

          posted on 2013-09-10 13:45 changedi 閱讀(3962) 評論(1)  編輯  收藏 所屬分類: 數據

          評論

          # re: Hive配置項的含義詳解(3) 2013-09-10 16:22 tb

          解釋比較詳細的啊  回復  更多評論   

          主站蜘蛛池模板: 布拖县| 电白县| 松江区| 曲阜市| 锡林浩特市| 池州市| 黑水县| 弥渡县| 思茅市| 武穴市| 芷江| 桃园县| 贵州省| 会东县| 开封县| 涞水县| 西和县| 含山县| 松桃| 项城市| 纳雍县| 清苑县| 通化市| 昭平县| 康马县| 霍林郭勒市| 靖西县| 黎平县| 荃湾区| 大名县| 河北区| 肃北| 绥德县| 祁连县| 林芝县| 鹿邑县| 扎兰屯市| 沁水县| 琼结县| 寿宁县| 杭锦旗|