RDBMS数据定时采集到HDFS
发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,[toc]RDBMS数据定时采集到HDFS前言其实并不难,就是使用sqoop定时从MySQL中导入到HDFS中,主要是sqoop命令的使用和Linux脚本的操作这些知识。场景在我们的场景中,需要每天将
千家信息网最后更新 2025年11月17日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安全错误
数据库的锁怎样保障安全
上海轩盒网络技术扣费
福建pdu服务器电源价格怎么样
网络安全逆向和web
连连互动网络技术服务有限公司
直销软件开发报价单
周口网络技术质量
网络安全普查 gov
数据库原理连接查询知识点PPT
时尚网络技术加盟注意哪些
苏州软件开发哪个培训好
网络安全课题成果鉴定
红安信息网络安全管理规定
腾讯云服务器下载
can调试软件开发商
网络安全员工作室
使用什么命令导入数据库对象
计算机网络技术论文网站免费
俄罗斯软件开发工作
三级网络技术选择题真题
云服务器和域名绑定
校园网数据库接口
厦门阜晟网络技术
js连接数据库的安全性
军事网络安全适用网络安全法吗
进入打印机服务器
柒柒猫网络技术有限公司
惠州市微域网络技术有限公司
理正勘察数据库编辑excel
天津超融合服务器厂家虚拟主机
上海软件开发工作室公司电话