學習Hive 三 Hive引數 動態分割槽 分桶

2021-08-27 03:10:02 字數 2873 閱讀 9481

一、hive變數

1、以,hive --service metastore 開啟服務 時:hive --hiveconf hive.cli.print.header=true;開啟服務端。

通過設定這個引數(臨時引數,此方法當前程序有效,配置檔案修改永久有效)開啟。

效果:

2、也可以在正常進入客戶端後,使用set設定:

效果同上。

3、客戶端引數初始化:在家目錄下  .hiverc(沒有的話建立乙個) 寫入配置,set ***=***;這樣即可

在開啟客戶端時會自動載入。

二、hive動態分割槽。

1、支援動態分割槽設定:

2、怎樣載入資料(使用動態分割槽)。

前提hdfs已上傳資料檔案:

首先建立資料表(將檔案資料全部載入):

create  table psn22

(id int,

name string,

age int,

*** string,

likes array,

address map

)row format delimited

fields terminated by ','

collection items terminated by '-'

map keys terminated by ':';

載入檔案資料到資料表:load data  inpath '/usr/test' into table psn22; 

根據需求建立分割槽表:

create table psn23

(id int,

name string,

likes array,

address map

)partitioned by(age int,*** string)

row format delimited

fields terminated by ','

collection items terminated by '-'

map keys terminated by ':';

載入資料表中的資料到分割槽表:

from psn22

insert into psn23 partition(age,***)

select id,name,likes,address,age,***;

注意:在檢視時發現已經不是按照id排序的了,因為會依次開啟各自分割槽載入資料,說以從顯示來說 分區間有序

三、hive分桶。

1、分桶是對列值取hash值的方式將資料放在不同的檔案儲存。

2、hive中的每乙個表、分割槽都可以進行分桶。

3、由列的hash值除以桶的個數來決定將每條資料具體劃分在哪個桶中。

應用場景:抽樣、map-join

1】分桶支援設定:

2】分桶查詢:

例子:前提是已經設定了分桶支援:set

hive.enforce.bucketing

=true;

1、首先準備資料檔案。

2、建立資料表(用於從檔案拉取資料):

create table psn24

(id int,

name string,

age int

)row format delimited

fields terminated by ',';

3、拉取資料:

load data local inpath '/usr/buckets' into table psn24;

4、建立分通表:

create table psn25

(id int,

name string,

age int

)clustered by (age) into 4 buckets

row format delimited

fields terminated by ',';

5,拉取資料到分通表:

insert into psn25 select id,name,age from psn24;

完畢:看起來資料沒有變化:

但是,來看看目錄:分成了四個檔案!

抽樣查詢:select * from psn26 tablesample(bucket x out of y);

x 表是從哪個桶開始讀,如圖中x=2,又因為

所以x=2代表行數餘桶數為1(從0開始的,第二個是1)。桶數為4,所以資料為元資料中行數,3、7的行。

注意y 必須為桶數的因子或倍數。

Hive學習筆記 Hive 引數

第一部分 hive 引數 hive.exec.max.created.files 說明 所有hive執行的map與reduce任務可以產生的檔案的和 預設值 100000 hive.exec.dynamic.partition 說明 是否為自動分割槽 預設值 false hive.mapred.re...

Hive(九) Hive引數配置方式

總結預設配置檔案 hive default.xml 使用者自定義配置檔案 hive site.xml 注意 使用者自定義配置會覆蓋預設配置。另外,hive也會讀入hadoop的配置,因為hive是作為hadoop的客戶端啟動的,hive的配置會覆蓋hadoop的配置。配置檔案的設定對本機啟動的所有h...

hive常用引數

hive 引數 hive.exec.max.created.files 說明 所有hive執行的map與reduce任務可以產生的檔案的和 預設值 100000 hive.exec.dynamic.partition 說明 是否為自動分割槽 預設值 false hive.mapred.reduce....