Spark 学习中遇到的一些问题
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
- 点赞
- 收藏
- 关注作者
评论(0)