flink-streaming消费kafka动态分区写入HDFS(SequenceFile)文件

本文介绍如何使用 Apache Flink 在 streaming 模式下实现动态分区,重点讲解自定义分区方法的过程,包括从流数据中获取分区字段,并通过具体示例展示如何配置 StreamingFileSink 实现数据写入 HDFS 的 SequenceFile。

         

 

        主要记录下streaming模式下动态分区怎么写文件,sql模式直接写就是了,streaming模式需要自己写下分区方法。大致的数据流程是消费kafka,拆解json,数据写到hdfs(sequenceFile)路径。

1、分区需要自定义,这里是读取流数据,获取分区字段

package partitionassigner;

import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.core.io.SimpleVersionedSerializer;
import org.apache.flink.streaming.api.functions.sink.filesystem.BucketAssigner;
import org.apache.flink.streaming.api.functions.sink.filesystem.bucketassigners.SimpleVersionedStringSerializer;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;

import java.text.SimpleDateFormat;
import java.util.Date;

public class PartitionAssigner<IN> implements BucketAssigner<Tuple2<LongWritable, Text>, String> {

    @Ove
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值