flink使用BucketingSink将文件写入hdfs
2017-09-21 16:23
471 查看
最近在找一些写入到flink写入到hdfs的方法,然后在官网找到了这个(https://ci.apache.org/projects/flink/flink-docs-release-1.4/dev/connectors/filesystem_sink.html),然后就尝试着去使用这个,虽然能把数据写到hdfs上面去,但是是分片的,结果图如下:
里面的内容是把我原来上传的文件给分片了。ps:我在想能不能在最后的输出将数据不要输出这么多的分片,而是一个总的文件。
默认情况下,当元素到达时,当前的系统时间将会降级,并使用日期时间模式“yyyy-MM-dd - HH”命名这些存储区。此模式将传递到具有当前系统时间的SimpleDateFormat以形成存储桶路径。每当遇到新的日期时,都会创建一个新的桶。例如,如果您有一个包含分钟的模式作为最细粒度,您将每分钟获得一个新的桶。每个桶本身就是一个包含几个零件文件的目录:每个并行实例的接收器将创建自己的零件文件,当零件文件变得太大时,槽也会在其他文件旁边创建一个新的零件文件。当桶变得不活动时,打开的零件文件将被刷新并关闭。一个桶在最近没有被写入时被视为非活动的。默认情况下,接收器每分钟检查非活动的桶,并关闭一分钟内尚未写入的任何桶。可以在BucketingSink上使用setInactiveBucketCheckInterval()和setInactiveBucketThreshold()配置此行为。
程序代码如下:
里面的内容是把我原来上传的文件给分片了。ps:我在想能不能在最后的输出将数据不要输出这么多的分片,而是一个总的文件。
默认情况下,当元素到达时,当前的系统时间将会降级,并使用日期时间模式“yyyy-MM-dd - HH”命名这些存储区。此模式将传递到具有当前系统时间的SimpleDateFormat以形成存储桶路径。每当遇到新的日期时,都会创建一个新的桶。例如,如果您有一个包含分钟的模式作为最细粒度,您将每分钟获得一个新的桶。每个桶本身就是一个包含几个零件文件的目录:每个并行实例的接收器将创建自己的零件文件,当零件文件变得太大时,槽也会在其他文件旁边创建一个新的零件文件。当桶变得不活动时,打开的零件文件将被刷新并关闭。一个桶在最近没有被写入时被视为非活动的。默认情况下,接收器每分钟检查非活动的桶,并关闭一分钟内尚未写入的任何桶。可以在BucketingSink上使用setInactiveBucketCheckInterval()和setInactiveBucketThreshold()配置此行为。
程序代码如下:
DataStream ds=env.readTextFile("your-data-path"); BucketingSink bk=new BucketingSink("your-hdfs-path"); //设置的是检查两次检查桶不活跃的情况的周期 bk.setInactiveBucketCheckInterval(1L) //设置的是关闭不活跃桶的阈值,多久时间没有数据写入就关闭桶 bk.setInactiveBuckerThreshold(1L) ds.addSink(bk); env.execute();
相关文章推荐
- 模拟使用Flume监听日志变化,并且把增量的日志文件写入到hdfs中
- 模拟使用Flume监听日志变化,并且把增量的日志文件写入到hdfs中
- 模拟使用Flume监听日志变化_并且把增量的日志文件写入到hdfs中
- c# 使用WINAPI 进行读取写入配置文件
- C#使用WINAPI进行读取写入配置文件_C#【编程联盟】
- 使用Apache POI创建Excel,并从数据库中读取数据写入到Excel文件中
- 使用FileReader和FileWriter读取写入文件内容
- 使用数据流下载文件&把异常写入Application事件
- 通过fuse使greenplum外部表能使用HDFS上的文件
- 文件的创建写入读取 日期控件的使用
- 使用HDFS来进行线上应用的文件存储
- 如何使用JavaExcel(jxl)读取一个文件并写入一个新文件
- php 使用 hdfs 分布式存储海量小文件
- 初学Java,IO之使用FileOutputStream和FileWriter写入文件(四十二)
- 动态创建文本文件并写入数据 避免正由另一进程使用,因此该进程无法访问该文件。的问题
- log4net1.2.10 在asp.net 2.0当中的使用:写入文件或者数据库
- 如何使用 ASP.NET 和 Visual C# .NET 向浏览器写入二进制文件
- 使用FileReader和FileWriter读取写入文件内容
- 如果要在文件中写入空行,可以使用哪些方法?
- log4net1.2.10 在asp.net 2.0当中的使用:写入文件或者数据库