shell脚本-sqoop->HDFS

场景:将mysql库中的数据传输到HDFS中,并且按照日期作为文件名来存放数据,方便数据的读取与处理
如图所示:以日期来命名文件夹,存储当天的数据
在这里插入图片描述

首先介绍一下shell脚本中的三个引号的适用与区别

  • 单引号(‘’)–所见即所得

var1=‘helloworld’
var2=’${var1}helloworld’
echo $var2

输出结果:${var1}helloworld

  • 双引号(“”)–识别里面的变量
    输出引号中的内容,若存在命令,变量等,会先执行命令解析出结果后再输出

var1=‘helloworld’
var2=“${var1}helloworld”
echo $var2
输出结果:helloworldhelloworld

  • 反引号(`)–识别命令并运行
    键盘tab键上的一个键,用于命令转换
    例如:root用户登录系统

var=whoami
echo v a r 输 出 结 果 : r o o t 反 引 号 是 执 行 w h o a m i 这 个 命 令 反 引 号 和 var 输出结果:root 反引号是执行whoami这个命令 反引号和 varrootwhoami()作用相同

下面代码为test.sh shell脚本

#! /bin/bash
set -x
#set -x用于运行shell脚本时候的调试功能,也可以不用
echo ....................Sqoop import data form:$1 to $2
#endtime='date -d "$2" +%s'
for((i=0;i<5;i++))
do
day=$(date "+%Y-%m-%d" -d "$1 $i day")
time='date -d "$day" +%s'
        echo $day
if [ ${time} -gt $endtime ]
then
        break
else
        echo 循环成功
#RFID
        sqoop import --connect jdbc:mysql://10.x.x.x:3306/cqct --username root --password root --query 'select * from bm_apoint_rfid where TIME like '\"$day%\"' and $CONDITIONS' --split-by ID --target-dir /cqct/bm_apoint_rfid/$day --num-mappers 1
fi
done
set +x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值