Cloudera 5.4.2: el tamaño del bloque Avro no es válido o es demasiado grande cuando se usa Flume y la transmisión de Twitter

Hay un pequeño problema cuando intento Cloudera 5.4.2. Base en este artículo

Apache Flume - Obteniendo datos de Twitterhttp://www.tutorialspoint.com/apache_flume/fetching_twitter_data.htm

Intenta buscar tweets usando Flume y la transmisión de Twitter para el análisis de datos. Todo está contento, cree la aplicación de Twitter, cree el directorio en HDFS, configure Flume y luego comience a buscar datos, cree un esquema encima de los tweets.

Entonces, aquí está el problema. La transmisión de Twitter convierte los tweets al formato Avro y envía eventos Avro a sumideros HDFS aguas abajo, cuando la tabla Hive respaldada por Avro carga los datos, recibí el mensaje de error que decía "El tamaño del bloque Avro no es válido o es demasiado grande".

Oh, ¿qué es el bloque avro y la limitación del tamaño del bloque? ¿Puedo cambiarlo? ¿Qué significa según este mensaje? ¿Es culpa del archivo? ¿Es culpa de algunos registros? Si la transmisión de Twitter cumplió con los datos de error, debería reducirse. Si es bueno convertir los tweets al formato Avro, a la inversa, los datos de Avro deben leerse correctamente, ¿verdad?

Y también pruebo el avro-tools-1.7.7.jar

java -jar avro-tools-1.7.7.jar tojson FlumeData.1458090051232

{"id":"710300089206611968","user_friends_count":{"int":1527},"user_location":{"string":"1633"},"user_description":{"string":"Steady Building an Empire..... #UGA"},"user_statuses_count":{"int":44471},"user_followers_count":{"int":2170},"user_name":{"string":"Esquire Shakur"},"user_screen_name":{"string":"Esquire_Bowtie"},"created_at":{"string":"2016-03-16T23:01:52Z"},"text":{"string":"RT @ugaunion: .@ugasga is hosting a debate between the three SGA executive tickets. Learn more about their plans to serve you https://t.co/…"},"retweet_count":{"long":0},"retweeted":{"boolean":true},"in_reply_to_user_id":{"long":-1},"source":{"string":"<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>"},"in_reply_to_status_id":{"long":-1},"media_url_https":null,"expanded_url":null}

{"id":"710300089198088196","user_friends_count":{"int":100},"user_location":{"string":"DM開放してます(`・ω・´)"},"user_description":{"string":"Exception in thread "main" org.apache.avro.AvroRuntimeException: java.io.IOException: Block size invalid or too large for this implementation: -40

at org.apache.avro.file.DataFileStream.hasNextBlock(DataFileStream.java:275)

at org.apache.avro.file.DataFileStream.hasNext(DataFileStream.java:197)
at org.apache.avro.tool.DataFileReadTool.run(DataFileReadTool.java:77)
at org.apache.avro.tool.Main.run(Main.java:84)
at org.apache.avro.tool.Main.main(Main.java:73)
Caused by: java.io.IOException: Block size invalid or too large for this implementation: -40
at org.apache.avro.file.DataFileStream.hasNextBlock(DataFileStream.java:266)
... 4 more

El mismo problema. Lo busco mucho en Google, no hay respuestas en absoluto.

¿Podría alguien darme una solución si también ha encontrado este problema? O alguien puede ayudar a dar una pista si comprende completamente las cosas de Avro o la transmisión de Twitter debajo.

Es realmente un problema interesante. Piénsalo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta