Hive参数和动态分区

调优时,相应的参数配置
修改配置文件
原始数据,动态分区
   设置两个参数,支持动态分区、非严格模式
分区:把数据文件导入到不同目录里去

Hive 参数、变量

命名空间 读写权限 含义
hiveconf 可读写 hive-site.xml当中的各配置变量
例:hive --hiveconf hive.cli.print.header=true
system 可读写 系统变量,包含JVM运行参数等
例:system:user.name=root
env 只读 环境变量
例:env:JAVA_HOME
hivevar 可读写 例:hive -d val=key

hive当中的参数变量,都是以命名空间开头
通过${}方式进行引用,其中systemenv下的变量必须以前缀开头

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设置:
   set hive.cli.print.header=true;
set查看
   set hive.cli.print.header
hive参数初始化配置,启动客户端默认加载
   当前用户家目录下的.hiverc文件
   如:   ~/.hiverc
   配置:set hive.cli.print.header=true
   如果没有,可直接创建该文件(vi .hiverc),将需要设置的参数写到该文件中,hive启动运行时,会加载改文件中的配置。
hive历史操作命令集
   ~/.hivehistory


动态分区

LOAD数据时,把数据导入到不同目录下;
录数据时,不需要指定分区,所有数据都在原始表里放着!

开启支持动态分区

set hive.exec.dynamic.partition=true; 默认:false
set hive.exec.dynamic.partition.mode=nonstrict; 非严格模式
- 默认:strict(至少有一个分区列是静态分区)

原始表,加载数据

hive> 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'; 

hive> load data local inpath '/root/psn21.data' into table psn21;

动态分区,插入数据

hive> 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'; 


hive> from psn21
insert overwrite table psn22 partition(age, sex)
select id, name, likes, address, age, sex distribute by age, sex;
后面是分区字段,在psn22中也是在后面
插入数据,执行MapReduce任务



Loading data to table default.psn22 partition (age=null, sex=null)
     Time taken for load dynamic partitions : 856
    Loading partition {age=20, sex=boy}
    Loading partition {age=10, sex=boy}
    Loading partition {age=20, sex=man}
    Loading partition {age=10, sex=man}
     Time taken for adding to write entity : 8
Partition default.psn22{age=10, sex=boy} stats: [numFiles=1, numRows=3, totalSize=168, rawDataSize=165]
Partition default.psn22{age=10, sex=man} stats: [numFiles=1, numRows=2, totalSize=112, rawDataSize=110]
Partition default.psn22{age=20, sex=boy} stats: [numFiles=1, numRows=3, totalSize=167, rawDataSize=164]
Partition default.psn22{age=20, sex=man} stats: [numFiles=1, numRows=1, totalSize=51, rawDataSize=50]
MapReduce Jobs Launched: 
Stage-Stage-1: Map: 1  Reduce: 1   Cumulative CPU: 3.26 sec   HDFS Read: 8861 HDFS Write: 726 SUCCESS
Total MapReduce CPU Time Spent: 3 seconds 260 msec
OK
id  name    likes   address age sex
Time taken: 46.652 seconds
hive>
[root@node005 ~]# hdfs dfs -cat /user/hive/warehouse/psn22/age=10/sex=boy/*
9,小明9,lol-book-movie,shenzhen:luohu-shanghai:pudong
8,小明8,lol-book-movie,shenzhen:luohu-shanghai:pudong
1,小明1,lol-book-movie,shenzhen:luohu-shanghai:pudong
动态分区


相关参数

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)

未分区

数据文件

1,小明1,10,boy,lol-book-movie,shenzhen:luohu-shanghai:pudong
2,小明2,10,man,lol-book-movie,shenzhen:luohu-shanghai:pudong
3,小明3,10,man,lol-book-movie,shenzhen:luohu-shanghai:pudong
4,小明4,20,man,lol-movie,shenzhen:luohu-shanghai:pudong
5,小明5,20,boy,lol-book-movie,shenzhen:luohu-shanghai:pudong
6,小明6,20,boy,lol-book-movie,shenzhen:luohu-shanghai:pudong
7,小明7,20,boy,lol-book-game,shenzhen:luohu-shanghai:pudong
8,小明8,10,boy,lol-book-movie,shenzhen:luohu-shanghai:pudong
9,小明9,10,boy,lol-book-movie,shenzhen:luohu-shanghai:pudong

报错:FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition co lumn. To turn this off set hive.exec.dynamic.partition.mode=nonstrict

  • 设置Hive参数即可

Loading data to table default.psn22 partition (age=null, sex=null)
Failed with exception MetaException(message:For direct MetaStore DB connections, we don't support retries at the client level.)
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask

  • 正确操作:进入mysqlmetastore 数据
  • alter table PARTITIONS convert to character set latin1;
  • alter table PARTITION_KEYS convert to character set latin1;
  • hive导入数据报错 - 知乎

参考资料

Hadoop集群上搭建Hive
Hive建表并加载数据 - 简书
Hive基础之Hive的存储类型
Hive静态分区表&动态分区表 - 瞌睡中的葡萄虎 - 博客园
Hive数据导入——数据存储在Hadoop分布式文件系统中,往Hive表里面导入数据只是简单的将数据移动到表所在的目录中!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容