父分片存在但子分片不存在
Parent Shard Exists but not the Child Shard
我正在使用 Kinesis 设置 Spark Streaming 项目,当我尝试连接到我的 Kinesis 流时,我从 Spark 收到以下错误:
ERROR ShardSyncTask: Caught exception while sync'ing Kinesis shards and leases
com.amazonaws.services.kinesis.clientlibrary.exceptions.internal.KinesisClientLibIOException: Parent shard shardId-000000000000 exists but not the child shard shardId-000000000002
当我 post 测试此流的数据或使用基本 Amazon 库从流中读取数据时,我没有收到任何错误,这仅在我尝试连接 Spark 时发生。
下面是我用于测试的代码:
val conf = new SparkConf().setMaster("local[2]").setAppName("KinesisCounter")
val ssc = new StreamingContext(conf, Seconds(1))
val rawStream = KinesisUtils.createStream(ssc, "dev-test", "kinesis.us-east-1.amazonaws.com", Duration(1000), InitialPositionInStream.TRIM_HORIZON, StorageLevel.MEMORY_ONLY)
rawStream.map(msg => new String(msg)).count.print
您在 Kinesis 上有多少分片?
我会做的是:
- 检查 Kinesis 区域,确保您的应用程序设置和流在同一区域
- 删除存储 Kinesis 流分片的 DynomoTable,然后重新开始。以下来自 official documentation:
Changing the application name or stream name can lead to Kinesis errors in some cases. If you see errors, you may need to manually delete the DynamoDB table
- 检查您的应用程序代码,查看是否在代码 运行 期间设置了某些设置。
希望对您有所帮助。
我正在使用 Kinesis 设置 Spark Streaming 项目,当我尝试连接到我的 Kinesis 流时,我从 Spark 收到以下错误:
ERROR ShardSyncTask: Caught exception while sync'ing Kinesis shards and leases
com.amazonaws.services.kinesis.clientlibrary.exceptions.internal.KinesisClientLibIOException: Parent shard shardId-000000000000 exists but not the child shard shardId-000000000002
当我 post 测试此流的数据或使用基本 Amazon 库从流中读取数据时,我没有收到任何错误,这仅在我尝试连接 Spark 时发生。
下面是我用于测试的代码:
val conf = new SparkConf().setMaster("local[2]").setAppName("KinesisCounter")
val ssc = new StreamingContext(conf, Seconds(1))
val rawStream = KinesisUtils.createStream(ssc, "dev-test", "kinesis.us-east-1.amazonaws.com", Duration(1000), InitialPositionInStream.TRIM_HORIZON, StorageLevel.MEMORY_ONLY)
rawStream.map(msg => new String(msg)).count.print
您在 Kinesis 上有多少分片?
我会做的是:
- 检查 Kinesis 区域,确保您的应用程序设置和流在同一区域
- 删除存储 Kinesis 流分片的 DynomoTable,然后重新开始。以下来自 official documentation:
Changing the application name or stream name can lead to Kinesis errors in some cases. If you see errors, you may need to manually delete the DynamoDB table
- 检查您的应用程序代码,查看是否在代码 运行 期间设置了某些设置。
希望对您有所帮助。