hive_sql__tips

-- 优化时间计算导致的资源消耗 --


-- 优化hive性能:tez,spark,lmpala,mapreduce; 矢量化--
-- set hive.execution.engine = spark;
-- set hive.vectorized.execution.enabled = true;
-- set hive.vectorized.execution.reduce.enabled = true;

-- set hive.exec.parallel = true;
-- set hive.limit.optimize.enable = true;

-- mr 优化 --
-- set mapred.reduce.tasks = 300;
-- set hive.auto.convert.join = false;
-- hive建表 经验设置
set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec;
set mapred.reduce.tasks=200;
set mapreduce.reduce.shuffle.memory.limit.percent=0.10;
set yarn.nodemanager.pmem-check-enabled=false;
set yarn.nodemanager.vmem-check-enabled=false;
set mapreduce.map.memory.mb=3072;
set mapreduce.reduce.memory.mb=3072;
-- hive当前时间转化为:'20180425'
WHERE pt = from_unixtime(unix_timestamp(date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1),'yyyy-MM-dd'),'yyyyMMdd')
-- hive在shell上执行
-- hive_data.sh

table_name='t_news'
tt=$(date -d '-3 days' +%Y%m%d) --'20180422'

hive(gohive) -e "select * from ${table_name} limit 5;" -- method_1

hive(gohive) -hiveconf table_name='t_news' -f news.sql -- method_2
-- news.sql: select * from ${hiveconf: table_name} limit 5;
# linux_shell注意事项:
# 变量赋值‘等号’两边不能有空格,要紧挨;
# 变量存在的语句一定使用双引号,而不能用单引号;

猜你喜欢

转载自blog.csdn.net/sinat_20174131/article/details/80082953