RDBMS数据定时采集到HDFS
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,[toc]RDBMS数据定时采集到HDFS前言其实并不难,就是使用sqoop定时从MySQL中导入到HDFS中,主要是sqoop命令的使用和Linux脚本的操作这些知识。场景在我们的场景中,需要每天将
千家信息网最后更新 2026年11月02日RDBMS数据定时采集到HDFS
[toc]
RDBMS数据定时采集到HDFS
前言
其实并不难,就是使用sqoop定时从MySQL中导入到HDFS中,主要是sqoop命令的使用和Linux脚本的操作这些知识。
场景
在我们的场景中,需要每天将数据库中新增的用户数据采集到HDFS中,数据库中有time字段,用以标识该用户信息录入数据库的时间,所以下面的数据导入操作也是依赖于这个字段。数据准备
在MySQL数据库中准备如下数据:
##构建sql的操作create DATABASE IF NOT EXISTS db_log_statics;use db_log_statics;CREATE TABLE `t_user_info` ( `id` bigint(20) NOT NULL, `name` varchar(20) COLLATE utf8_bin DEFAULT NULL, `address` varchar(20) COLLATE utf8_bin DEFAULT NULL, `time` date DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;insert into `t_user_info` (`id`, `name`, `address`, `time`) values('1','张三','北京朝阳','2018-04-05');insert into `t_user_info` (`id`, `name`, `address`, `time`) values('2','李四','河南洛阳','2018-04-05');insert into `t_user_info` (`id`, `name`, `address`, `time`) values('3','王五','广东邵阳','2018-04-05');insert into `t_user_info` (`id`, `name`, `address`, `time`) values('4','赵六','山东德州','2018-04-07');insert into `t_user_info` (`id`, `name`, `address`, `time`) values('5','周七','山东青岛','2018-04-07');insert into `t_user_info` (`id`, `name`, `address`, `time`) values('6','魏八','福建厦门','2018-04-07');insert into `t_user_info` (`id`, `name`, `address`, `time`) values('7','王二麻子','山西五台山','2018-04-06');insert into `t_user_info` (`id`, `name`, `address`, `time`) values('8','王大锤','陕西榆林','2018-04-06');insert into `t_user_info` (`id`, `name`, `address`, `time`) values('9','燕小六','云南大理','2018-04-06');insert into `t_user_info` (`id`, `name`, `address`, `time`) values('10','雷布斯','湖北仙桃','2018-04-06');脚本编写
exportUser2HDFS.sh
#!/bin/env bash# shell中引用外部文件的变量source /home/uplooking/shells/db-mysql.conf# source 系统的环境变量source ~/.bash_profile# 日期变量today=`date +%Y-%m-%d`yesterday=`date -d"1 day ago" +%Y-%m-%d`/home/uplooking/app/sqoop/bin/sqoop import \--connect jdbc:mysql://${stat_ipaddr}:${stat_port}/${stat_dbname} \--username ${stat_uname} \--password ${stat_upwd} \--target-dir hdfs://ns1/input/t_user/${yesterday} \--query "SELECT id, name, address, time FROM t_user_info WHERE time >='${yesterday}' AND time < '${today}' AND \$CONDITIONS" \-m 1 --fields-terminated-by "," --split-by ","db-mysql.conf
#统计库数据库ip地址stat_ipaddr=192.168.43.116#统计库端口stat_port=3306#统计库名称stat_dbname=db_log_statics#统计库用户名stat_uname=root#统计库密码stat_upwd=root编写定时任务
crontab -e# 要求每天凌晨2点10分同步数据10 2 * * * /bin/bash /home/uplooking/shells/exportUser2HDFS.sh >/dev/null 2>&1 &需要注意的是,如果在Notepad++中远程编辑shell脚本文件,在Linux中是无法执行的,原因为,此时在Linux中用vim查看文件格式:set ff,会发现为:fileformat=dos,而正常我们在Linux中编辑的文件应该为:fileformat=unix,所以解决方案为:set ff=unix
数据
数据库
统计
文件
变量
用户
脚本
场景
字段
山东
准备
中用
前言
命令
天将
数据采集
标识
用以
用户名
福建厦门
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司怎么样
北京互联网科技公司
互联网科技公司怎么样
丰台科技园 互联网
北京禾田雨橡互联网科技
科技互联网创业计划书
科技大学互联网专业好不好
互联网科技公司的市场部门
互联网系的金融科技公司
华服互联网科技官网
科技互联网大厂
互联网媒体平台算高科技产业
济南有互联网科技公司吗
有人说阿里系是互联网科技企业
抖集互联网科技技术咨询
互联网科技手机排行榜
互联网科技新闻
互联网科技和医药行业
盐城市攀科互联网科技有限公司
华人运通互联网科技公司
科技互联网
互联网科技园
互联网金融 科技金融
远拓互联网科技
天扬科技互联网广告
甘肃拓世互联网科技有限公司
须眉科技是互联网公司吗
济南有互联网科技公司吗
上海互联网科技园景观
黑龙江互联网科技公司