java - Stream在twitter4j(Hadoop- flume)中关闭

标签 java hadoop twitter

我刚刚安装了apache hadoop并对其进行了实验。我处于第一步,正在提取数据。我正在使用cloudera +他们的VM的twitter示例。

我的问题是读取Twitter数据的流似乎有问题,我不知道是什么。

这是我的flume.conf:

TwitterAgent.sources= Twitter
TwitterAgent.channels= MemChannel
TwitterAgent.sinks=HDFS
TwitterAgent.sources.Twitter.type = org.apache.flume.source.twitter.TwitterSource
TwitterAgent.sources.Twitter.channels=MemChannel

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

TwitterAgent.sources.Twitter.keywords= trump

TwitterAgent.sinks.HDFS.channel=MemChannel
TwitterAgent.sinks.HDFS.type=hdfs
TwitterAgent.sinks.HDFS.hdfs.path=hdfs://localhost:8020/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=100

然后,我使用以下命令启动水槽代理:
flume-ng agent -n TwitterAgent -c conf -f flume.conf

看起来很简单,但是运行代理时我不断收到此错误消息:
16/10/23 12:41:27 INFO twitter.TwitterSource: Starting twitter source org.apache.flume.source.twitter.TwitterSource{name:Twitter,state:IDLE} ...
16/10/23 12:41:27 INFO twitter.TwitterSource: Twitter source Twitter started.
16/10/23 12:41:27 INFO twitter4j.TwitterStreamImpl: Establishing connection.
16/10/23 12:41:28 INFO twitter4j.TwitterStreamImpl: Connection established.
16/10/23 12:41:28 INFO twitter4j.TwitterStreamImpl: Receiving status stream.
16/10/23 12:41:28 INFO twitter4j.TwitterStreamImpl: Stream closed.
16/10/23 12:41:28 ERROR twitter.TwitterSource: Exception while streaming tweets
Stream closed.
Relevant discussions can be found on the Internet at:
    http://www.google.co.jp/search?q=a8fd061d or
    http://www.google.co.jp/search?q=00070a0c
TwitterException{exceptionCode=[a8fd061d-00070a0c a8fd061d-0007099a], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.5}
    at twitter4j.StatusStreamBase.handleNextElement(StatusStreamBase.java:199)
    at twitter4j.StatusStreamImpl.next(StatusStreamImpl.java:57)
    at twitter4j.TwitterStreamImpl$TwitterStreamConsumer.run(TwitterStreamImpl.java:478)
Caused by: java.io.EOFException: Unexpected end of ZLIB input stream
    at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:240)
    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
    at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:116)
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at java.io.BufferedReader.fill(BufferedReader.java:154)
    at java.io.BufferedReader.readLine(BufferedReader.java:317)
    at java.io.BufferedReader.readLine(BufferedReader.java:382)
    at twitter4j.StatusStreamBase.handleNextElement(StatusStreamBase.java:85)
    ... 2 more

如您所见,它至少能够连接到twitter API。这是什么原因造成的?有人曾经经历过吗?

最佳答案

自10月21日对DYN发起攻击以来,twitter流API一直遇到问题。这些都已在twitter开发人员论坛上进行了报道,twitter工作人员已经意识到了这个问题:https://twittercommunity.com/t/issues-reported-with-streams-since-10-21/76429

到目前为止,对于导致问题的原因还没有一个明确的答案,但是观察到的行为是,与Twitter的任何流终结点的连接都在短时间后关闭(通常(尽管并非总是))而没有收到任何数据。有时,连接在发送响应时会关闭,从而导致无效的JSON。

其余端点似乎正在运行。

关于java - Stream在twitter4j(Hadoop- flume)中关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40207141/

相关文章:

java - Java 代码中的 StackOverFlowError

java - Jackson - 无法反序列化带有时区偏移量的日期时间 'unparsed text found at index 23'

hadoop - 警告 hdfs.DFSClient : zero

android - 是否有适用于 Android 的生产质量 OAuth 示例?

html - 网站上的定制 Twitter Feed

java - 带有 4 个项目的 GridView android

java - 从 java 应用程序中打开 byte[] 作为文件,用户不应该能够编辑该文件

java - hadoop和Java安装

hadoop - 为什么 Impala 表定义不复制?

python - Twitter Stream API,参数跟随有无法解析的项目