数据采集工具

起源

       关系数据库(RDMS)是数据分析与处理的主要工具,我们在关系数据库上积累了大量处理数据的技巧、知识与经验。

      当大数据技术来临的时候,我们自然而然就会思考,能不能将关系数据库数据处理的技巧和方法转移到大数据技术上呢?于是,就出现了Hive、Spark SQL、Impala等大数据产品。

      值得注意的是 ,虽然像Hive这样的大数据产品可以提供和关系数据库一样的SQL操作,但是互联网应用产生的数据却还是只能记录在类似MySQL这样的关系数据库上。这是因为互联网应用需要实时响应用户操作,基本上都是在毫级完成用户的数据读写操作,通过前面的学习我们知道,大数据不是为这种毫秒级的访问设计的。

      所以,我们就需要工具将关系数据库导入到大数据平台上,例如HDFS。目前比较好常用的导入工具有Sqoop和Canal,Flume。

工具

  • Sqoop  

         它是适合离线批量导入关系数据库的数据,也可以将Hadoop数据导入到关系型数据库,双向。使用起来也比较简单,          Sqoop数据导入命令示例如下:

$ sqoop import --connect jdbc:mysql://localhost/db --username foo --password --table TEST

          你需要指定数据库URL、用户名、密码、表名,就可以将数据表的数据导入到Hadoop。

 

           它是适合实时导关系数据库的数据,是阿里巴巴开源的一个MySQL binlog获取工具,binlog是MySQL的事务日志,可用于MySQL数据库主从复制,Canal将自己伪装成MySQL从库,从MySQL获取binlog。

    而我们只要开发一个Canal客户端程序就可以解析出来MySQL的写操作数据,将这些数据交给大数据流计算处理引擎,就可以实现对MySQL数据的实时处理了。  

 

  •  flume 

      它比较常用的大数据日志收集工具,最早由Cloudera开发,后来捐赠给Apache基金会作为开源项目运营。

     日志也是大数据处理与分析的重要数据来源之一,应用程序日志一方面记录了系统运行期的各种程序执行状况,一方面也记录了用户的业务处理轨迹。

     Flume架构如下:

       从图上看,Flume收集日志的核心组件是Flume Agent,负责将日志从数据源收集起来并保存到大数据存储设备。 

Agent Source负责收集日志数据,例如从Kafka本地日志文件等。Source收集到数据后,将数据封装成event事件,发送给ChannelChannel是一个队列,有内存、磁盘、数据库等几种实现方式,主要用来对event事件消息排队,然后发送给SinkSink收到数据后,将数据输出保存到大数据存储设备,比如HDFSHBase等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值