某人在企业中遇到的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 的 ...
随机推荐
- spring jdbc连接数据库
1.在applicationContext.xml中配置jdbc bean <bean id="dataSource" class="org.springframe ...
- SettingsTortoiseSVN
迁移时间:2017年5月20日11:16:05CreateTime--2016年9月18日18:20:15Author:Marydon在windows下安装SVN软件 说明:64位的系统只能安装6 ...
- DRUPAL 关于 $user 用户权限
按登录非登录判断: < ?php global $user;/*是否为登录用户*/ if ($user -> uid){/*如果是当前浏览者为登录用户则显示下面的内容*/ print ; ...
- 【laravel5.4+vue.js】laravel 循环三维数组,解决:htmlentities() expects parameter 1 to be string, array given
laravel循环三维数组 +++ vue.js循环三维数组 (数据均是以三维数组形式存在的) <form-item label="权限名称" prop=" ...
- Linux下一个简单守护进程的实现 (Daemon)
在Linux/UNIX系统引导的时候会开启很多服务,这些服务称为守护进程(也叫Daemon进程).守护进程是脱离于控制终端并且在后台周期性地执行某种任务或等待处理某些事件的进程,脱离终端是为了避免进程 ...
- Maven 向私服nexus上传jar
1. 单个jar上上传 方法一:利用界面(省略) 方法二:利用命令行: 1). 安装到本地库:mvn install:install-file -DgroupId=org.apache.hadoop ...
- PL/SQL配置oracle客户端,登录远程数据库配置
本地未安装Oracle数据库,但又想使用PL/SQL连接服务器端的数据库. 1.新建NETWORK文件夹, 在该文件夹下新建ADMIN文件夹, 在该文件夹下新建tnsnames.ora文件(拷贝下面的 ...
- nyoj----522 Interval (简单树状数组)
Interval 时间限制:2000 ms | 内存限制:65535 KB 难度:4 描述 There are n(1 <= n <= 100000) intervals [ai, ...
- SqlServer强制断开数据库已有连接的方法(转)
在master数据库中执行如下代码 declare @i INT declare cur cursor for select spid from sysprocesses where db_name ...
- Google Map 符号
符号 简介 如果您想在标记上使用基于矢量的图标,或者向多段线添加图像,便可使用符号. 标记支持使用光栅图像以及矢量图像.请参阅有关定制标记图标的文档. Symbol 是一种可显示在 Marker ...