使用sqoop把MySQL数据全量导入HDFS脚本

#!bin/bash

#Mysql数据批量导出

#数据库名

DB='database'

#为了保护账户密码的安全性,在建立配置文件的时候可以创建为隐藏文件,并且为文件设置权限为400

#jdbc 将用户相关信息放到一个配置文件中,截取用户配置文件中的第二行

Url=$(sed -n '2,2p' /home/test/mysql.config)

#用户名

username=$(sed -n '4,4p' /home/test/mysql.config)

#密码

password=$(sed -n '6,6p' /home/test/mysql.config)

#将需要导入的表名直接放到一个文件中

table_name=$(cat /home/test/mysql_table.txt)

#记录任务开始时间

start_time=$(date +'%Y-%m-%d %H:%M:%S')

for var in ${table_name}

do

echo "===========db:$DB,table:$var 导入 ============="

echo "$(sqoop import --connect ${Url} --username ${username} --password ${password} \

-m 1 --hive-delims-replacement ' ' \

--table ${var} \

--target-dir /user/test/${var} \

--fields-terminated-by '\001' \

--delete-target-dir)"

if [ $? -eq 0 ]

then echo "================ import ${var} successfully ! ==============="

else echo "================ import ${var} failed ! ==============="

fi

done

#任务开始时间转化为秒单位

start_seconds=$(date --date="${start_time}" +%s);

#任务执行结束时间

end_seconds=$(date --date="${end_time=$(date +'%Y-%m-%d %H:%M:%S')}" +%S);

#任务执行总时间

run_time=$((${end_seconds}-${start_time}))

#输出任务执行时间到前台

echo -e "\033[32mSqoop写入HDFS任务完成,总用时:$(date -ud "@${run_time}" +%H小时%M分%S秒\033[0m"

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值