1.4 Flink HDFS Connector /Flink HDFS连接器
admin
2023-07-30 17:02:00
0

在上一章节已经翻译了Flink Kafka Connector,但由于HDFS作为大多数研究大数据者日常用到的,此章节并添加翻译HDFS的连接器。


此连接器提供了一个Sink,将分区文件写入Hadoop FileSystem支持的任何文件系统。要使用此连接器,请将以下依赖项添加到您的项目中:


  org.apache.flink

  flink-connector-filesystem_2.10

  1.2.0

请注意,流连接器当前不是二进制分发的一部分。有关如何将程序与程序库打包以进行集群执行的信息,请参阅此处。


折叠文件接收器(Bucketing File Sink


可以配置压力行为以及写入操作,但我们稍后将会介绍。这是你如何创建一个耐心的病人,默认情况下,它会收敛到按时间分割的滚动文件:



DataStream input = ...;

input.addSink(new BucketingSink (“/base/path”));


唯一必需的参数是存储桶的基本路径。可以通过指定自定义bucketer,写入器和批量大小来进一步配置接收器。


默认情况下,当元素到达时,当前的系统时间将会降级,并使用日期时间模式“yyyy-MM-dd-HH”命名这些存储区。此模式将传递给具有当前系统时间的SimpleDateFormat以形成存储桶路径。每当遇到新的日期时,都会创建一个新的桶。例如,如果您有一个包含分钟作为最细粒度的模式,您将每分钟获得一个新的桶。每个桶本身是一个包含几个零件文件的目录:每个并行实例的接收器将创建自己的零件文件,当零件文件变得太大时,槽也将在其他文件旁边创建一个新的零件文件。当桶变得不活动时,打开的零件文件将被刷新并关闭。当最近没有写入时,桶被视为不活动。默认情况下,接收器每分钟检查不活动的桶,并关闭一分钟内未写入的任何桶。可以在BucketingSink上使用setInactiveBucketCheckInterval()和setInactiveBucketThreshold()配置此行为。


您也可以使用BucketingSink上的setBucketer()指定自定义bucketer。如果需要,bucketer可以使用元素或元组的属性来确定bucket目录。


默认的作者是StringWriter。这将调用toString()对传入的元素,并将它们写入部分文件,用换行符分隔。要在BucketingSink上指定一个自定义的作者,请使用setWriter()。如果要编写Hadoop SequenceFiles,可以使用提供的SequenceFileWriter,它也可以配置为使用压缩。


最后一个配置选项是批量大小。这指定何时应该关闭零件文件并启动一个新的零件。 (默认部分文件大小为384 MB)。


例:



DataStream > input = ...;


sinketingSink sink = new BucketingSink (“/ base / path”);

sink.setBucketer(new DateTimeBucketer (“yyyy-MM-dd-HHmm”));

sink.setWriter(new SequenceFileWriter ());

sink.setBatchSize(1024 * 1024 * 400); //这是400 MB,


input.addSink(sink);

这将创建一个写入到遵循此模式的桶文件的接收器:


/ base / path / {date-time} / part- {parallel-task} - {count}

其中date-time是从日期/时间格式获取的字符串,parallel-task是并行接收器实例的索引,count是由于批量大小而创建的部分文件的运行数。



相关内容

热门资讯

斐济要联合澳大利亚抗华?专家一... 当地时间7月6日,澳大利亚和斐济签署了一项新的防务联盟协议,旨在加强两国关系。有西方媒体宣称,该协议...
成都27岁遇害女子母亲开始直播... 极目新闻记者 谢茂7月6日,“成都27岁女子遇害案”受害者王紫雅的母亲王女士,进行了第一天直播带货。...
一站式服务,新车上牌流程优化(... 人民网记者 申佳平为进一步便利新车上牌,工业和信息化部、公安部日前联合印发通知,全面推行国产小客车预...
霉霉的世纪婚礼,祝福没来,骂声... 作者 | 贺一 编辑 | 吴擎在《The Lucky One》中,泰勒·斯威夫特(Taylor Sw...
电视自动开关机是怎么回事 过压保护会导致电视自动关机。电视机的过压保护是由电视机开关电源的高电压引起的,因此,在维修时应该从电...
电视为什么会自动开关机 原因:电视机出现自动的开关机现象是比较常见的问题,一般引起电视机自动开关机的原因有很多,最常见的因素...
电视不停的黑屏闪 因为电源本身出现了问题,就会直接导致电视不停的黑屏闪;也有可能是因为电视机当中的AD板上面的高压板开...
冰箱显示f1是什么意思? 冰箱显示f1是什么意思?表示冰箱出现故障,其表现为为温度显示及温控按钮失灵,导致了冰箱的食品开始化冻...
冰箱后面带E是什么意思 表示冰箱传感器故障,其中E1代冷藏室传感器短路或断路,E2代表微冻室传感器短路故障,E3代表的是冷冻...
广西在呼救,“外面一片汪洋” 作者 | 肖瑶 编辑 | 张来7月6日中午11时23分,红棉在社交平台上发帖求助,希望有救援队能去广...