在linux环境下自动执行python脚本

说明:此文针对需要用hive来查询长时间数据的人员,而且是需要按照天来输出查询数据,考虑到如果查询多天的,数据量过大会造成集群拥堵,所以按天输出,最终再做汇总。
需求来源:如果你每天接触的都是日志类数据,日志每天的产生量都非常庞大,而你想对过去几个月的数据进行分析,就需要考虑如何有效的实现这种方式。
假设想查询8月-10月的流量数据,可以这样:

 #!/usr/bin/env python
 # -*- coding: UTF-8 -*-

import sys
import os
import re
#假设hive数据文件以日期为分区。
for i in range(0,92):
    if i<31:
        date=20160801+i
    elif i<61:
        date=20160901+i-31
    else:
        date=20161001+i-61
#输出数据到以.data结尾的数据文件中,此处用了hive -e的用法
    sql = "hive -e \"hive sql执行脚本,日期分区用%d参数代替,假设有一处用到;\" >%d.data" % (date,date)
    print sql
    os.system(sql)

以上脚本测试成功后,可以让linux环境下自动执行,假设上述脚本为test.py具体操作如下:

nohup python test.py & ---已经自动执行
自动执行时会生成执行文件nohup.out,可以查看文件是否执行成功或者执行到什么地步,cat nohup.out
退出shell环境时,不要像平常一样直接简单粗暴右上角点叉叉,用exit,我们这次温柔一点。

所有分区执行完毕后,可以用cat *.data >hahaha.data将所有数据汇总到hahaha.data的文件中。然后sz hahaha.data就可以把数据下载到本地进行分析啦。

你可能感兴趣的:(python,hive)