历史打开记录(请帮我打开历史记录)
733
2022-05-29
Spark 学习中遇到的一些问题
SparkSQL 相关
在执行 insert 语句时报错,堆栈信息为:FileSystem closed。常常出现在 ThriftServer 里面。
原因:
由于 hadoop FileSystem.get 获得的 FileSystem 会从缓存加载,如果多线程一个线程 closedFileSystem 会导致该 BUG
解决方法:
hdfs 存在不从缓存加载的解决方式,在 hdfs-site.xml 配置 fs.hdfs.impl.disable.cache=true 即可
在执行 Sparksql 操作 orc 类型的表时抛出:java.lang.IndexOutOfBoundsException 或者 java.lang.NullPointerException
原因:
分区或者表下存在空的orc文件。该 BUG 在 Spark2.3.0之后才修复
解决方法:
规避解决。修改 ORC 的默认分割策略为:hive.exec.orc.split.strategy=BI 进行解决。Orc 的 split 有3种策略(ETL、BI、HYBIRD),默认是 HYBIRD(混合模式,根据文件大小和文件个数自动选择 ETL 还是 BI 模式),BI 模式是按照文件个数来分 split
ThriftServer 登录异常:javax.security.sasl.AuthenticationException: Error validating LDAP user
原因:
是由于密码错误或者 LDAP 服务异常
解决方法:
解决密码和验证问题
SparkCore 相关
jar包版本冲突时:java.lang.ClassNotFoundException: XXX
原因:
一般可能是用户 jar和 Spark jar 冲突
解决方法:
1、最好和 Spark 相关的 jar 进行适配。
2、如果不行可以使用参数:spark.driver.userClassPathFirst和spark.executor.userClassPathFirst 设置为true
集群节点异常导致 Spark job 失败,如磁盘只读。
原因:
Spark 是一个高性能、容错的分布式计算框架,一旦它知道某个计算所在的机器出现问题会依据之前生成的 lineage 重新在这台机器上调度这个 Task,如果超过失败次数就会导致 job 失败。
解决方法:
Spark 有黑名单机制,在超出一定次数的失败后不会往该节点或者 Executor 调度 Task。设置相应 Black 参数:spark.blacklist.enabled=true
on yarn 启动 spark-sql 和 spark-submit 时出现:java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig
原因:
和 yarn 相关 Jersey 包冲突
解决方法:
配置上–conf spark.hadoop.yarn.timeline-service.enabled=false
spark
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。