有时无法使用spark打开本机连接

Nip*_*pun 8 cassandra apache-spark

我正在使用Spark 1.4版和Cassandra 2.18运行Spark工作.我从主人那里telnet,它适用于cassandra机器.有时工作运行正常,有时我得到以下异常.为什么有时会发生这种情况?

"线程中的异常"main"org.apache.spark.SparkException:作业因阶段失败而中止:阶段0.0中的任务0失败4次,最近失败:阶段0.0中丢失任务0.3(TID 7,172.28.0.162): java.io.IOException:无法在{172.28.0.164}打开与Cassandra的本机连接:9042 at com.datastax.spark.connector.cql.CassandraConnector $ .com $ datastax $ spark $ connector $ cql $ CassandraConnector $$ createSession( CassandraConnector.scala:155)"

它有时也会给我这个例外以及上面的例外:

引起:com.datastax.driver.core.exceptions.NoHostAvailableException:所有尝试查询的主机都失败了(尝试:/172.28.0.164:9042(com.datastax.driver.core.TransportException:[/ 172.28.0.164: 9042]连接已关闭))

小智 3

本周,当我将 Python Spark 移植到 Java Spark 时,我多次遇到第二个错误“NoHostAvailableException”。

我遇到了驱动程序线程几乎内存不足的问题,并且 GC 占用了我的所有核心(所有 8 个核心的 98%),一直暂停 JVM。

在Python中,当这种情况发生时,(对我来说)更加明显,所以我花了一些时间才意识到发生了什么,所以我多次收到这个错误。

关于根本原因,我有两种理论,但解决方案是不要让 GC 变得疯狂。

  1. 第一个理论是,由于它经常暂停,我无法连接到 Cassandra。
  2. 第二种理论:Cassandra 与 Spark 运行在同一台机器上,并且 JVM 占用了 100% 的 CPU,因此 Cassandra 无法及时应答,并且在驱动程序看来就像没有 Cassandra 主机一样。

希望这可以帮助!