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的数量。
–加载本地文件创建内部表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;