Failed to stream data into Kafka, and offline data lost

101 views
Skip to first unread message

Xinyu Wang

unread,
Jul 24, 2015, 12:21:25 AM7/24/15
to Pinot Users
I want to try realtime sample, and hybrid mode, but failed.

1. Below is the command and the result to stream data into Kafka.

➜  pinot-0.016-pkg git:(master) bin/pinot-admin.sh StreamAvroIntoKafka -avroFile flights-2014.avro -kafkaTopic flights-realtime &

[6] 837

➜  pinot-0.016-pkg git:(master) Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: flights-realtime

Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: flights-realtime


...

2. Then I create a real time table following the "How To Use Pinot" page, then I got below exception:

➜  pinot-0.016-pkg git:(master) bin/pinot-admin.sh AddTable -filePath flights-definition-realtime.json -exec

Executing command: AddTable -filePath flights-definition-realtime.json -controllerHost 10.235.202.28 -controllerPort 9000 -exec

2015-07-24 12:12:51 10.235.202.28 - 10.235.202.28 9000 POST /tables - 200 7 824 1147 http://10.235.202.28:9000 Java/1.7.0_79 -

Success

➜  pinot-0.016-pkg git:(master) Caught exception in state transition for OFFLINE -> ONLINE for partitionflights_REALTIME__Server_10.235.202.28_8098__flights_REALTIME_1437711171065_0__0__1437711171275 of table flights_REALTIME

java.lang.NullPointerException

at com.linkedin.pinot.common.data.Schema.fromZNRecord(Schema.java:83)

at com.linkedin.pinot.core.data.manager.realtime.RealtimeTableDataManager.addSegment(RealtimeTableDataManager.java:196)

at com.linkedin.pinot.server.starter.helix.HelixInstanceDataManager.addSegment(HelixInstanceDataManager.java:238)

at com.linkedin.pinot.server.starter.helix.SegmentOnlineOfflineStateModelFactory$SegmentOnlineOfflineStateModel.onBecomeOnlineFromOfflineForRealtimeSegment(SegmentOnlineOfflineStateModelFactory.java:156)

at com.linkedin.pinot.server.starter.helix.SegmentOnlineOfflineStateModelFactory$SegmentOnlineOfflineStateModel.onBecomeOnlineFromOffline(SegmentOnlineOfflineStateModelFactory.java:131)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.apache.helix.messaging.handling.HelixStateTransitionHandler.invoke(HelixStateTransitionHandler.java:344)

at org.apache.helix.messaging.handling.HelixStateTransitionHandler.handleMessage(HelixStateTransitionHandler.java:290)

at org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:93)

at org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:50)

at java.util.concurrent.FutureTask.run(FutureTask.java:262)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:745)

Exception while executing a state transition task flights_REALTIME__Server_10.235.202.28_8098__flights_REALTIME_1437711171065_0__0__1437711171275

java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.apache.helix.messaging.handling.HelixStateTransitionHandler.invoke(HelixStateTransitionHandler.java:344)

at org.apache.helix.messaging.handling.HelixStateTransitionHandler.handleMessage(HelixStateTransitionHandler.java:290)

at org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:93)

at org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:50)

at java.util.concurrent.FutureTask.run(FutureTask.java:262)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.NullPointerException

at com.linkedin.pinot.common.data.Schema.fromZNRecord(Schema.java:83)

at com.linkedin.pinot.core.data.manager.realtime.RealtimeTableDataManager.addSegment(RealtimeTableDataManager.java:196)

at com.linkedin.pinot.server.starter.helix.HelixInstanceDataManager.addSegment(HelixInstanceDataManager.java:238)

at com.linkedin.pinot.server.starter.helix.SegmentOnlineOfflineStateModelFactory$SegmentOnlineOfflineStateModel.onBecomeOnlineFromOfflineForRealtimeSegment(SegmentOnlineOfflineStateModelFactory.java:156)

at com.linkedin.pinot.server.starter.helix.SegmentOnlineOfflineStateModelFactory$SegmentOnlineOfflineStateModel.onBecomeOnlineFromOffline(SegmentOnlineOfflineStateModelFactory.java:131)

... 12 more

Default rollback method invoked on error. Error Code: ERROR

Message execution failed. msgId: 72080872-72d1-43ab-a22e-26426d83d1f1, errorMsg: java.lang.reflect.InvocationTargetException

Skip internal error. errCode: ERROR, errMsg: null


...

3. After that, the existing data from offline loading is lossing. When I query the table, there is 0 doc. 
But based on the wiki page, if there is an offline table and realtime table with same name, then the table should be in hybrid mode, and I expect the count of docs increases. 

Is there anything wrong in my steps?

IPL

unread,
Jul 27, 2015, 9:19:41 AM7/27/15
to Pinot Users, xinyu...@gmail.com
any suggestion? Thanks.

在 2015年7月24日星期五 UTC+8下午12:21:25,Xinyu Wang写道:
Reply all
Reply to author
Forward
0 new messages