spark-streaming - 父分片存在但不存在子分片

标签 spark-streaming amazon-kinesis

我正在使用 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

当我将测试数据发布到此流或使用基本 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


  • 检查您的应用程序代码,以查看在代码运行期间是否设置了某些设置。

  • 希望能帮助到你。

    关于spark-streaming - 父分片存在但不存在子分片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30199338/

    相关文章:

    java - Spring 集成 Kinesis - 未找到正确的实现

    java.lang.IllegalStateException : Connection pool shut down exception from spring-integration-aws library

    python - Kinesis 是满足我需求的正确工具吗? (以及其他各种问题)

    java - java 程序写入 Kinesis Firehose 流时出现错误

    apache-spark - 适用于 1000 多个主题的 Spark Streaming 设计

    java - 如何使用 JavaSparkContext 处理来自 Kafka 的记录中带有文件名的文件?

    scala - Spark 流序列化错误

    apache-spark - 使用 java.lang.AbstractMethodError 在 cloudera 上引发 kinesis 失败

    scala - 按两个单词过滤行 Spark Streaming

    apache-spark - Spark 流: how does mapWithState function work in cluster?