数据采集工具Sqoop、Datax、Flume、Canal

本文详细介绍了大数据离线采集工具Sqoop的环境配置、使用方法,包括从MySQL到HDFS和Hive的数据迁移。接着讲解了DataX的环境搭建和使用,实现HDFS到MySQL以及MySQL到HDFS的数据迁移。最后,探讨了实时采集工具Flume的环境搭建及应用,展示了如何监控目录、文件并将数据写入HDFS,以及通过HTTP协议收集数据。此外,还提及了Canal作为实时监控MySQL数据的工具。
摘要由CSDN通过智能技术生成

离线采集工具

Sqoop

1. 环境配置

  1. 解压安装包
  2. 配置环境变量(记得source)
  3. 添加MySQL驱动包到sqoop文件夹下的lib
cp mysql-connector-java-5.1.10.jar  /sqoop-install-path/lib
  1. 重命名文件并配置文件
mv sqoop-env-template.sh sqoop-env.sh
#添加环境变量
export HADOOP_COMMON_HOME=/usr/local/soft/hadoop-2.6.0
export HBASE_HOME=/usr/local/soft/hbase-1.4.6(HBASE使用报错)
export HIVE_HOME=/usr/local/soft/hive-1.2.1
  1. 修改配置…/bin/configure-sqoop (可不做)
#if [ ! -d "${HBASE_HOME}" ]; then
# echo "Error: $HBASE_HOME does not exist!"
# echo 'Please set $HBASE_HOME to the root of your HBase installation.'
# exit 1
  1. 测试
#查看sqoop的版本号
sqoop version
#连接测试MySQL
sqoop list-databases -connect jdbc:mysql://master:3306/ -username root -password 123456

2. Sqoop的使用

我们需要指定文件,使用命令导入文件然后采集数据

sqoop --options-file 文件名

例:

将MySQL中的数据写入到hdfs中 文件名:mysqltoHdfs.conf

import
--connect
jdbc:mysql://master:3306/tjf    #连结以及数据库名(注意每一行后不要有空格和换行)
--username
root
--password
123456
--table
student
--m
2
--split-by              #会以此为基准分割数据集
age
--target-dir
/sqoop/data/student         #hdfs中文件位置
--fields-terminated-by
','

将MySQL中数据写入到hive中 文件名:mysqlToHive.conf

import
--connect
jdbc:mysql://master:3306/tjf
--username
root
--password
123456
--table
score
--fields-terminated-by
"\t"
--lines-terminated-by
"\n"
--m
2
--split-by
student_id
--hive-import
--target-dir
/data/score
--hive-table
score

hdfs文件写入到MySQL中 文件名: hdfsToMySQLconf

export
--connect
jdbc:mysql://master:3306/tjf?useUnicode=true&characterEncoding=UTF-8
--username
root
--password
123456
-m
1
--columns
id,name,age,gender,clazz
--export-dir
/sqoop/data/student/
--fields-terminated-by
','
--table
student

增量数据
当离线处理完数据时,发现数据更改对于数据的再一次获取或者更换
以学生表为例,创建带有时间戳的数据

DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` char(5) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `gender` char(2) DEFAULT NULL,
  `clazz` char(4) DEFAULT NULL,
  `last_mod` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1500101002 DEFAULT CHARSET=utf8;

INSERT INTO `student` VALUES ('1500100001', '施笑槐', '22', '女', '文科六班', '2019-03-16 14:47:59');
INSERT INTO `student` VALUES ('1500100002', '吕金鹏', '24', '男', '文科六班', '2019-03-16 14:47:59');
<
上层应用业务对实时数据的需求,主要包含两部分内容:1、 整体数据的实时分析。2、 AB实验效果的实时监控。这几部分数据需求,都需要进行的下钻分析支持,我们希望能够建立统一的实时OLAP数据仓库,并提供一套安全、可靠的、灵活的实时数据服务。目前每日新增的曝光日志达到几亿条记录,再细拆到AB实验更细维度时,数据量则多达上百亿记录,多维数据组合下的聚合查询要求秒级响应时间,这样的数据量也给团队带来了不小的挑战。OLAP层的技术选型,需要满足以下几点:1:数据延迟在分钟级,查询响应时间在秒级2:标准SQL交互引擎,降低使用成本3:支持join操作,方便维度增加属性信息4:流量数据可以近似去重,但订单行要精准去重5:高吞吐,每分钟数据量在千W级记录,每天数百亿条新增记录6:前端业务较多,查询并发度不能太低通过对比开源的几款实时OLAP引擎,可以发现Doris和ClickHouse能够满足上面的需求,但是ClickHouse的并发度太低是个潜在的风险,而且ClickHouse的数据导入没有事务支持,无法实现exactly once语义,对标准SQL的支持也是有限的。所以针对以上需求Doris完全能解决我们的问题,DorisDB是一个性能非常高的分布式、面向交互式查询的分布式数据库,非常的强大,随着互联网发展,数据量会越来越大,实时查询需求也会要求越来越高,DorisDB人才需求也会越来越大,越早掌握DorisDB,以后就会有更大的机遇。本课程基于真实热门的互联网电商业务场景为案例讲解,具体分析指标包含:AB版本分析,下砖分析,营销分析,订单分析,终端分析等,能承载海量数据的实时分析,数据分析涵盖全端(PC、移动、小程序)应用。整个课程,会带大家实践一个完整系统,大家可以根据自己的公司业务修改,既可以用到项目中去,价值是非常高的。本课程包含的技术:开发工具为:IDEA、WebStormFlink1.9.0DorisDBHadoop2.7.5Hbase2.2.6Kafka2.1.0Hive2.2.0HDFS、MapReduceFlume、ZookeeperBinlog、Canal、MySQLSpringBoot2.0.8.RELEASESpringCloud Finchley.SR2Vue.js、Nodejs、Highcharts、ElementUILinux Shell编程等课程亮点:1.与企业接轨、真实工业界产品2.DorisDB高性能分布式数据库3.大数据热门技术Flink4.支持ABtest版本实时监控分析5.支持下砖分析6.数据分析涵盖全端(PC、移动、小程序)应用7.主流微服务后端系统8.天级别与小时级别多时间方位分析9.数据库实时同步解决方案10.涵盖主流前端技术VUE+jQuery+Ajax+NodeJS+ElementUI11.集成SpringCloud实现统一整合方案12.互联网大数据企业热门技术栈13.支持海量数据的实时分析14.支持全端实时数据分析15.全程代码实操,提供全部代码和资料16.提供答疑和提供企业技术方案咨询企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值