Change Dir

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

          統(tǒng)計

          留言簿(18)

          積分與排名

          “牛”們的博客

          各個公司技術(shù)

          我的鏈接

          淘寶技術(shù)

          閱讀排行榜

          評論排行榜

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

          hive.exec.script.maxerrsize:一個map/reduce任務(wù)允許打印到標(biāo)準(zhǔn)錯誤里的最大字節(jié)數(shù),為了防止腳本把分區(qū)日志填滿,默認(rèn)是100000;

          hive.exec.script.allow.partial.consumption:hive是否允許腳本不從標(biāo)準(zhǔn)輸入中讀取任何內(nèi)容就成功退出,默認(rèn)關(guān)閉false;

          hive.script.operator.id.env.var:在用戶使用transform函數(shù)做自定義map/reduce時,存儲唯一的腳本標(biāo)識的環(huán)境變量的名字,默認(rèn)HIVE_SCRIPT_OPERATOR_ID;

          hive.exec.compress.output:控制hive的查詢結(jié)果輸出是否進(jìn)行壓縮,壓縮方式在hadoop的mapred.output.compress中配置,默認(rèn)不壓縮false;

          hive.exec.compress.intermediate:控制hive的查詢中間結(jié)果是否進(jìn)行壓縮,同上條配置,默認(rèn)不壓縮false;

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

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

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

          hive.task.progress:控制hive是否在執(zhí)行過程中周期性的更新任務(wù)進(jìn)度計數(shù)器,開啟這個配置可以幫助job tracker更好的監(jiān)控任務(wù)的執(zhí)行情況,但是會帶來一定的性能損耗,當(dāng)動態(tài)分區(qū)標(biāo)志hive.exec.dynamic.partition開啟時,本配置自動開啟;

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

          hive.exec.post.hooks:同上,執(zhí)行后鉤子,默認(rèn)是空;

          hive.exec.failure.hooks:同上,異常時鉤子,在程序發(fā)生異常時執(zhí)行,默認(rèn)是空;

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

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

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

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

          hive.mapjoin.check.memory.rows:在運算了多少行后執(zhí)行內(nèi)存使用量檢查,默認(rèn)100000;

          hive.heartbeat.interval:發(fā)送心跳的時間間隔,在mapjoin和filter操作中使用,默認(rèn)1000;

          hive.auto.convert.join:根據(jù)輸入文件的大小決定是否將普通join轉(zhuǎn)換為mapjoin的一種優(yōu)化,默認(rèn)不開啟false;

          hive.script.auto.progress:hive的transform/map/reduce腳本執(zhí)行時是否自動的將進(jìn)度信息發(fā)送給TaskTracker來避免任務(wù)沒有響應(yīng)被誤殺,本來是當(dāng)腳本輸出到標(biāo)準(zhǔn)錯誤時,發(fā)送進(jìn)度信息,但是開啟該項后,輸出到標(biāo)準(zhǔn)錯誤也不會導(dǎo)致信息發(fā)送,因此有可能會造成腳本有死循環(huán)產(chǎn)生,但是TaskTracker卻沒有檢查到從而一直循環(huán)下去;

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

          hive.script.recordreader:從腳本讀數(shù)據(jù)的時候的默認(rèn)reader,默認(rèn)是org.apache.hadoop.hive.ql.exec.TextRecordReader;

          hive.script.recordwriter:寫數(shù)據(jù)到腳本時的默認(rèn)writer,默認(rèn)org.apache.hadoop.hive.ql.exec.TextRecordWriter;

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

          hive.udtf.auto.progress:UDTF執(zhí)行時hive是否發(fā)送進(jìn)度信息到TaskTracker,默認(rèn)是false;

          hive.mapred.reduce.tasks.speculative.execution:reduce任務(wù)推測執(zhí)行是否開啟,默認(rèn)是true;

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

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

          hive.enforce.sorting:開啟強(qiáng)制排序時,插數(shù)據(jù)到表中會進(jìn)行強(qiáng)制排序,默認(rèn)false;

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

          hive.exec.dynamic.partition:在DML/DDL中是否支持動態(tài)分區(qū),默認(rèn)false;

          hive.exec.dynamic.partition.mode:默認(rèn)strict,在strict模式下,動態(tài)分區(qū)的使用必須在一個靜態(tài)分區(qū)確認(rèn)的情況下,其他分區(qū)可以是動態(tài);

          hive.exec.max.dynamic.partitions:動態(tài)分區(qū)的上限,默認(rèn)1000;

          hive.exec.max.dynamic.partitions.pernode:每個mapper/reducer節(jié)點可以創(chuàng)建的最大動態(tài)分區(qū)數(shù),默認(rèn)100;

          hive.exec.max.created.files:一個mapreduce作業(yè)能創(chuàng)建的HDFS文件最大數(shù),默認(rèn)是100000;

          hive.exec.default.partition.name:當(dāng)動態(tài)分區(qū)啟用時,如果數(shù)據(jù)列里包含null或者空字符串的話,數(shù)據(jù)會被插入到這個分區(qū),默認(rèn)名字是__HIVE_DEFAULT_PARTITION__;

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

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

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

          評論

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

          解釋比較詳細(xì)的啊  回復(fù)  更多評論   

          主站蜘蛛池模板: 明光市| 明溪县| 婺源县| 申扎县| 八宿县| 达拉特旗| 麻阳| 济阳县| 绵竹市| 灵山县| 银川市| 霍林郭勒市| 宣化县| 资溪县| 招远市| 射阳县| 浦江县| 达拉特旗| 武功县| 同心县| 安阳县| 信阳市| 尤溪县| 清水河县| 北辰区| 米林县| 鄄城县| 莫力| 梅州市| 乌拉特中旗| 克什克腾旗| 古浪县| 长岭县| 西林县| 南郑县| 鄂伦春自治旗| 陆川县| 永城市| 志丹县| 汉沽区| 岢岚县|