我用flume收集tweet并将它们存储在hdfs上。收集部分工作正常,我可以在我的文件系统中找到我所有的tweet。
现在我想在一个文件中提取所有这些tweet。问题是不同的tweet存储如下:
我们可以看到,tweet存储在128mb的块中,但只使用了几个ko,这是hdfs的正常行为,如果我错了,请纠正我。
然而,我怎么能在一个文件中得到所有不同的推文?
下面是我使用以下命令运行的conf文件:
flume ng agent-n twitter代理-f./my flume文件/twitter-stream-tvseries.conf
twitter-stream-tvseries.conf:
twitteragent.sources=推特
twitteragent.channels=内存通道
twitteragent.sinks=hdfs
twitteragent.sources.twitter.type=org.apache.flume.source.twitter.twittersource twitteragent.sources.twitter.consumerkey=hidden twitteragent.sources.twitter.consumersecret=hidden twitteragent.sources.twitter.accesstokensecret=hidden twitteragent.sources.twitter.keywords=get,gameofthrones
twitteragent.sources.twitter.keywords=got,gameofthrones
twitteragent.sinks.hdfs.channel=memchannel twitteragent.sinks.hdfs.type=hdfs twitteragent.sinks.hdfs.hdfs.path=hdfs://ip-addressl:8020/user/root/data/twitter/tvseries/tweets-twitteragent.sinks.hdfs.hdfs.filetype=datastream-twitteragent.sinks.hdfs.hdfs.writeformat=text-twitteragent.sinks.hdfs.hdfs.batchsize=1000twitteragent.sinks.hdfs.hdfs.rollsize=0 twitteragent.sinks.hdfs.hdfs.rollcount=10000 twitteragent.sinks.hdfs.hdfs.rollinterval=600
twitteragent.channels.memchannel.type=memory twitteragent.channels.memchannel.capacity=10000 twitteragent.channels.memchannel.transactioncapacity=1000
twitteragent.sources.twitter.channels=memchannel twitteragent.sinks.hdfs.channel=memchannel
2条答案
按热度按时间qeeaahzv1#
您可以将hdfs接收器配置为按时间、事件或大小生成消息。因此,如果要保存多条消息直到达到120mb限制,请设置
5us2dqdw2#
可以使用以下命令将文件连接到单个文件中:
或者,如果要将数据存储到配置单元表中以供以后分析,请创建一个外部表并将其使用到配置单元数据库中。