我的主机系统Windows 10上有cloudera vm,而我的spark版本是1.6。我试图使用以下命令加载spark-shell。
spark-shell --packages org.apache.spark:spark-streaming-twitter_2.10:1.6.0
但这会引发以下异常:
:::: ERRORS Server access error at url https://repo1.maven.org/maven2/org/apache/spark/spark-streaming-twitter_2.10/1.6.0/spark-streaming-twitter_2.10-1.6.0.pom (javax.net.ssl.SSLException: Received fatal alert: protocol_version)
Server access error at url https://repo1.maven.org/maven2/org/apache/spark/spark-streaming-twitter_2.10/1.6.0/spark-streaming-twitter_2.10-1.6.0.jar (javax.net.ssl.SSLException: Received fatal alert: protocol_version)
::使用细节或调试消息级别获取更多详细信息线程
"main" java.lang.RuntimeException: [unresolved dependency: org.apache.spark#spark-streaming-twitter_2.10;1.6.0: not found] at org.apache.spark.deploy.SparkSubmitUtils$.resolveMavenCoordinates(SparkSubmit.scala:1067) at org.apache.spark.deploy.SparkSubmit$.prepareSubmitEnvironment(SparkSubmit.scala:287) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:154) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
答案 0 :(得分:5)
我查看了:javax.net.ssl.SSLException: Received fatal alert: protocol_version
因此,它似乎与Java TLS协议版本默认值有关。如果Java版本已过时,并且导致HTTPS上的请求的TLS版本已过时,则它将被阻止。我在尝试安装PySpark软件包时遇到了这个问题。 现在,许多服务器都在阻止TLS的过时版本。例如,请参见:Github now blocks weak cryptography standards
解决方案是使用环境变量强制TLS版本1.2:
echo 'export JAVA_TOOL_OPTIONS="-Dhttps.protocols=TLSv1.2"' >> ~/.bashrc
source ~/.bashrc
当我重新运行命令以用我的软件包启动PySpark时:
pyspark --packages com.databricks:spark-csv_2.10:1.5.0
我指定的TLS版本立即被检测到。 它确实给了我输出:
拾取了JAVA_TOOL_OPTIONS:-Dhttps.protocols = TLSv1.2
答案 1 :(得分:0)
与maven Central建立连接时似乎出现了问题。
检查此 javax.net.ssl.SSLException: Received fatal alert: protocol_version
Maven Central具有TLS1.2,因此请检查您的
如果之前可以正常工作 尝试从浏览器连接网址,看看是否允许
如果是,则对maven进行必要的更改(可能是代理和凭据)