总共分为3步:
1.编写hql脚本
简单案例:
编写hql脚本:vim tongji1.hql
内容如下:
select * from fluxdb.tongji1 where reporttime='${statis_date}';
很简单就是一个表查询,没啥逻辑
保存退出后,记得 赋予执行权限:chmod +x tongji1.hql
2.编写bash脚本
#!/bin/bash
#source /etc/profile;
export HADOOP_HOME=/home/01/software/hadoop-2.7.1
statis_time=`date +%Y-%m-%d`
/home/01/software/hive-1.2/bin/hive -d statis_date=${statis_time} -f /home/01/temp/tongji1.hql >>/home/01/temp/tongji1_data_${statis_time}.txt 2>>/home/01/temp/tongji1_${statis_time}.log &
这里解释下:
>tongji1_data_${statis_time}.txt #是将hivesql脚本查询的数据输入到tongji1_data.txt文件中,注意这里是覆盖,如果此文件存在且里面有数据则直接从前排开始覆盖,如果在执行脚本的时候tongji1_data.txt文件不存在,则自动在脚本所在目录下创建此文件
>>tongji1_data_${statis_time}.txt #是将数据追加到数据文件中,与上面不同
2>tongji1_${statis_time}.log # 是将脚本执行信息输入到日志文件中,以便后续排查问题,如果不需要日志信息则可以写成: 2>/dev/null
& #是将脚本命令后台执行
3.配置定时任务
定时任务我这边用的是crontab去做的定时
执行crontab -e 命令 编辑该用户的定时任务
下面是每分钟执行一次(测试简单查询):
*/1 * * * * /home/01/temp/flux.sh

958

被折叠的 条评论
为什么被折叠?



