博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spark常见异常汇总
阅读量:6174 次
发布时间:2019-06-21

本文共 1225 字,大约阅读时间需要 4 分钟。

                         spark常见异常汇总

                                        作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

温馨提示:

   如果开发运行spark出现问题啦,可能需要运维这边做一些调优,也可能是开发那边需要修改代码。到底是啥情况,我们可以通过yarn命令查看spark运行的日志。有的报错运维是不需要处理的,直接把报错贴个开发,让他们自己去处理就好啦!如果你只是运维的话只需要负责集群的稳定运行就OK。当然你能帮助开发把问题解决掉就再好不过啦~。本片博客会把我生产环境中遇到的spark相关问题以及解决方案进行分享。

  查看spark日志的话,可以直接在yarn的wenUI界面直接查看相应的报错信息,不需要敲击任何命令行操作。如果你是基于Apache Hadoop版本部署的cdh需要你手动配置一些参数,详情请参考:https://www.cnblogs.com/yinzhengjie/p/9471921.html。当然如果你是基于CDH或者HDP方式部署的话,默认它以及帮你部署好啦。我生产环境用的是CDH版本,但是我并不喜欢使用web UI去查看任务。一般都是给开发去用webUI。我喜欢用命令行的方式查看各类日志。我们只需要在任意一台gateway机器上敲击(“yarn logs -applicationId application_1540295101685_61048 > logs.txt”)相应的命令即可查看日志。

 

 

 

 

一.org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException): No lease on /user/hive/warehouse/yingshi.db/op_sarrs_hour/......

1>.报错提示:

2>.报错原因

  我百度了一下原因:提示为文件操作超租期,由于多个task操作写一个文件,其中某个task完成任务后删除了临时文件引起。该参数和dfs.datanode.max.xcievers有关,默认为256。dfs.datanode.max.xcievers表示每个datanode任一时刻可以打开的文件数量上限。

3>.解决方案

有两个解决方法:(1)修改spark代码,避免太高的并发度同时写一个文件。    所以在调用write.parquet前,先使用repartition合并碎片分区。因为减少了分区数,下次再读取这份数据进行处理时,减少了启动task的开销。(2)修改hdfs参数配置,提高同时写的上限。    在hdfs-site.xml中修改dfs.datanode.max.xcievers,将其设置为4096。

 

二.

 

你可能感兴趣的文章
C++ XML
查看>>
windows批处理 打开exe后关闭cmd
查看>>
Linux 安装中文包
查看>>
谷物大脑
查看>>
访问控制-禁止php解析、user_agent,PHP相关配置
查看>>
AgileEAS.NET之系统架构
查看>>
python3.5里的正则表达式
查看>>
Exchange server 2013 SP1 客户端会议室邮箱自动回复延迟
查看>>
nginx反向代理缓存服务器构建
查看>>
RHEL6 搭建LVS/DR 负载均衡集群 案例
查看>>
以太坊·Rinkeby 测试网络
查看>>
字符串按规则排序算法
查看>>
MPLS + BGP高级特性
查看>>
plist文件读写操作
查看>>
oracle resetlogs和noresetlogs 创建控制文件区别
查看>>
2013-7-17学习作业练习
查看>>
ZAM 3D入门教程(4):Extrusion编辑器
查看>>
《深入实践Spring Boot》一第2章 在Spring Boot中使用数据库2.1 使用MySQL
查看>>
C++语言基础 例程 字符串类
查看>>
堆排序
查看>>