博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
云时代架构读后感
阅读量:6943 次
发布时间:2019-06-27

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

原文地址:

https://mp.weixin.qq.com/s?__biz=MzAwNTQ4MTQ4NQ==&mid=306076506&idx=1&sn=75e68dcc2efcd0c50589e3983b6b6adc&chksm=0cd10e383ba6872e234d49b1b30fdf0236046893afd86b221dae243e734e89b1569b380dd70a&mpshare=1&scene=23&srcid=0619vldqxhu5uslv3Reh2a8s#rd

 

Spark Streaming 无法找到数据块问题

最近一个Spark Streaming项目停止了几个小时,发现后设置为自动重启。结果,Spark Streaming频繁重启,平均十分钟左右就要重启一次。

 

 

异常信息为:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException): No lease on /user/ypdata/checkpoint/temp (inode 120825098): File does not exist. [Lease.Holder: DFSClient_NONMAPREDUCE_1085161746_1, pendingcreates: 1]

 

 问题定位:

 

这个项目采用的Spark Streaming + kafka的模式,spark streaming实时从kafka拉取数据。

 

频繁重启,间隔很确定的话,就怀疑是OOM导致的,因为数据在kafka端堆积,启动spark streaming后,会不停去kafka取数据(采用了high level的模式,没有控制速率),spark采用的模式是MEMROY_ONLY_SER模式,超过了driver-memory和executor-memory后,spark会自动丢弃放不下的数据,那么当需要计算该数据时自然报错说找不到数据块。

 

直到堆积的数据都在kafka消费完毕。 后来的现象也证实了这一点,重启了十几次,过了两个小时后,恢复正常。

 解决方案:

 

但是随着数据量的越来越多,这种情况还是会出现,而且无法解决。 

 

1. 采用kafka low-level的api,控制消费速率,保护spark。 牺牲了实时性。 

2.加大spark的driver-memory和executor-memory,同时支持序列化到磁盘。

 

转载于:https://www.cnblogs.com/bangandwolf/p/11050453.html

你可能感兴趣的文章
python连续爬取多个网页的图片分别保存到不同的文件夹
查看>>
了解url
查看>>
时间记录日志
查看>>
Node.js
查看>>
进程 线程通信方式(转载)
查看>>
在ios上,fixed定位因为input导致手机下面出现空白,视图变小
查看>>
hdu 1695(欧拉函数 容斥定理)
查看>>
mysql在表的某一位置增加一列、删除一列、修改列名
查看>>
计算机基础知识
查看>>
SpringMVC系列(九)自定义视图、重定向、转发
查看>>
PAT 1029 Median
查看>>
需要总结的知道
查看>>
python 从小白开始 - 字符串操作(不可修改)
查看>>
管理现有数据库-web系统
查看>>
无缝滚动
查看>>
JVM(四)垃圾收集器_分代收集器
查看>>
根据图片路径生成二进制流,下载图片
查看>>
正则表达式的基本用法
查看>>
Shell 同步时间脚本
查看>>
条目十五《注意strng实现的多样性》
查看>>