2016-10-23 8 views
0

私はちょうどApacheのハープをインストールし、それを試しました。私はデータを抽出している最初の段階に入っています。私はcloudera +そのVMのtwitterの例を使用しています。ストリームがtwitter4j(Hadoop-flume)で閉じています

私が持っている問題は、Twitterのデータを読んでいるストリームに問題があるようだということです。何がわからないのですか?

これは私のflume.confです:

flume-ng agent -n TwitterAgent -c conf -f 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 

は、その後、私は、このコマンドを使用して水路エージェントを開始しますエージェント:

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のAに接続できるPI。この原因は何ですか?誰もこれまでにこれを経験した?

答えて

0

TwitterのストリーミングAPIは、10月21日のDYN攻撃以降、問題が発生しています。これらはtwitter開発者フォーラムで報告されており、twitterスタッフは問題を認識しています:https://twittercommunity.com/t/issues-reported-with-streams-since-10-21/76429

問題の原因が何であるかについて明確な答えはありませんが、観察された振る舞いは、Twitterのストリーミングエンドポイントのいずれかへの接続が短時間(通常は必ずしもそうではありません)データを受信することなく。応答が送信されている間に接続が閉じられ、無効なJSONが返されることがあります。

しかし、残りのエンドポイントは機能しているようです。

関連する問題