flume-ng-mysql-sink_有关flume-ng自定义sink的创建-打包-引用

package com.test.message;

import java.util.*;

import java.util.logging.Logger;

import org.apache.flume.*;

import org.apache.flume.conf.Configurable;

import org.apache.flume.sink.AbstractSink;

import org.slf4j.LoggerFactory;

import com.google.common.base.Preconditions;

import com.google.common.collect.Lists;

public class testmessage extends AbstractSink implements Configurable{

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

private String hostname;

private String port;

private String username;

private String password;

private int size;

public testmessage(){

LOG.info("Case_1 start...");

}

@Override

public void configure(Context context){

hostname = context.getString("hostname");

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

port = context.getString("port");

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

username = context.getString("username");

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

password = context.getString("password");

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

size = context.getInteger("size");

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

}

@Override

public void start(){

LOG.info("function start running");

LOG.info("hostname: " + hostname);

LOG.info("port: " + port);

LOG.info("username: " + username);

LOG.info("password: " + password);

}

@Override

public void stop(){

LOG.info("function stop running");

}

public int size(){

return size;

}

@Override

public Status process() throws EventDeliveryException{

Status result = Status.READY;

Channel channel = getChannel();

Transaction transaction = channel.getTransaction();

Event event;

String content;

List actions = Lists.newArrayList();

transaction.begin();

try{

for(int n=0; n < size; n++){

event = channel.take();

if(event != null){

content = new String(event.getBody());

LOG.info("content:"+content);

actions.add(content);

} else {

result = Status.BACKOFF;

break;

}

}

if(actions.size() > 0){

for(String temp : actions){

LOG.info(temp+" ");

}

}

} catch (Throwable e) {

((org.slf4j.Logger) LOG).error("Fail to show");

} finally {

transaction.close();

}

return result;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值