使用Sqoop1.4.7将Hadoop分区表同步到MySQL_实践带源码复制可用

本文提供了一个名为sqoop_ads_test_table_1d_to_MySQL.sh的shell脚本示例,用于将Hadoop的分区表数据通过Sqoop导出到MySQL。脚本中设置了环境变量以区分测试和生产环境,先清空目标表数据,然后执行数据导出。该过程适用于已预先在MySQL中创建的目标表。
摘要由CSDN通过智能技术生成

Sqoop导出Hadoop分区表数据到MySQL

前提: 目标表需要提前在MySQL数据库中创建。

将下列shell脚本命名为sqoop_ads_test_table_1d_to_MySQL.sh,直接复制即可,亲测可用.

echo "`date`--------将Hadoop分区数据同步到MySQL---------sqoop eval job start!!!!!"

# 将所需分区通过外部参数传入
dt=$1

hive_db_name=ads
hive_table_name=ads_test_table_1d
# MySQL结果表名
table_name=ads_test_table_1d
# 需要的字段
table_columns="id,name,phone"

# env test prod 通过设置env控制生产环境还是测试环境
env=prod
my_url="jdbc:mysql://192.168.10.xxx:3306/test"
username="root"
password=your_pwd

if [ $env = "prod" ] ;then
my_url="jdbc:mysql://192.168.10.xxx:3306/prod"
username="bigdata"
password=your_pwd
fi

# 由于是overwrite形式,需要先将目标表数据清除
echo "`date`----------sqoop eval job start!!!!!"
nohup sqoop eval \
--connect "${my_url}" \
--username ${username} --password   "${password}" \
--query "delete from $table_name "

echo "`date`----------sqoop export job start!!!!!"
nohup sqoop export --hcatalog-database ${hive_db_name} \
--hcatalog-table ${hive_table_name}  \
--hcatalog-partition-keys dt  \
--hcatalog-partition-values ${dt} \
--connect "${my_url}" \
--username ${username} --password   "${password}" \
--table $table_name  \
--columns $table_columns
echo "`date`----------sqoop export job end!!!!!"

然后在虚拟机运行

sh sqoop_ads_test_table_1d_to_MySQL.sh '2023-04-01'

后边的日期即将hadoop中分区为2022-04-01的数据同步到MySQL。

后边将会分享同步Hadoop非分区表数据同步到MySQL.

最后,感谢大家的观看,有需要改进的地方希望大家在下方留言,关注我,有不懂的技术问题为你解决。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值