Hive参数
hive当中的参数、变量,都是以命名空间开头
通过${}方式进行引用,其中system、env下的变量必须以前缀开头
hive 参数设置方式
1、修改配置文件 ${HIVE_HOME}/conf/hive-site.xml
2、启动hive cli时,通过--hiveconf key=value的方式进行设置
例:hive --hiveconf hive.cli.print.header=true
3、进入cli之后,通过使用set命令设置 set hive.cli.print.header=true;
hive set命令
在hive CLI控制台可以通过set对hive中的参数进行查询、设置
set设置:
set hive.cli.print.header=true;
set查看
set hive.cli.print.header
hive参数初始化配置
当前用户家目录下的.hiverc文件
如: ~/.hiverc
如果没有,可直接创建该文件,将需要设置的参数写到该文件中,hive启动运行时,会加载改文件中的配置。
hive历史操作命令集
~/.hivehistory
Hive 动态分区
开启支持动态分区
set hive.exec.dynamic.partition=true;
默认:false
set hive.exec.dynamic.partition.mode=nostrict;
默认:strict(至少有一个分区列是静态分区)
相关参数
set hive.exec.max.dynamic.partitions.pernode;
每一个执行mr节点上,允许创建的动态分区的最大数量(100)
set hive.exec.max.dynamic.partitions;
所有执行mr节点上,允许创建的所有动态分区的最大数量(1000)
set hive.exec.max.created.files;
所有的mr job允许创建的文件的最大数量(100000)
加载数据
先建立原始表,load数据到原始表,然后从原始表向分区表导数据。
from psn21
insert overwrite table psn22 partition(age, sex)
select id, name, age, sex, likes, address distribute by age, sex;
样例步骤
1.data3
1,bob,12,boy,lol-book-movie,beijing:shangxuetang-sahanghai:pudong 1,tob,13,boy,lol-book-movie,beijing:shangxuetang-sahanghai:pudong 1,mary,girl,13,lol-book-movie,beijing:shangxuetang-sahanghai:pudong 1,lily,girl,14,lol-book-movie,beijing:shangxuetang-sahanghai:pudong 1,susan,girl,22,lol-book-movie,beijing:shangxuetang-sahanghai:pudong 1,jim,66,boy,lol-book-movie,beijing:shangxuetang-sahanghai:pudong 1,tom,55,boy,lol-book-movie,beijing:shangxuetang-sahanghai:pudong 1,jack,34,boy,lol-book-movie,beijing:shangxuetang-sahanghai:pudong
2.建原始表
CREATE TABLE psn21( id INT, name STRING, age INT, sex STRING, likes ARRAY<STRING>, address MAP<STRING,STRING> ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' COLLECTION ITEMS TERMINATED BY '-' MAP KEYS TERMINATED BY ':' LINES TERMINATED BY '\n';
3.建分区表
CREATE TABLE psn22 ( id INT, name STRING, likes ARRAY<STRING>, address MAP<STRING,STRING> ) partitioned by (age int,sex string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' COLLECTION ITEMS TERMINATED BY '-' MAP KEYS TERMINATED BY ':' LINES TERMINATED BY '\n';
4.导入原始表
load data local inpath '/root/data3' into table psn21
5.导入分区表
set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nostrict; from psn21 insert overwrite table psn22 partition(age,sex) select id,name ,likes ,address ,age,sex distribute by age,sex;
hive运行方式
命令行方式cli:控制台模式
脚本运行方式(实际生产环境中用最多)
JDBC方式:hiveserver2
web GUI接口 (hwi、hue等)