hive 取消打印日志信息_Shell脚本结合Hive自动分析日志信息

81625728ad905dced431a4f206d77a5f.png

Nginx的日志信息很多都是用时间进行区分的,比如下面的日志信息

9687a62e9481bb1807e3a40185534c8a.png

可以按照这样的数据建立分区表:二级分区表

建立数据库

1f9adb3a371059969a62100ab82a4159.png

创建数据表

create table load_dynamic_table (

id string,

url string,

referer string,

keyword string,

type string,

guid string,

pageId string,

moduleId string,

linkId string,

attachedInfo string,

sessionId string,

trackerU string,

trackerType string,

ip string,

trackerSrc string,

cookie string,

orderCode string,

trackTime string,

endUserId string,

firstLink string,

sessionViewNo string,

productId string,

curMerchantId string,

provinceId string,

cityId string,

fee string,

edmActivity string,

edmEmail string,

edmJobId string,

ieVersion string,

platform string,

internalKeyword string,

resultSum string,

currentPage string,

linkPosition string,

buttonPosition string

)partitioned by(date string,hour string)

row format delimited fields terminated by 't';

创建表

82ea77eeb89260bba897718c7ef8f8a9.png

将之前的数据重新命名下

(昨天凌晨3点、4点、5点的数据)

cp data1 2019122103.log

cp data1 2019122104.log

cp data1 2019122105.log

e2138f6fe8117968feb1912a8d43500b.png

创建脚本:

vim load_to_hive.sh

#!/bin/bash

YESTERDAY=`date -d '-1 days' +%Y%m%d`

#定义日志数据目录,文件名称是在变化,不能写死

ACCESS_LOG_DIR=/data/test/$YESTERDAY .log

定义HIVE_HOME

HIVE_HOME=/opt/bigdata/hive-0.13.1-cdh5.3.6

for FILE in `ls $ACCESS_LOG_DIR`

do

DAY=${FILE:0:8}

HOUR=${FILE:8:2}

#echo " ${DAY} -- ${HOUR} "

$HIVE_HOME/bin/hive -e " load data local inpath '$ACCESS_LOG_DIR/$FILE' into table load_hive.load_dynamic_table partition(date='${DAY}',hour='${HOUR}') "

done

$HIVE_HOME/bin/hive -e "show partitions load_hive. load_dynamic_table "

5fa83ff5b24b98960834ef94e7b70d85.png

我们先debug运行下脚本

sh -x load load_to_hive.sh

有错误

a3fc866a1cf12cea7cce7a33c39fc18c.png

我们数据准备的有问题,做下更改

mkdir 20191222

46713bccec1aded029ad9009b965a957.png

cp data1 20191222/2019122201.log

cp data1 20191222/2019122202.log

cp data1 20191222/2019122203.log

70fb1a9e47531000d4a4dc81d11a2713.png

更改下脚本

53ceb12d03c00ace581967888f3df441.png

重新debug,没有问题了

d24de4d02d38bdb097e6c3404eec2e46.png

81c8b3979462344ba7ad3c0203e15479.png

查看分区情况:

show partitions load_hive.load_dynamic_table;

609157be0942d098476cb581448a2faf.png

也可以-f的方式加载数据,创建一个sql文件

load data local inpath '${hiveconf:log_dir}/${hiveconf:file_path}' into table load_hive.load_dynamic_table partition(date='${hiveconf:DAY}',hour='${hiveconf:HOUR}')

088b2e10aa007b19d559c6fa9eaf3f4c.png

修改我们的脚本

$HIVE_HOME/bin/hive --hiveconf log_dir=$ACCESS_LOG_DIR --hiveconf file_path=$FILE --hiveconf DAY=$DAY --hiveconf HOUR=$HOUR -f "/data/test/load_data.sql"

51ad43b969348b390311a400a13a709e.png

继续debug

sh -x load_to_hive.sh

229fe13b3eca7553761796535b89f65d.png

1f5e13e90aba56417f31d1ff7c1fde0b.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值