Spark 作业在第一次尝试连接到 Oracle 时失败
Spark Job fails connecting to oracle in first attempt
我们是 运行 连接到 oracle 并获取一些数据的 spark 作业。始终尝试 0 或 1 次 JDBCRDD 任务失败并出现以下错误。在随后的尝试中任务完成。正如一些门户网站所建议的那样,我们甚至尝试使用 -Djava.security.egd=file:///dev/urandom java 选项,但它并没有解决问题。谁能帮我们解决这个问题。
ava.sql.SQLRecoverableException: IO Error: Connection reset by peer, Authentication lapse 59937 ms.
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:794)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:688)
此异常与 Apache Spark 无关,"SQLRecoverableException: IO Error:" 只是 Oracle JDBC 驱动程序报告它是连接
DBMS 在使用时被从下面关闭了。真正的问题在于
DBMS,例如会话突然终止。请检查数据库管理系统
错误日志并与问题分享。
您可以在这里找到类似的问题
https://access.redhat.com/solutions/28436
仅 java.security.egd 有问题。通过命令行设置它,即 -Djava.security.egd=file:///dev/urandom 不起作用,所以我通过 system.setproperty 在工作中设置它。在该工作不再提供 SQLRecoverableException
之后
最快的方法是在 运行 你的工作之前导出 spark 系统变量 SPARK_SUBMIT_OPTS。
像这样:export SPARK_SUBMIT_OPTS=-Djava.security.egd=file:dev/urandom
我正在使用 docker,所以对我来说完整的命令是:
docker exec -it spark-master
bash -c "export SPARK_SUBMIT_OPTS=-Djava.security.egd=file:dev/urandom &&
/spark/bin/spark-submit --verbose --master spark://172.16.9.213:7077 /scala/sparkjob/target/scala-2.11/sparkjob-assembly-0.1.jar"
- 导出变量
- 提交作业
我们是 运行 连接到 oracle 并获取一些数据的 spark 作业。始终尝试 0 或 1 次 JDBCRDD 任务失败并出现以下错误。在随后的尝试中任务完成。正如一些门户网站所建议的那样,我们甚至尝试使用 -Djava.security.egd=file:///dev/urandom java 选项,但它并没有解决问题。谁能帮我们解决这个问题。
ava.sql.SQLRecoverableException: IO Error: Connection reset by peer, Authentication lapse 59937 ms.
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:794)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:688)
此异常与 Apache Spark 无关,"SQLRecoverableException: IO Error:" 只是 Oracle JDBC 驱动程序报告它是连接 DBMS 在使用时被从下面关闭了。真正的问题在于 DBMS,例如会话突然终止。请检查数据库管理系统 错误日志并与问题分享。
您可以在这里找到类似的问题 https://access.redhat.com/solutions/28436
仅 java.security.egd 有问题。通过命令行设置它,即 -Djava.security.egd=file:///dev/urandom 不起作用,所以我通过 system.setproperty 在工作中设置它。在该工作不再提供 SQLRecoverableException
之后最快的方法是在 运行 你的工作之前导出 spark 系统变量 SPARK_SUBMIT_OPTS。
像这样:export SPARK_SUBMIT_OPTS=-Djava.security.egd=file:dev/urandom
我正在使用 docker,所以对我来说完整的命令是:
docker exec -it spark-master
bash -c "export SPARK_SUBMIT_OPTS=-Djava.security.egd=file:dev/urandom &&
/spark/bin/spark-submit --verbose --master spark://172.16.9.213:7077 /scala/sparkjob/target/scala-2.11/sparkjob-assembly-0.1.jar"
- 导出变量
- 提交作业