中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hive運維中hive-site文件的示例分析

發布時間:2021-12-10 10:37:54 來源:億速云 閱讀:127 作者:小新 欄目:云計算

小編給大家分享一下Hive運維中hive-site文件的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

0. hive設置的優先級(從高到低):

1. Hive set命令。

2. 命令行選擇 -hiveconf

3. hive-site.xml

4. hive-default.xml

5. hadoop-site.xml(或者是core-site.xml   hdfs-site.xml  mapred-site.xml)

6. hadoop-default.xml(或者是core-default.xml   hdfs-default.xml  mapred-default.xml)。

7. hive的日志信息存放在 /tmp/$USER/hive.log,出錯時hadoop的mapred task logs也可以查看,本環境在/tmp/nslab下查看。

     命令:hive  -hiveconf  hive.root.logger=DEBUG,console  將調試信息打印到控制臺。

使用set的使用

1. 使用set查看設置的值:

       set hive.enforce.bucketing

2. 只輸入一個set,會列出所有的設置。

3. 設置新的屬性,格式類似下面:

     set  hive.enforce.bucketing=true;

1. 動態分區:

hive.exec.dynamic.partition

是否打開動態分區。

默認:false

hive.exec.dynamic.partition.mode

打開動態分區后,動態分區的模式,有 strict 和 nonstrict 兩個值可選,strict 要求至少包含一個靜態分區列,nonstrict 則無此要求。

默認:strict

hive.exec.max.dynamic.partitions

所允許的最大的動態分區的個數。

默認:1000

hive.exec.max.dynamic.partitions.pernode

單個 reduce 結點所允許的最大的動態分區的個數。

默認:100

hive.exec.default.partition.name

默認的動態分區的名稱,當動態分區列為''或者null時,使用此名稱。''

2. 打印列名, 開啟行轉列(有待測試)

set hive.cli.print.header=true;            // 打印列名

set hive.cli.print.row.to.vertical=true;   // 開啟行轉列功能, 前提必須開啟打印列名功能

set hive.cli.print.row.to.vertical.num=1; // 設置每行顯示的列數

3. 查看hive版本:

set hive.hwi.war.file;

4. 查看hive命令行字符編碼:

hive.cli.encoding

Hive 默認的命令行字符編碼。

默認: 'UTF8'

5. Hive  Fetch Task執行:

set hive.fetch.task.conversion=more;

對于簡單的不需要聚合的類似SELECT <col> from <table> LIMIT n語句,不需要起MapReduce job,直接通過Fetch task獲取數據(數據量過大, 也能 無 返回結果)

類似linux的vi,直接對文本進行操作。

也有點類似shark的列存儲的操作: 放在同一個array里面,所以查詢數據很快

hive.fetch.task.conversion

Hive 默認的mapreduce操作

默認: minimal

6. MapJoin

舊版本HIVE需要自行在查詢/子查詢的SELECT關鍵字后面添加/*+ MAPJOIN(tablelist) */提示優化器轉化為MapJoin。高版本只需設置:

set hive.auto.convert.join=true;  

HIVE自行選擇小表作為LEFT的左表。

7. Strict Mode:

hive.mapred.mode=true,嚴格模式不允許執行以下查詢:

分區表上沒有指定了分區

沒有limit限制的order by語句

笛卡爾積:JOIN時沒有ON語句

8. 并發執行任務:

設置該參數是控制在同一個sql中的不同的job是否可以同時運行,默認是false

hive.exec.parallel=true ,默認為false

hive.exec.parallel.thread.number=8

9. 負載均衡

hive.groupby.skewindata=true:數據傾斜時負載均衡,當選項設定為true,生成的查詢計劃會有兩個MRJob。第一個MRJob 中,

Map的輸出結果集合會隨機分布到Reduce中,每個Reduce做部分聚合操作,并輸出結果,這樣處理的結果是相同的GroupBy Key

有可能被分發到不同的Reduce中,從而達到負載均衡的目的;第二個MRJob再根據預處理的數據結果按照GroupBy Key分布到

Reduce中(這個過程可以保證相同的GroupBy Key被分布到同一個Reduce中),最后完成最終的聚合操作。

10. hive.exec.rowoffset:是否提供虛擬列

11.  set hive.error.on.empty.partition=true;  那么動態分區如果為空,則會報異常

    set hive.error.on.empty.partition = true;
    set hive.exec.dynamic.partition.mode=nonstrict; 
 

   參考地址: http://my.oschina.net/repine/blog/541380

12. hive.merge.mapredfiles:合并小文件

    工作需要合并reduce產生文件:

    set hive.merge.smallfiles.avgsize=67108864;
    set hive.merge.mapfiles=true;
    set hive.merge.mapredfiles=true;
 

    參考地址: http://www.linuxidc.com/Linux/2015-06/118391.htm

1.先在hive-site.xml中設置小文件的標準. 

<property>
  <name>hive.merge.smallfiles.avgsize</name>
  <value>536870912</value>
  <description>When the average output file size of a job is less than this number, Hive will start an additional map-reduce job to merge the output files into bigger files.  This is only done for map-only jobs if hive.merge.mapfiles is true, and for map-reduce jobs if hive.merge.mapredfiles is true.</description>
</property>

2.為只有map的mapreduce的輸出并合并小文件.

<property>
  <name>hive.merge.mapfiles</name>
  <value>true</value>
  <description>Merge small files at the end of a map-only job</description>
</property>

3.為含有reduce的mapreduce的輸出并合并小文件.

<property>
  <name>hive.merge.mapredfiles</name>
  <value>true</value>
  <description>Merge small files at the end of a map-reduce job</description>
</property>

以上是“Hive運維中hive-site文件的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

杭锦旗| 夏津县| 八宿县| 习水县| 白玉县| 华坪县| 宁乡县| 孝感市| 孙吴县| 宝鸡市| 鹿邑县| 北京市| 湛江市| 克山县| 美姑县| 光泽县| 冕宁县| 高平市| 明溪县| 绿春县| 高尔夫| 葫芦岛市| 贡觉县| 嘉义市| 泰州市| 开封市| 镇远县| 平塘县| 祁连县| 故城县| 石楼县| 锦州市| 邢台县| 卓尼县| 商洛市| 凤翔县| 柳江县| 抚远县| 香河县| 天柱县| 长子县|