微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的 Spark Scala 作业在使用 Jedis 客户端读取/写入 Redis 池时挂起

如何解决为什么我的 Spark Scala 作业在使用 Jedis 客户端读取/写入 Redis 池时挂起

我之前发布了一个 spark scala 作业,其中包含长时间运行的任务 here,我发现该作业由于与 Redis 的连接而卡住了。我看到通知指出我的 Redis 集群在 Elasticache 中的 cpu 已达到极限,但我不确定正确的修复方法是什么。我正在使用 Jedis 客户端进行连接,目前我所有的任务都挂起并且永远不会完成。我发现 Redis 通过注释掉读/写和我的工作完成导致了这个瓶颈。

我在 EMR 上运行这项工作,有 24 个 spark.executor.instances 和 12 个 spark.executor 内核

Redis 配置是:

RedisClient.port = 6379
RedisClient.poolConfig.setMaxIdle(300)
RedisClient.poolConfig.setMaxTotal(300)
RedisClient.poolConfig.setMaxWaitMillis(150000)

我正在循环读取/写入Redis,您可以在我之前的帖子中看到。这段代码以前在较小的数据集上工作过,所以我想我必须调整设置,尽管我不确定应该将它们调整为什么,或者我是否缺少设置。找出 Redis 池的最佳设置的最佳方法是什么

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。