hive 定时加载分区
#!/bin/bash
#每天定时位外部表加载分区
#服务器当天的时间
#加载环境变量
source /etc/profile;
#如果没有指定日期用当前日期如果指定的日期使用指定的日期
echo 'starting...'
if [ -z $1 ]
then
curdate=`date +%Y%m%d`
else
curdate=$1
fi
# alter table click add if not exists partition(logdate='20170821') LOCATION '/maats5/click/logdate=20170821';
#数据库表
tableList="click install register login pay"
#为所有表加载当天的分区
addPartitionOfCurDate_All() {
for table in $tableList
do
echo "deal with " $table
createHdfsDir $table $curdate
addPartition $table $curdate
done
}
#判断分区是否存在,如果不存在则创建
createHdfsDir(){
#$1=tablename,$2=curdate
hdfs dfs -test -d /maats5/$1/logdate=$2
if [ ! $? -eq 0 ] ;then
#如果不存在则创建这个文件
hdfs dfs -mkdir /maats5/$1/logdate=$2
fi
}
#加载指定表的分区
addPartition(){
#$1=tablename, $2=curdate
/home/hadoop/apps/hive/bin/hive -e "alter table maats.$1 add if not exists partition(logdate='$2') LOCATION '/maats5/$1/logdate=$2';" 1>/home/hadoop/maats/crontabTask/maatsLogs/crontab_hive.std 2>/home/hadoop/maats/crontabTask/maatsLogs/crontab_hive.err
}
#删除分区
deletePartition(){
/home/hadoop/apps/hive/bin/hive -e "alter table maats.$1 drop if exists partition(logdate='$2') " 1>/home/hadoop/maats/crontabTask/maatsLogs/crontab_hive.std 2>/home/hadoop/maats/crontabTask/maatsLogs/crontab_hive.err
}
#执行
addPartitionOfCurDate_All
echo "ending"
hive 定时加载分区的更多相关文章
- Flink 中定时加载外部数据
		
社区中有好几个同学问过这样的场景: flink 任务中,source 进来的数据,需要连接数据库里面的字段,再做后面的处理 这里假设一个 ETL 的场景,输入数据包含两个字段 “type, useri ...
 - Hive如何加载和导入HBase的数据
		
当我们用HBase 存储实时数据的时候, 如果要做一些数据分析方面的操作, 就比较困难了, 要写MapReduce Job. Hive 主要是用来做数据分析的数据仓库,支持标准SQL 查询, 做数据分 ...
 - hive加载json数据解决方案
		
hive官方并不支持json格式的数据加载,默认支持csv格式文件加载,如何在不依赖外部jar包的情况下实现json数据格式解析,本编博客着重介绍此问题解决方案 首先创建元数据表: create EX ...
 - hive 压缩全解读(hive表存储格式以及外部表直接加载压缩格式数据);HADOOP存储数据压缩方案对比(LZO,gz,ORC)
		
数据做压缩和解压缩会增加CPU的开销,但可以最大程度的减少文件所需的磁盘空间和网络I/O的开销,所以最好对那些I/O密集型的作业使用数据压缩,cpu密集型,使用压缩反而会降低性能. 而hive中间结果 ...
 - Linux服务器配置之加载硬盘
		
Linux服务器配置之加载硬盘 1.修改密码 passwd 2.测试密码是否成功 3.查看硬盘信息 fdisk –l 4.格式化分区 fdisk /dev/vdb 5.查看分区 6.快速格式化/dev ...
 - Learning Spark中文版--第五章--加载保存数据(2)
		
SequenceFiles(序列文件) SequenceFile是Hadoop的一种由键值对小文件组成的流行的格式.SequenceFIle有同步标记,Spark可以寻找标记点,然后与记录边界重新 ...
 - 如何每日增量加载数据到Hive分区表
		
如何每日增量加载数据到Hive分区表 hadoop hive shell crontab 加载数据 数据加载到Hive分区表(两个分区,日期(20160316)和小时(10))中 每日加载前一天的日志 ...
 - Hive中数据的加载和导出
		
原文:http://blog.javachen.com/2014/06/09/hive-data-manipulation-language.html 关于 Hive DML 语法,你可以参考 apa ...
 - Hive学习之四      《Hive分区表场景案例应用案例,企业日志加载》 详解
		
文件的加载,只需要三步就够了,废话不多说,来直接的吧. 一.建表 话不多说,直接开始. 建表,对于日志文件来说,最后有分区,在此案例中,对年月日和小时进行了分区. 建表tracktest_log,分隔 ...
 
随机推荐
- HighCharts/Highstock使用小结,使用汉化及中文帮助文档
			
此文档是本人在开发过程图形报表时使用HighCharts所遇到的问题及解决方案 .最后附上有HighCharts中文帮助文档 HighCharts 版本:Highcharts-3.0.1 Hi ...
 - supervisor介绍与安装
			
前言 今天同事让我帮忙安装一个叫supervisor的软件,但自己确实没接触过这个软件 自己做一下学习的记录 我首先是查询了一下supervisor的官网,初步认识一下这个软件 Supervisor是 ...
 - TortoiseSVN 清空已保存的用户信息
			
http://blog.csdn.net/zb358983019/article/details/72898231.如果使用的是安装版的SVN,则打开系统开始菜单中Tortoise下的Settings ...
 - Linux命令-工作管理命令:&,ctrl+z,jobs,fg,bg
			
在linux下面将一个进程放入后台执行,有两种方式: 第一种方式:&表示命令在后台执行程序,等同于windows里面的程序最小化. 第二种方式:执行某一个命令,例如:top,然后按ctrl+z ...
 - python标准库介绍——12 time  模块详解
			
==time 模块== ``time`` 模块提供了一些处理日期和一天内时间的函数. 它是建立在 C 运行时库的简单封装. 给定的日期和时间可以被表示为浮点型(从参考时间, 通常是 1970.1.1 ...
 - 离线安装 Ambari Hadoop
			
制作本地yum源 安装步骤: 先建立本地yum源(Ambari和HDP的) 1. 先安装 ambari 然后http://localhost:8080 登录进去,设置 hdp的源链接. 2. 安装HD ...
 - 【备用】SQL SERVER存储过程执行速度慢的问题
			
今天看到了但是暂时没有时间研究,先留着备用(Parameter Sniffing) http://blog.csdn.net/emili/article/details/2192081 http:// ...
 - OPENGL NEHE Lesson11 11课的计算公式推导
			
计算多边形公式推导: 条件x 离散的值从0到45; y离散的值从0到45; z是符合正弦波. 问题: 1 要求x’=f(x)映射到 x’ ∈[-4.5, 4.5], x ∈{0, 1, 2, …, 4 ...
 - Sampling and Estimation
			
Sampling and Estimation Sampling Error Sampling error is the difference between a sample statistic(t ...
 - SVN 版本服务器搭配全过程详解(含服务端、客户端)
			
1.为什么要用VisualSVN Server,而不用Subversion? 回答: 因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Serve ...