flume java客户端_flume客户端模拟数据发送并记录在mysql数据库

本文展示了如何创建一个Flume自定义Sink,该Sink将接收到的数据存储到MySQL数据库。通过配置Flume并使用Java客户端发送模拟数据,实现了数据的实时传输和记录。
摘要由CSDN通过智能技术生成

这里只是做了简单的demo,并未深研

1.编写PolluteSink

1.1 maven创建项目(pom.xml)

org.apache.flume

flume-ng-core

1.6.0

org.apache.flume

flume-ng-configuration

1.6.0

org.apache.flume

flume-ng-sdk

1.6.0

log4j

log4j

1.2.17

org.apache.flume

flume-ng-core

1.6.0

org.apache.camel

camel-support

3.0.0-M2

mysql

mysql-connector-java

6.0.6

org.apache.maven.plugins

maven-compiler-plugin

3.1

1.8

1.8

1.2 自定义sink

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

package com.example.demo1.pollute;

import com.example.demo1.entity.Pollute;

import com.example.demo1.utils.FormatDataUtil;

import com.google.common.base.Preconditions;

import com.google.common.collect.Lists;

import org.apache.flume.*;

import org.apache.flume.conf.Configurable;

import org.apache.flume.sink.AbstractSink;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import java.nio.charset.Charset;

import java.sql.*;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

/**

* 污染源在线自动监控(监测)系统数据传输标准(国标)

*

* @author chenxiaokang

* @date 2019/10/14 13:53

*/

public class PolluteSink extends AbstractSink implements Configurable {

private Logger LOG = LoggerFactory.getLogger(PolluteSink.class);

private String tableName;

private String user;

private String password;

private String hostname;

private String port;

private Connection conn;

private String databaseName;

private PreparedStatement preparedStatement;

@Override

public void configure(Context context) {

databaseName = context.getString("databaseName");

Preconditions.checkNotNull(databaseName, "databaseName must be set!!");

tableName = context.getString("tableName");

Preconditions.checkNotNull(tableName, "tableName must be set!!");

user = context.getString("user");

Preconditions.checkNotNull(user, "user must be set!!");

password = context.getString("password");

Preconditions.checkNotNull(password, "password must be set!!");

hostname = context.getString("hostname");

Preconditions.checkNotNull(hostname, "host must be set!!");

port = context.getString("port");

Preconditions.checkNotNull(port, "port must be set!!");

}

@Override

public Status process() throws EventDeliveryException {

Status result = Status.READY;

Channel channel = getChannel();

List actions = Lists.newArrayList();

Transaction transaction = null;

try {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jmockdata(再也不用苦逼的造测试数据了) Jmockdta是一款实现模拟JAVA类型或对象的实例化并随机初始化对象的数据的工具框架。单元测试的利器。     The plug-in of Jmockdata what through random algorithm mock java data.   Jmockdata插件通过随机算法模拟Java数据.   版本信息 Jmockdata-2.0 发布时间 2017-02-03 Jmockdata-1.0 发布时间 2017-01-04 具体介绍和用法可以参考如下:   0. 模拟数据入口方法 JMockData.mock(JmockDataWrapper) 1. 被模拟数据必须继承JmockDataWrapper经过它的包装 2. 被模拟的数据最好是plain bean,只提供getter,setter,has,is方法的才可以被模拟 3. 框架默认实现了40个元数据类型的数据模拟器包括:   byte.class,Byte.class,byte[].class,Byte[].class, short.class,Short.class,short[].class,Short[].class, int.class,Integer.class,int[].class,Integer[].class, long.class,Long.class,long[].class,Long[].class, float.class,Float.class,float[].class,Float[].class, double.class,Double.class,double[].class,Double[].class, boolean.class,Boolean.class,boolean[].class,Boolean[].class, char.class,Character.class,char[].class,Character[].class, String.class,String[].class, BigDecimal.class,BigDecimal[].class, BigInteger.class,BigInteger[].class, Date.class,Date[].class 通过对以上基本元数据类型的模拟实现,本框架可以轻松模拟由以上元数据结构组成的BEAN、LIST、SET、ARRAY等复杂深度的数据结构的数据模拟。   4. 可以通过JmockDataContext 获取模拟过程的所有上下文信息,甚至可以打印整个模拟类型树   5. 可以通过JMockDataManager 注册模拟数据类型,重写模拟数据算法,注册模拟数据类拦截器等 6. 可以通过实现MockData来实现一个模拟数据类型 7. 可以通过实现JmockDataTemplate,或者继承JmockDataTemplateDefault来重写模拟数据算法 8. 可以通过实现JmockDataInterceptor来实现一个拦截器 9. 具体示例实践请参考https://github.com/jsonzou/jmockdata-demo 10. 有问题或者对本框架有新的想法,请联系我, 作者:jsonzou 标签:Jmockdata
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值