Hadoop新手,使用本教程:https://acadgild.com/blog/streaming-twitter-data-using-flume/捕捉推文。这是我的水槽。conf文件:
TwitterAgent.sources = Twitter
TwitterAgent.channels = MemChannel
TwitterAgent.sinks = HDFS
TwitterAgent.sources.Twitter.type = org.apache.flume.source.twitter.TwitterSource
TwitterAgent.sources.Twitter.consumerKey=xxxx
TwitterAgent.sources.Twitter.consumerSecret=xxxx
TwitterAgent.sources.Twitter.accessToken=xxxx
TwitterAgent.sources.Twitter.accessTokenSecret=xxxx
TwitterAgent.sources.Twitter.keywords= #canpoli
TwitterAgent.sinks.HDFS.channel=MemChannel
TwitterAgent.channels.MemChannel.capacity=10000
TwitterAgent.sinks.HDFS.type=hdfs
TwitterAgent.sinks.HDFS.hdfs.path=hdfs:/xxxx/user/flume/tweets
TwitterAgent.sinks.HDFS.hdfs.fileType=DataStream
TwitterAgent.sinks.HDFS.hdfs.writeformat=Text
TwitterAgent.sinks.HDFS.hdfs.batchSize=1000
TwitterAgent.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`
它流式传输推特很好,它正确地保存到我想要的目录中,但它似乎在流式传输所有内容,而没有对我的关键字进行过滤。我收到了来自世界各地的推特,除了有那个标签。
可能是什么问题?
首先,它接受所有的标签,因为你给了一个空列表。
#
字符是注释,因此等于之后的所有内容都被视为忽略。至少我认为这就是它的解析方式。
您链接到一个不使用#
的站点,因此我会遵循该教程直到它起作用。
其次,该来源被认为是实验性的,似乎没有提到关键词。
https://flume.apache.org/FlumeUserGuide.html#twitter-1-firehose-source-experimental
您的代码看起来几乎与Cloudera中的此示例完全相同,该示例在配置中包含注释并具有关键字,如果您检查,则存在不同的源类。
TwitterAgent.sources.Twitter.type = com.cloudera.flume.source.TwitterSource
https://github . com/cloud era/CDH-Twitter-example/blob/master/flume-sources/flume . conf
你需要在那里下载该java代码,将其打包到JAR中,然后将其放在Flume lib目录中。
我试图将twitter提要流到hdfs,然后使用Hive。但是第一部分,流数据和加载到hdfs不起作用,并给出空指针异常。 这是我尝试过的。 4.我将flume-sources-1.0-snapshot.jar添加到/user/lib/flume/lib。 5.启动Hadoop并执行以下操作 6.我在/user/lib/flume中运行以下内容
我正在使用Flume 1.6.0-cdh5.9.1使用Twitter源流式传输推文。 配置文件如下所示: 对于Cloudera. jar依赖项,我使用Maven使用以下依赖项构建了: 现在,当我运行Flume Agent时,它成功启动,连接到Twitter,但在最后一行(接收状态流)后停止: 在最后一行之后什么都没有发生。它不会终止,不会流式传输任何东西。我看了一下HDFS位置,那里没有创建任何东
问题内容: 我遇到了-在我看来-奇怪的行为: 为什么str.split()不会接受关键字参数,即使这很有意义?我在Python2和Python3中都发现了这种现象。 问题答案: 见这个bug和它的superseder。 是CPython中的本机函数,因此具有此处描述的行为: CPython实现细节: 一个实现可能会提供内置函数,这些函数的位置参数没有名称,即使出于文档目的而对其进行了“命名”,因此
问题内容: 我已经尝试了本文和Cassandra doc中的 所有措施。 我已经尝试运行所有版本的Cassandra,包括tarball和Debian软件包中的最新版本3.7,但是执行时总是出错。 错误: 连接错误:(“无法连接到任何服务器”,{‘127.0.0.1’:TypeError(’ref()不带有关键字参数’,)}) 我将Linux Mint从17.3升级到18之前,运行Cassandr
问题内容: 在Java 8中,这有效: 但这不是: Maps允许使用null键,并且List.class.getSuperclass()返回null。但是Collectors.groupingBy在Collectors.java的第907行发出了NPE: 如果我创建自己的收集器,则此行会更改为: 我的问题是: 1)Collectors.groupingBy的Javadoc并未表示不应映射空键。是否
我的推特数据格式不可读。我使用水槽获取了推特数据,我正在尝试使用蜂巢表读取这些数据。但是我在 hdfs 中看不到正确的数据。以下是详细信息: flume-env.sh - twitter.conf- 当我少做一个文件时: 有人可以告诉我哪里出错了吗?我需要蜂巢表的可读格式的数据。