Flume-ng与Mysql整合开发

Posted 过往记忆大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flume-ng与Mysql整合开发相关的知识,希望对你有一定的参考价值。

如果本文的内容对您的学习和工作有所帮助,不妨支付宝赞助(wyphao.2007@163.com)一下:

  我们知道,Flume可以和许多的系统进行整合,包括了Hadoop、Spark、Kafka、Hbase等等;当然,强悍的Flume也是可以和mysql进行整合,将分析好的日志存储到Mysql(当然,你也可以存放到pg、oracle等等关系型数据库)。

  不过我这里想多说一些:Flume是分布式收集日志的系统;既然都分布式了,数据量应该很大,为什么你要将Flume分析出来的数据用Mysql进行储存?能否在下面评论处留下你的使用场景呢?


如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

其实,Flume和Mysql进行整合开发的过程也是相当的简单的。代码如下:

代码太长,格式不好,请到 http://www.iteblog.com/archives/1109查看


pom文件中的依赖:

01 <dependencies>
02 <dependency>
03 <groupId>org.apache.flume</groupId>
04 <artifactId>flume-ng-core</artifactId>
05 </dependency>
06
07 <dependency>
08 <groupId>org.apache.flume</groupId>
09 <artifactId>flume-ng-configuration</artifactId>
10 </dependency>
11
12 <dependency>
13 <groupId>mysql</groupId>
14 <artifactId>mysql-connector-java</artifactId>
15 <version>5.1.25</version>
16 </dependency>
17
18 <dependency>
19 <groupId>org.slf4j</groupId>
20 <artifactId>slf4j-api</artifactId>
21 </dependency>
22
23 <dependency>
24 <groupId>org.slf4j</groupId>
25 <artifactId>slf4j-log4j12</artifactId>
26 <scope>test</scope>
27 </dependency>
28 </dependencies>

运行程序时,先在Mysql中创建一个表

1 mysql> create table mysqltest(
2 -> id int(11) NOT NULL AUTO_INCREMENT,
3 -> content varchar(50000) NOT NULL,
4 -> PRIMARY KEY (`id`)
5 -> ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
6 Query OK, 0 rows affected, 1 warning (0.05 sec)

然后在flume中创建以下配置

01 # User: 过往记忆
02 # Date: 14-9-4
03 # Time: 下午13:16
04 # bolg: http://www.iteblog.com
05 # 本文地址:http://www.iteblog.com/archives/1109
06 # 过往记忆博客,专注于hadoop、hive、spark、shark、flume的技术博客,大量的干货
07 # 过往记忆博客微信公共帐号:iteblog_hadoop
08
09 agent.sinks.mysqlSink.type = com.iteblog.flume.MysqlSink
10 agent.sinks.mysqlSink.hostname=localhost
11 agent.sinks.mysqlSink.port=3306
12 agent.sinks.mysqlSink.databaseName=ngmonitor
13 agent.sinks.mysqlSink.tableName=mysqltest
14 agent.sinks.mysqlSink.user=root
15 agent.sinks.mysqlSink.password=123456
16 agent.sinks.mysqlSink.channel = c1

用下面的命令就可以启动:

1 bin/flume-ng agent -c conf/ -f conf/mysql_test.conf -n agent

再看下Mysql中的情况:

1 mysql> select count(*) from mysqltest;
2 +----------+
3 | count(*) |
4 +----------+
5 | 98300 |
6 +----------+


以上是关于Flume-ng与Mysql整合开发的主要内容,如果未能解决你的问题,请参考以下文章

Flume-ng禁用自动加载配置文件功能

如何利用Spring Boot 整合微信小程序实现登录与增删改查(含代码解析)

Flume-NG + HDFS + HIVE 日志收集分析

flume-ng源码分析-核心组件分析

springboot Thymeleaf 整合

Flume-NG源码分析-整体结构及配置载入分析