hadoop - 增加 Flume 管道创建的文件大小到 Hadoop

标签 hadoop twitter4j flume

我有一个 Flume 的配置文件,如下所示:

TwitterAgent.sources = Twitter
TwitterAgent.channels = MemChannel
TwitterAgent.sinks = HDFS

TwitterAgent.sources.Twitter.type = 
TwitterAgent.sources.Twitter.channels = MemChannel

TwitterAgent.sources.Twitter.consumerKey = 
TwitterAgent.sources.Twitter.consumerSecret = 
TwitterAgent.sources.Twitter.accessToken = 
TwitterAgent.sources.Twitter.accessTokenSecret =  

TwitterAgent.sources.Twitter.keywords = 

TwitterAgent.sinks.HDFS.channel = MemChannel
TwitterAgent.sinks.HDFS.type = hdfs
TwitterAgent.sinks.HDFS.hdfs.path =
TwitterAgent.sinks.HDFS.hdfs.fileType = DataStream
TwitterAgent.sinks.HDFS.hdfs.writeFormat = Text
TwitterAgent.sinks.HDFS.hdfs.batchSize = 10000
TwitterAgent.sinks.HDFS.hdfs.rollSize = 0
TwitterAgent.sinks.HDFS.hdfs.rollCount = 10000

TwitterAgent.channels.MemChannel.type = memory
TwitterAgent.channels.MemChannel.capacity = 10000
TwitterAgent.channels.MemChannel.transactionCapacity = 10000

我省略了私有(private)字段。这是将推文下载到 Apache Hadoop 中。但是,在创建另一个推文文件之前,每个推文文件仅达到大约 30 - 60 Kb。我怎样才能创建更大的文件,这样我就不会得到过多的小文本文件,而是只有几个大文件(例如,每个文件中有 10000 条推文)?

我以为将 rollCount 设置为 10000 就可以了,但似乎不行。

最佳答案

我通过将 rollCount 更改为 0,将 transactionCapactity 更改为 1000(以使其小于容量)并将 batchSize 保留为 10000 来解决此问题。我认为这是可行的,因为现在它正在写入大量数据每个文件(准确地说是 64MB)。

关于hadoop - 增加 Flume 管道创建的文件大小到 Hadoop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18049622/

相关文章:

hadoop - Hortonworks练习考试-将文件从本地计算机复制到hdfs错误

java - Twitter4j:在主题标签中搜索关键字

java - 尝试使用 twitter4j 更新状态时出现错误 401

java - twitter4j:以异步模式运行

hadoop - 启动 Flume 代理时找不到文件异常

hadoop - 无法使用 Spark 从 HiveContext 获取现有 Hive 表

java - Hadoop:在映射器的输出中使用自定义对象

hadoop - 停止 Flume Agent

hadoop - HDFS接收器水槽太多小文件

ssl - 在 Twitter API SSL/TLS 强制要求之后,Apache Flume 停止流式传输 Twitter 数据。