java - Apache Spark - Java -JSCH - 算法协商失败
问题描述
使用 Spark 2.0 和 JSCH 进行文件传输时出现以下异常。Spark lib 使用 0.1.42 版本,并且还遇到了覆盖内置依赖项的选项。
它在客户端模式下工作正常,但是当提交到 Yarn 集群时,它会失败并出现以下异常。任何建议,请。
1Connecting to xxxxxxxxxxxx.com port 22
1Connection established
1Remote version string: SSH-2.0-OpenSSH_7.4
1Local version string: SSH-2.0-JSCH-0.1.42
1CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256
1SSH_MSG_KEXINIT sent
1SSH_MSG_KEXINIT received
1Disconnecting from xxxxxxxxxxxxxxx.com port 22
18/09/26 10:56:50 ERROR Myclass: Error occurred in processing:
com.jcraft.jsch.JSchException: Algorithm negotiation fail
com.jcraft.jsch.JSchException: Algorithm negotiation fail
at com.jcraft.jsch.Session.receive_kexinit(Session.java:520)
at com.jcraft.jsch.Session.connect(Session.java:286)
at com.jcraft.jsch.Session.connect(Session.java:150)
如果我尝试使用覆盖选项来加载 spark submit 命令中给出的 jar,那么我得到:
java.lang.LinkageError: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;" the class loader (instance of org/apache/spark/util/ChildFirstURLClassLoader) of the current class, org/slf4j/LoggerFactory, and the class loader (instance of sun/misc/Launcher$AppClassLoader) for the method's defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:418)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
at org.apache.commons.logging.LogFactory$Slf4jDelegate.createLocationAwareLog(LogFactory.java:174)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:111)
这里已经有一个问题 - JSch 算法协商失败 ,但从 Java 的角度来看,这看起来更多,但从 Yarn 和 Spark 来看。
解决方案
推荐阅读
- postgresql - PostGIS检查一个圆是否包含某个点
- azure - Azure 自动化 - 身份验证循环
- wpf - 为什么我不能向 DataGrid 中的按钮添加单击事件?
- laravel - Larave CSRF 保护不起作用(当用户返回上一页时它不会禁止提交)
- php - 如何在 WooCommerce 结帐时将 HTML 添加到“billing_email”字段?
- swiftui - 在 SwiftUI 中自动隐藏/显示列表部分标题
- java - 如何仅在生产环境中运行变更集?
- python - 在python中使用子进程时如何创建独立的可执行文件?
- sql - sql:计算每个月的小时数
- powershell - 根据现有的 csv 列值创建 csv 列