大家好,又见面了,我是你们的朋友全栈君。
Hadoop 2.6.0-cdh5.9.0 Hive 1.1.0-cdh5.9.0 Zookeeper 3.4.5-cdh5.9.0
数据
来源是将8台服务器日志各自压缩成*.gz(8个gz文件)后,按天和小时分区传入到HDFS上,然后通过创建Hive ODS外部表加载到表对应分区,这样一天下来会生产192个gz文件,gz文件是不能进行切分所以查询一天则会产生192个Map数,导致后结数据处理性能与资源占用都比较大。需要进行优化>如下几点:
create table temp.TempTableName(
col1 string comment 'col1'
,col2 string comment 'col2'
) partitioned by (p_dt string, p_hours string)
row format serde 'org.openx.data.jsonserde.JsonSerDe'
with serdeproperties ("ignore.malformed.json"="true")
stored as textfile
;
Alter table temp.TempTableName add partition (p_dt='20141101',p_hours='00') location '/ods/TempTableName/20141101/00';
create table ods.TableName(
col1 string comment 'col1'
,col2 string comment 'col2'
) partitioned by (p_dt string, p_hours string)
stored as orc
;
insert overwrite table TableName partition(p_dt='20141101',p_hours='00')
select * from TempTableName where p_dt='20141101' and p_hours='00'
ss
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188948.html原文链接:https://javaforall.cn