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

时间:2015-07-16 15:42:16

标签: cassandra apache-spark

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

  

“线程中的异常”主“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]连接已关闭))

1 个答案:

答案 0 :(得分:3)

我遇到了第二个错误" NoHostAvailableException"这周我发生了很多次,因为我正在将Python spark移植到Java Spark。

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

在python中发生这种情况时(对我而言)更加明显,所以我花了一点时间才意识到发生了什么,所以我得到了这个错误很多次。

我有两个关于根本原因的理论,但解决方案并没有让GC疯狂。

  1. 第一个理论,是因为它经常停顿,我只是无法连接到Cassandra。
  2. 第二个理论:Cassandra和Spark一样在同一台机器上运行,而JVM占据了所有CPU的100%,所以Cassandra无法及时回答,并且它看起来像没有Cassandra主机那样的驱动程序。 / LI>

    希望这有帮助!