这篇文章主要在上一篇文章的基础上讲一下 如何自定义flume到kafka的分区

上一节中从下面的地址下载了一个源码

https://github.com/beyondj2ee/flumeng-kafka-plugin/tree/master/

我们只是从中获取了jar包。这次我们就利用下载的源码去自定义分区

把源码通过mvn eclipse:eclipse 转变为普通java项目  导到eclipse中   结构如上图

上节讲的SimglePartition已经标出,源码如下

public class SinglePartition implements Partitioner<String> {

private static final Logger LOGGER = LoggerFactory.getLogger(SinglePartition.class);

public SinglePartition(VerifiableProperties props) {
    }

@Override
    public int partition(String key, int numberOfPartions) {
        
        return 0;
    }

}

我们把这个文件复制 改名为ManyPartition  修改源码中绿线标示的位置   即可

我的修改源码如下

public class ManyPartition implements Partitioner<String> {
    // - [ constant fields ] ----------------------------------------

/**
     * The constant LOGGER.
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(ManyPartition.class);

private int count = 0;
    public ManyPartition(VerifiableProperties props) {
    }

@Override
    public int partition(String key, int numberOfPartions) {
        return new Random().nextInt(numberOfPartions);
    }

}

然后通过  mvn clean package  重新编译  会重新生成flumeng-kafka-plugin.jar   然后把此jar包替换flume/lib/下的同名jar包就可使用自定义分区类

而上一节中提到的配置文件中的producer.sinks.r.partition.key=4  实际上没有多大的作用

他对应源码中KafkaSink类的process()方法中的代码  入下图标出所示

实际传入不传入这个partititonId没有任何区别   因为即使传入ParitionId  也是一个固定值  因此没有办法依照这个Id进行分区

flume+kafka (分区实现 默认单分区) (二)的更多相关文章

  1. flume+kafka (分区实现 默认单分区)

    这篇文章主要是log4j+flume+kafka的内容 首先从从下面的地址下载flume+kafka的插件包 https://github.com/beyondj2ee/flumeng-kafka-p ...

  2. mac系统之前做过Windows8系统,可能移除时没有通过boot camp助理移除,所以想要再安装windows系统时,点击boot camp助理的继续,弹出启动磁盘不能被分区或恢复单分区。

    因为把bootcamp分区抹掉,卸载,装载,点减号,合并成单分区,一直是操作失败.为了通过boot camp安装上Windows系统,索性重新安装mac ox系统,重新分区.重新开机,按住comman ...

  3. Kafka 生产者、消费者与分区的关系

    背景 最近和海康整数据对接, 需要将海康产生的结构化数据拿过来做二次识别. 基本的流程: 海康大数据 --> kafka server --> 平台 Kafka 的 topic 正常过车 ...

  4. 4种Kafka网络中断和网络分区场景分析

    摘要:本文主要带来4种Kafka网络中断和网络分区场景分析. 本文分享自华为云社区<Kafka网络中断和网络分区场景分析>,作者: 中间件小哥. 以Kafka 2.7.1版本为例,依赖zk ...

  5. 详解Centos默认磁盘分区

    对于有经验的Linux系统管理员,在安装系统之前都会对系统的分区进行规划:针对这一需求,下面就通过默认的Centos分区与大家分享一些关于Linux系统的知识.Linux系统的磁盘命名规范:硬盘类型标 ...

  6. Centos7不修改默认交换分区下添加交换分区

    交换分区介绍 Linux系统中的交换分区是当物理内存(RAM)被充满时,作为物理内存的缓存来使用. 当系统需要更多的内存资源而物理内存已经充满,内存中不活跃的页就会被移动到交换分区上. 交换分区位于硬 ...

  7. Oracle Spatial分区应用研究之二:按县分区与按省分区对比测试报告

    1.实验目的 在上一轮的实验中,oracle 11g r2版本下,在87县市实验数据的基础上,比较了分表与分区的效率,得出了分区+全局索引效率较高的结论(见上一篇博客).不过我们尚未比较过不同的分区粒 ...

  8. hadoop 之 kafka 安装与 flume -> kafka 整合

    62-kafka 安装 : flume 整合 kafka 一.kafka 安装 1.下载 http://kafka.apache.org/downloads.html 2. 解压 tar -zxvf ...

  9. Kafka入门学习随记(二)

    ====Kafka消费者模型 参考博客:http://www.tuicool.com/articles/fI7J3m --分区消费模型 分区消费架构图 图中kafka集群有两台服务器(Server), ...

随机推荐

  1. Java生成 Word文档的并打印解决方案

    户要求用程序生成标准的word文档,要能打印,而且不能变形,以前用过很多解决方案,都在客户严格要求下牺牲的无比惨烈. POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个 ...

  2. 关于QStringRef

      QString 为字符串操作提供了各种成员比如mid().left().right().它们都创建会一个新的字符串,因此有一个对在已存在QString的malloc和深拷贝. 与此相反,QStri ...

  3. Centos7安装杀毒软件ClamAV

    Clam AntiVirus(ClamAV)是免费而且开放源代码的防毒软件,软件与病毒码的更新皆由社群免费发布.目前ClamAV主要是使用在Linux.FreeBSD等Unix-like系统架设的邮件 ...

  4. 代码片段---S3C2440按键中断驱动程序的设计

    用到的知识: 中断  等待队列  睡眠  select  poll  misc http://pan.baidu.com/s/1bneSG5h

  5. Toad for Oracle 授权权限

    grant create session to 用户;//授予zhangsan用户创建session的权限,即登陆权限 grant dba to 用户; //授权dba权限,导入导出数据 grant ...

  6. 嵌入式设备上运行AllJoyn注意事项

    1. 交叉编译AllJoyn库.编译成功后的文件位于:alljoyn-3.3.0-src\build\linux\arm\debug\dist\目录下: 2. 程序要使用AllJoyn,必须要启动al ...

  7. Ext.Net TextField Enter事件

    (1)DirectEvents触发后台 <ext:TextField ID="txt_Upc" runat="server" Width="15 ...

  8. 关于mysql下hibernate实体类字段与数据库关键字冲突的问题

    好久没写了,都忘记博客了,趁着现在还在公司,写的东西是经过验证的,不是在家凭记忆力写的,正确率有保障,就说说最近遇到的一件事情吧. 以前一直用的oracle数据库,这次项目我负责的模块所在的系统是用的 ...

  9. D. Powerful array 莫队算法或者说块状数组 其实都是有点优化的暴力

    莫队算法就是优化的暴力算法.莫队算法是要把询问先按左端点属于的块排序,再按右端点排序.只是预先知道了所有的询问.可以合理的组织计算每个询问的顺序以此来降低复杂度. D. Powerful array ...

  10. D - K Smallest Sums(多路归并+贪心)

    Problem K K Smallest Sums You're given k arrays, each array has k integers. There are kk ways to pic ...