某人在企业中遇到的Spark问题记录[持续更新]
https://github.com/ssg-7max/ssg
- 目前 ssg内公司内部 spark streaming 处理数据源是kafka
- 目前遇到最大的问题是,会延迟,例如我们配置1分钟让窗口计算一次,很有可能随着数据量大,我们计算时间会超过1分钟,这样就会导致卡死在哪里,streaming一直累计算出不了结果,而且从监控还看不出有问题,只有从结果监控发现结果出不来。 解决方案:增加kafka的partition配置,配合streaming的线程数,可以加快执行速度
- 使用createStream接受消息,升级kafka的API后遇到receiver无声无色地死掉的情况 解决方案:改为KafkaUtils.createDirectStream 要配置kafka的参数:metadata.broker.list val kafkaParams = MapString, Stringauto.offset.reset,这个参数是,切换groupid之后,重头开始获取数据 val registerDS = KafkaUtils.createDirectStreamString, String, StringDecoder, StringDecoder.map(_._2)
- yarn分配executor时,会比较集中在一些机器上,如下面的图,集中到026上面了。
解决方案:目前还没有找问题解决方案,属于yarn的分配策略
- 对于连接池,为了提高效率,方面复用,可以通过广播变量方式 解决方案:广播变量不可以实现,在streaming中,而且executor之间传递这个,是需要序列化的,序列化一个已经连接的东西,是不行的,实际上是每个executor都去连接一下db, 最后结果不大,产生的连接数也不会多, 这样每个RDD都要去建立连接,insert DB。如果rdd过多,每次去连接是很浪费资源的,那缩减RDD的数量,当结果集很小的时候,通过reparation来处理,这样的话,就只有一个RDD在连接db。连接池解决资源复用的问题,根本上还是要控制发起连接的RDD数量,建议参考:http://blog.csdn.net/kntao/article/details/45364761
- kafka的partition数量和什么有关系? 解决方案:kafka的partition数量跟broker ×每个broker中的partition 有关 ,默认 不配置 每个broker partition是1
- spark streming运行时候报错“DStream checkpointing has been enabled but the DStreams with their functions are not serializable” 代码截图:
解决方案:通过跟群里面人讨论,发现getFilterEachUserData(),第一个参数sqlContext是没有序列化的,去掉第一个参数后,不再包此错误
- spark streaming 不能toDF? 代码截图:
解决方案:filter 方法中,p不是rdd,要想转成rdd需要使用transform这个方法 修改后代码截图:
- 群中有人说spark streaming中不能同时使用广播变量和checkpoint? 解决方案:这个问题需要有待核实
- Couldn't find leader offsets for Set ([luwc_test,0],[luwc_test,1]) 异常问题截图:
解决方案:要在kafka集群的hosts要配到spark的Driver的hosts里面去,用zk管kafka的话,是可以获取到Partition信息的,但是解析地址会失败,把hosts配成一致就可以了,直接用domain是不行的
- spark 编译源码 增加hive模块 解决方案:export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m" mvn -Pyarn -Phadoop-2.3 -Dhadoop.version=2.3.0-cdh5.1.0 -Phive -Dhive-version=0.12.0-cdh5.1.0 -Phive-thriftserver -Pspark-ganglia-lgpl -DskipTests clean package OR ./make-distribution.sh --name 2.3.0 --tgz -Phadoop-2.3 -Dhadoop.version=2.3.0-cdh5.1.0 -Pyarn -Phive -Dhive-version=0.12.0-cdh5.1.0 -Phive-thriftserver -Pspark-ganglia-lgpl -DskipTests clean package
某人在企业中遇到的Spark问题记录[持续更新]的更多相关文章
- 史上最全的spark面试题——持续更新中
史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题 版权声明:本文为博主原创文章,遵循C ...
- C#、Java中的一些小知识点总结(持续更新......)
前言:在项目中,有时候一些小的知识,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小知识点,以备用,并持续更新...... 1.禁用DataGridV ...
- 以.net core重构原有.net framework过程中的一些API变更记录(持续更新)
1)Type.IsGenericType类似属性变更 以下是.net framework 4.5中Type抽象类中泛型类型的几个个属性,用于泛型类型的相关信息判断: 以下是.net core(nets ...
- C# 知识点记录(持续更新中)
从看C#入门经典开始系统的学习C#,本文主要记录学习过程中的一些知识点,也是我博客生涯的开始,比较重要成体系的部分会单重新写文章整理归纳. 1.一字不变的字符串 @字符 使转义序列不被处理,按照原样输 ...
- jpa使用过程中出现问题记录[持续更新]
1.自定义JPQL语句,出现Not supported for DML operations 错误. 解决方案:在@Query注解上面加上@Modifying注解. //出现问题的代码 @Query( ...
- MySQL使用过程中的报错处理(持续更新)
一.数据库初始化 1.Percona的MySQL 5.6.20版本数据库初始化 初始化命令(MySQL 5.6版本不适用mysqld命令进行初始化) ./scripts/mysql_install_d ...
- Spring配置文件中的那些标签意味着什么(持续更新)
前言 在看这边博客时,如果遇到有什么不清楚的地方,可以参考我另外一边博文.Spring标签的探索,根据这边文章自己来深入源码一探究竟.这里自己只是简单记录一下各标签作用,每个人困惑不同,自然需求也不一 ...
- dubbo初认知(dubbo和springCloud关系,在微服务架构中的作用等)(持续更新中)
一:dubbo是什么? dobbuo是阿里开源的一个高性能优秀的服务框架, 可通过高性能的 RPC 实现服务的输出和输入功能,使得应用可以和 高性能的rpc实现输入和输出的功能,可以了 Spring ...
- 个人在 laravel 开发中使用到的一些技巧(持续更新)
1.更高效率地查询:使用批量查询代替 foreach 查询(多次 io 操作转换为一次 io操作) 如果想要查看更详尽的介绍,可以看看这篇文章 什么是 N+1 问题,以及如何解决 Laravel 的 ...
随机推荐
- ConcurrentHashMap并不是绝对线程安全的
import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; publi ...
- windows彻底删除Oralce
以下是彻底删除Oralce的步骤:1. 开始->设置->控制面板->管理工具->服务停止所有Oracle服务. 2. 开始->程序->Oracle - OraHom ...
- 通过导入虚拟电脑的方式还原centos
通过oracle vm VirtualBox安装完成一台centos,然后导出虚拟电脑,再通过导入虚拟电脑的方式还原一台centos,还原的时候改一下机器名,不要选择重新初始化所有网卡mac,还原完成 ...
- 一致性 hash 算法( consistent hashing )(转)
consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache系统中应用越来越广泛: 1 基 ...
- android开发中WebView的使用(附完整程序)
原文地址:http://www.pocketdigi.com/20110216/176.html WebView是个好东西,作用相当于一个迷你的浏览器,采用Webkit内核,因此完美支持html,ja ...
- linux FTP配置详解
一.vsftpd说明: LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd. 访问 ...
- JavaScript的技巧和最佳实践
JavaScript是一个绝冠全球的编程语言,可用于Web开发.移动应用开发(PhoneGap.Appcelerator).服务器端开发 (Node.js和Wakanda)等等.JavaScript还 ...
- HDUOJ-----2066一个人的旅行
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- 兔子--eclipse设置编码格式
设置编码格式 a:设置eclipse的默认编码格式:window->preferences->Workspace->Text File Encoding b:设置单个项目的编码格式: ...
- VS2010中遇到_WIN32_WINNT not defined
VS2010中编程时遇到这个问题 _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h) 解决办法: ...