自定义采集数据shell脚本

#!/bin/bash

# 日志文件存放的目录
log_src_dir=/root/input/logs/

# 待上传文件存放的目录
log_toupload_dir=/root/input/logs/toupload/

# 日志文件上传到hdfs的根路径
hdfs_root_dir=/data/clickLog/20190211/

# 创建文件
hadoop fs -mkdir -p $hdfs_root_dir

# 读取日志文件的目录,判断是否有需要上传的文件
ls $log_src_dir | while read fileName
do
    if [[ "$fileName" == access.* ]; then
            date=`date +%Y_%m_%d_%H_%M_%S`
            # 将文件移动到待上传目录并重命名
            mv $log_src_dir$fileName $log_toupload_dir"xxxx_click_log_$fileName"$date
            # 将待上传的文件path写入一个列表文件willDoing
            echo $log_toupload_dir"xxxx_click_log_$fileName"$date >> $log_toupload_dir"willDoing."$date
    fi
done

# 找到列表文件willDoing (罗列出所有文件,包含will的文件,不包含_COPY_,不包含_DONE_)
ls $log_toupload_dir | grep will | grep -v "_COPY_" | grep -v "_DONE_" | while read line
do
    # 打印信息
    echo "toupload is in file:"$line
    # 将待上传文件列表willDoing改名为willDoing_COPY_
    mv $log_toupload_dir$line $log_toupload_dir$line"_COPY_"
    # 读列表文件willDoing_COPY_的内容(一个一个的待上传文件的名字),此处的line就是列表中的一个待上传文件的path
    cat $log_toupload_dir$line"_COPY_" | while read line
    do
    hadoop fs -put $line $hdfs_root_dir
    done
    mv $log_toupload_dir$line"_COPY_" $log_toupload_dir$line"_DONE_"
done
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、系统参数配置优化 1、系统内核参数优化配置 修改文件/etc/sysctl.conf,添加如下配置,然后执行s...
    张伟科阅读 3,799评论 0 14
  • hadoop是什么?HDFS与MapReduceHive:数据仓库,在HDFS之上,后台执行,帮你执行。faceb...
    Babus阅读 2,442评论 0 5
  • 前言 Hadoop在大数据技术体系中的地位至关重要,Hadoop是大数据技术的基础,对Hadoop基础知识的掌握的...
    piziyang12138阅读 1,973评论 0 3
  • 1、重返鼓励营,又开始了21天打卡计划,在这里有人监督你每天觉察的书写,还有一群生命能量很高的人在你左右,这就是鼓...
    如梅2018阅读 244评论 0 1
  • 夜来蟋蟀琴悠扬 屋内窗外对和忙 心知曲调不对我 忙捉蟋蟀送出房
    忙里偷闲追梦依然阅读 850评论 27 29