SPARK大数据计算BUG处理:-创新互联
大数据计算BUG处理:
成都创新互联专注于靖安网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供靖安营销型网站建设,靖安网站制作、靖安网页设计、靖安网站官网定制、成都微信小程序服务,打造靖安网络公司原创品牌,更为您提供靖安网站排名全网营销落地服务。程序修改前资源情况:
Driver : 1台
Worker : 2台
程序提交申请内存资源 : 1G内存
内存分配情况 :
1. 20%用于程序运行
2. 20%用于Shuffle
3. 60%用于RDD缓存
单条TweetBean大小 : 3k
1. 内存溢出
原因:因为程序会把所有的TweetBean查询出来并且合并(union),该操作在内存中进行。则某个campaign数据量较大时,如500W数据,则500W*10k=50G,超出内存限制。
解决方法: 先按数据量切分task,避免单个task有很多数据造成内存溢出。把所有的task切分完成放到task列表中。循环task列表,当取出的task的数据量大于200000时,合并所有的数据并拆分成16个RDD分片。循环取task列表直至结束。
批量取200000数据的原因:200000*3k=600M,两台机器可用于程序运行的内存=2(机器数)* 2G(程序申请的内存大小) * 0.2(用于程序运行的内存比例) = 800M,可以满足存储200000数据,避免内存溢出。
2. 运行缓慢
原因:因为两台机器,每台机器可用于shuffle的内存大小 = 2(机器数)* 1G(程序申请的内存大小)* 0.2(用于程序运行的内存比例)= 400M。
200000(批量处理的数据量)* 3k(单条TweetBean大小)= 600M,批量Shuffle的数据量大于机器可用内存,所以数据会Flush到硬盘,导致读取数据缓慢。
解决方法:调整程序Shuffle可用内存,如下:
程序申请内存资源:2G
内存分配情况 :
1. 20%用于程序运行
2. 60%用于Shuffle
3. 20%用于RDD缓存
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页标题:SPARK大数据计算BUG处理:-创新互联
文章位置:http://azwzsj.com/article/dsopcg.html