Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Flume管道创建的文件大小增加到Hadoop中_Hadoop_Twitter4j_Flume - Fatal编程技术网

将Flume管道创建的文件大小增加到Hadoop中

将Flume管道创建的文件大小增加到Hadoop中,hadoop,twitter4j,flume,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 = Twi

我有一个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
我省略了私有字段。这是将tweet下载到apachehadoop中。然而,在创建另一个tweet文件之前,每个tweet文件的大小只有30-60KB。我如何才能创建更大的文件,这样我就不会有过多的小文本文件,而是只有几个大文件(比如说,每个文件中有10000条推文)


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

我解决了这个问题,将rollCount更改为0,transactionCapactity更改为1000(使其小于容量),并将batchSize设置为10000。我认为这样做很有效,因为现在它向每个文件写入了大量数据(精确地说是64MB)。

我解决了这个问题,将rollCount改为0,transactionCapactity改为1000(使其小于容量),并将batchSize改为10000。我认为这样做很有效,因为现在它正在向每个文件写入大量数据(精确地说是64MB)。

在您的回答中,当您将rollCount设置为0时,flume将根据隐式默认值每隔30秒滚动文件。也许这就是为什么你要买大号的

hdfs.rollInterval   30  <-- default
hdfs.rollSize   0   
hdfs.rollCount  0   
hdfs.batchSize  10000

batchSize只是您希望从通道获得的吞吐量,并不表示文件最终会有多大

在您的回答中,当您将rollCount设置为0时,flume将根据隐式默认值在30秒内滚动文件。也许这就是为什么你要买大号的

hdfs.rollInterval   30  <-- default
hdfs.rollSize   0   
hdfs.rollCount  0   
hdfs.batchSize  10000
batchSize只是您希望从通道获得的吞吐量,并不表示文件最终会有多大