Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 为什么pyspark会以“失败”而失败;实例化'时出错;org.apache.spark.sql.hive.HiveSessionStateBuilder'&引用;?_Apache Spark_Pyspark - Fatal编程技术网

Apache spark 为什么pyspark会以“失败”而失败;实例化'时出错;org.apache.spark.sql.hive.HiveSessionStateBuilder'&引用;?

Apache spark 为什么pyspark会以“失败”而失败;实例化'时出错;org.apache.spark.sql.hive.HiveSessionStateBuilder'&引用;?,apache-spark,pyspark,Apache Spark,Pyspark,就我的一生而言,我无法找出我的Pypark安装有什么问题。我已经安装了所有依赖项,包括Hadoop,但PySpark找不到它——我的诊断正确吗 请参阅下面的完整错误消息,但它最终在PySpark SQL上失败 pyspark.sql.utils.IllegalArgumentException:u“实例化'org.apache.spark.sql.hive.HiveSessionStateBuilder'时出错:” nickeleres@Nicks-MBP:~$pyspark Python 2.

就我的一生而言,我无法找出我的Pypark安装有什么问题。我已经安装了所有依赖项,包括Hadoop,但PySpark找不到它——我的诊断正确吗

请参阅下面的完整错误消息,但它最终在PySpark SQL上失败

pyspark.sql.utils.IllegalArgumentException:u“实例化'org.apache.spark.sql.hive.HiveSessionStateBuilder'时出错:”

nickeleres@Nicks-MBP:~$pyspark
Python 2.7.10(默认值,2017年2月7日,00:08:15)
[GCC 4.2.1达尔文兼容苹果LLVM 8.0.0(clang-800.0.34)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
使用Spark的默认log4j配置文件:org/apache/Spark/log4j-defaults.properties
将默认日志级别设置为“警告”。
要调整日志记录级别,请使用sc.setLogLevel(newLevel)。对于SparkR,使用setLogLevel(newLevel)。
警告:发生了非法的反射访问操作
警告:org.apache.hadoop.security.authentication.util.KerberosUtil(文件:/opt/spark-2.2.0/jars/hadoop-auth-2.7.3.jar)对方法sun.security.krb5.Config.getInstance()的非法反射访问
警告:请考虑将此报告给Or.ApH.Hooop.Soalthial.Undo.Kelbopuutl的维护者。
警告:使用--invalize access=warn以启用对进一步非法访问操作的警告
警告:所有非法访问操作将在未来版本中被拒绝
17/10/24 21:21:58警告NativeCodeLoader:无法为您的平台加载本机hadoop库。。。在适用的情况下使用内置java类
17/10/24 21:21:59警告Utils:服务“SparkUI”无法在端口4040上绑定。正在尝试端口4041。
17/10/24 21:21:59警告Utils:服务“SparkUI”无法在端口4041上绑定。正在尝试端口4042。
17/10/24 21:21:59警告Utils:服务“SparkUI”无法在端口4042上绑定。正在尝试端口4043。
回溯(最近一次呼叫最后一次):
文件“/opt/spark/python/pyspark/shell.py”,第45行,在
spark=SparkSession.builder\
getOrCreate中的文件“/opt/spark/python/pyspark/sql/session.py”,第179行
session._jsparkSession.sessionState().conf().setConfString(键,值)
文件“/opt/spark/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py”,第1133行,在__调用中__
文件“/opt/spark/python/pyspark/sql/utils.py”,第79行,deco格式
引发IllegalArgumentException(s.split(“:”,1)[1],stackTrace)
pyspark.sql.utils.IllegalArgumentException:u“实例化'org.apache.spark.sql.hive.HiveSessionStateBuilder'时出错:”
>>> 

tl;dr关闭所有其他Spark流程并重新开始

以下警告消息表示有另一个进程(或多个进程)持有这些端口

我确信这些流程是Spark流程,例如pyspark会话或Spark应用程序

17/10/24 21:21:59 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
17/10/24 21:21:59 WARN Utils: Service 'SparkUI' could not bind on port 4041. Attempting port 4042.
17/10/24 21:21:59 WARN Utils: Service 'SparkUI' could not bind on port 4042. Attempting port 4043.
这就是为什么Spark/pyspark发现端口4044可以自由用于web UI后,它尝试实例化
HiveSessionStateBuilder
,但失败了

pyspark失败,因为不能有多个使用同一本地配置单元元存储的Spark应用程序启动并运行

为什么会发生这种情况

因为我们尝试多次创建新会话!在jupyter笔记本电脑浏览器的不同选项卡上

解决方案:

在JUPYTER笔记本的单个选项卡上启动新会话,避免在不同选项卡上创建新会话

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('EXAMPLE').getOrCreate()

另一个可能的原因是,由于未满足最低机器要求,火花应用无法启动

在“应用程序历史记录”选项卡中:

Diagnostics:Uncaught exception: org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException: Invalid resource request, requested virtual cores < 0, or requested virtual cores > max configured, requestedVirtualCores=5, maxVirtualCores=4
诊断:未捕获异常:org.apache.hadoop.warn.exceptions.InvalidResourceRequestException:无效的资源请求,请求的虚拟核心<0,或请求的虚拟核心>最大配置,请求的虚拟核心=5,最大虚拟核心=4
说明:


在尝试使用Jupyter笔记本创建spark会话时,我们收到了相同的错误。 我们注意到,在我们的案例中,用户没有spark scratch目录的权限,即针对以下spark属性值“spark.local.dir”使用的目录。我们更改了目录的权限,以便用户可以完全访问此目录,并解决了此问题。通常,此目录位于类似于“/tmp/user”的位置

请注意,根据spark,scratch directory是一个“用于spark中“scratch”空间的目录,包括存储在磁盘上的映射输出文件和RDD。它应该位于系统中的快速本地磁盘上。它也可以是不同磁盘上多个目录的逗号分隔列表”

Diagnostics:Uncaught exception: org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException: Invalid resource request, requested virtual cores < 0, or requested virtual cores > max configured, requestedVirtualCores=5, maxVirtualCores=4