2015-06-12 1 views
2

У меня есть построить KCL плюс искру базу на https://spark.apache.org/docs/1.2.0/streaming-kinesis-integration.htmlKinesis GetShardIterator ... недействительна, потому что не из этого потока

Я бег это на ОМ (искровой установлено с помощью начальной загрузки). Я создал на потоке sparkTest и сделал мое тестирование его работы отлично. Я не заметил, что DynamoDB не был создан. Я удалил поток и кластер. На следующий день я снова создал Kinesis Steam с таким же именем и развернул свой код с недавно запущенным кластером. Теперь я получаю

5/06/12 08:17:28 ERROR worker.InitializeTask: Caught exception: 
com.amazonaws.services.kinesis.model.InvalidArgumentException: StartingSequenceNumber 49551532098093284204238000035066183240246145871536717826 used in GetShardIterator on shard shardId-000000000000 in stream sparkTest under account 618673372431 is invalid because it did not come from this stream. (Service: AmazonKinesis; Status Code: 400; Error Code: InvalidArgumentException; Request ID: 770ef875-10db-11e5-b24b-af6f372168ae) 
     at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1078) 
     at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:726) 
     at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:461) 
     at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClie 

Я не могу понять, почему это приходит. если я создаю новый поток кинезий, а затем снова работаю. Это вопрос с Кинезисом?

еще одна нить собирается в это с https://github.com/awslabs/amazon-kinesis-connectors/issues/8 однако я не использую Kinesis имя приложения и создания потока с

KinesisUtils.createStream(
         jssc, streamName, endpointUrl, kinesisCheckpointInterval, InitialPositionInStream.LATEST, StorageLevel.MEMORY_AND_DISK_2()) 
+0

Вы получаете мимо этого вопроса? – ChristopherB

ответ

3
SparkConf sparkConfig = new SparkConf().setAppName("arbitraryName").setMaster("local[2]"); 

KinesisUtils.createStream(
         jssc, streamName, endpointUrl, kinesisCheckpointInterval, InitialPositionInStream.LATEST, StorageLevel.MEMORY_AND_DISK_2())); 

Если я изменить название «arbitraryName». он отлично работает. я нашел этот намек от https://spark.apache.org/docs/1.2.0/streaming-kinesis-integration.html

key points: 
The application name used in the streaming context becomes the Kinesis application name 
The application name must be unique for a given account and region. 
+0

Еще один момент, который я хотел бы добавить здесь. dynamodb я смотрел в том же регионе, что и Oregon, хотя это создавалось в США-востоке. Может быть полезно для кого-то другого, поэтому опубликуйте это. благодаря – Sam