Hive-创建表的几种方式

加载本地文件创建内部表

hive -e "
use test_bigdata;
drop table data_result;
CREATE table data_result(
c1         String
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
LOAD DATA LOCAL INPATH 'data_id.txt' INTO TABLE data_result;"

创建外部表

hive -e "
use test_bigdata;
drop table data_result;
CREATE table data_result(
c1    String,
c2    string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '/output/20200618';"

创建外部分区表

hive -e "
use test_bigdata;
drop table data_result;
CREATE table data_result(
c1    String,
c2    string
)
PARTITIONED BY ( 
`date` string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '/output/';

alter table data_resultadd if not exists partition(date=20200601)
location '/output/20200601';
"

创建查询表

hive -e "
use test_bigdata;
drop table data_result1;
create table IF NOT EXISTS data_result1 as 
select
c1,
c2
from test_bigdata.data_result;"

创建查询分区表

hive -e "
use test_bigdata;
drop table data_result1;
create table IF NOT EXISTS data_result1 partition (date='20200601') as 
select
c1,
c2
from test_bigdata.data_result;"

一些参数,设置lzo存储

hive -e "
use test_bigdata;
drop table data_result;
CREATE table data_result(
c1    String,
c2    string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS 
INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat' 
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION '/output/20200618';"

查询插入数据以lzo压缩存储

hive -e "
use test_bigdata;
drop table data_result2;
SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
create table IF NOT EXISTS data_result2 
STORED AS INPUTFORMAT 
  'com.hadoop.mapred.DeprecatedLzoTextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
as 
select
c1,
c2
from test_bigdata.data_result;"

其它参数

set hive.exec.parallel=true;  //控制一个sql中多个可并行执行的job的运行方式
set spark.sql.hive.mergeFiles=true;  //合并小文件
set hive.merge.mapfiles = true #输出时进行合并:
set hive.merge.mapredfiles= true #在Map-only的任务结束时合并小文件
set hive.merge.smallfiles.avgsize=512000000; 当输出文件平均大小小于设定值时,启动合并操作。这一设定只有当hive.merge.mapfiles或hive.merge.mapredfiles设定为true时,才会对相应的操作有效。
set mapreduce.map.memory.mb = 8192; -- 每个Map Task需要的内存量
set mapreduce.reduce.memory.mb = 10500; -- 每个Reduce Task需要的内存量
set mapreduce.map.java.opts = - Xmx9192m;  --  设置Map任务JVM的堆空间大小,默认-Xmx1024m
set mapreduce.reduce.java.opts = - Xmx10000m;   -- 设置reduce任务JVM的堆空间大小,默认-Xmx1024m
set hive.auto.convert.join = true; --当链接的两个表是一个比较小的表和一个特别大的表的时候,我们把比较小的table直接放到内存中去,然后再对比较大的表格进行map操作
set mapreduce.job.queuename=queue1;--设置队列
SET mapred.map.tasks=12;  --设置map数量
SET mapred.reduce.tasks=12; --设置reduce数量将多个输入文件合并后送给mapper处理,从而减少mapper的数量。
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; 将多个输入文件合并后送给mapper处理,从而减少mapper的数量。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值