[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

RDBMS数据定时采集到HDFS相关推荐

  1. HDFS数据定时采集demo 简单

    1.流程 启动一个定时任务: --定时监测日志源目录 --获取需要采集的文件 --移动这些文件到一个待上传临时目录中 --遍历待上传目录中各个文件,逐一传输到HDFS的目标路径,同时将传输完成的文件移 ...

  2. 案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出excel、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/120345072 红胖子(红模仿)的博文大全:开发技术集 ...

  3. php 定时采集数据,懒人一键采集(采集+推送+定时)

    可能是 ZBlog 最简单快捷的采集插件,说出来你可能不信 > 对该插件有任何疑问.反馈,可加作者 QQ:1365975459 进行交流 > 该插件需要修改一处 PHP 配置 教程参考  ...

  4. 案例分享:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出excel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110941614 长期持续带来更多项目与技术分 ...

  5. 后台定时给页面发送数据_苹果CMS10全自动定时采集教程

    很多朋友在首次建立好自己的网站后,在资源采集方面,由于手动方式比较耗时间和精力,更新也不够及时,希望能有一个定时的全自动采集任务来帮助补充资源,现在教大家如何一步一步设置这个任务. ①进入苹果CMS1 ...

  6. 大数据应用导论 Chapter02 | 大数据的采集与清洗

      大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  7. 苹果CMS、海洋CMS自动定时采集-可采集任意自定义指定资源

    使用苹果.海洋cms的是不是感觉资源更新很麻烦,虽然cms本身有定时采集,由于是php开发的,需要有访问才能触发,虽然有一些服务器控制面板可以新建定时任务,到指定时间去请求异常定时采集链接,但是这也是 ...

  8. 大数据培训:Hadoop HDFS 实现原理

    一.HDFS体系结构 1.1 HDFS 简介 Hadoop分布式文件系统 (HDFS) 是运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File S ...

  9. Thinking in BigData(八)大数据Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解

          纯干货:Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解. 通过这一阶段的调研总结,从内部机理的角度详细分析,HDFS.MapReduce.Hbase.H ...

最新文章

  1. “象征界”的奇观:刘天怜花鸟工笔作品印象
  2. postgresql 动态添加过滤条件_通过窗口函数进行过滤导致Postgresql
  3. Socket一次Recv接受的字节有限制么?
  4. 澳门大学物联网设计方法研究获“973”立项
  5. R语言快速读取数据方法
  6. Python基础-文件操作
  7. python实现一个简单的【图像中物体坐标】标注小工具
  8. 自定义ViewGroup (2)支持滑动,并处理多指触摸可能产生的跳动问题
  9. 别忽视分布式系统这六大“暗流”
  10. SLAM学习笔记-------------(五)相机与图像
  11. 计算机开机提示非正版操作系统,电脑启动时显示找不到操作系统怎么办
  12. 【转录调控网络】基因转录调控网络——转录因子调控网络分析
  13. 最新数据,国内5G手机出货量已超78万部!
  14. 空气源热泵设备远程监控的优点
  15. 5G WiFi的信号难题:穿墙性能太差
  16. kmp算法中字符串前后缀公共长度的总结
  17. 合肥市专精特新中小企业申报汇总,申报奖励、认定条件、材料流程时间
  18. 报童问题求解最大利润_利用二次函数求图形面积最值问题,注意自变量,学会解题策略...
  19. HUAWEI内网最新发布了一份452页网络协议手册,GitHb百万收藏
  20. MT4 Manager java二次开发(二)

热门文章

  1. C ++ STL中的set :: upper_bound()函数
  2. Linux内核设计与实现---系统调用
  3. uva 10954——Add All
  4. 392. 判断子序列 golang 关于布尔类型返回值判断的思考
  5. 设计模式---5(建造者模式的概念及其实现,建造者模式的角色与职责,建造者模式和工厂模式的区别)
  6. C++Primer学习笔记:第4章 表达式
  7. HDU - 2973威尔逊定理
  8. linux下源码安装vsftpd-3.0.2
  9. MMKV集成与原理,先收藏了
  10. Anti-Aliasing SSAA MSAA MLAA SRAA 简介