个人头像照片 社区小助手

个人介绍

社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

  • 最新动态
  • 文章
  • 问答
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 回答了问题 2019-07-17

    请问relational cache 与apache ignite有什么区别?

    EMR Spark relational cache可以简单理解为基于Spark的物化视图,支持把视图数据放在内存中或是HDFS OSS上,用户可以通过relational cache加速查询,或是基于此构建MOLAP平台。ignite应该主要是基于内存的实时计算引擎。


    很不错的问题。我知道的就是 relational cache 是基于 Spark 来做的,Spark 上直接用,不需要另外一堆服务。Ignite 自己是一套跟 Spark 可以对等的服务。

    踩0 评论0
  • 提交了问题 2019-06-03

    请问relational cache 与apache ignite有什么区别?

  • 回答了问题 2019-07-17

    问一个问题哈,在spark中默认使用java serialization ,但同时也提供了 kryo 序列化借口,今天测试了一下 两个不同的序列号借口,发现并没有性能提升,我用的sparksql跑的测试,设计多个join操作,input量为270G , 这个为什么对性能没有提升呢? 有大佬做过这方面的研究吗

    2.0开始,shuffle的时候已经默认为 kryo 序列化了
    1

    踩0 评论0
  • 提交了问题 2019-05-30

    问一个问题哈,在spark中默认使用java serialization ,但同时也提供了 kryo 序列化借口,今天测试了一下 两个不同的序列号借口,发现并没有性能提升,我用的sparksql跑的测试,设计多个join操作,input量为270G , 这个为什么对性能没有提升呢? 有大佬做过这方面的研究吗

  • 回答了问题 2019-07-17

    说到事务,衍生了一个问题,请教一下,像hive/mlsql/deltalake或者说spark 支持某级别事务 的意义在哪?是否会演变会支持大部分事务?

    你说某级别是隔离级别吗?隔离级别越高,并发性能越弱。对于 hive spark sql 这种并发很小的情况,支持多种隔离级别意义不是很大。


    平台化,让我执行完sql以后,获取输出的表或分区,对碎片文件进行合并,合并完以后任务才算执行完。最开始我们是通过质量分数强制用户自己去合并,用户很麻烦,换了这样的就解决了用户合并文件的问题。


    平台化可以这么做。缺点就是用户量上来之后有并发可能问题。但是也没有什么更好的办法,都是 trade off


    碎片文件比较多的时候比较花费时间。用户可以设置参数,关闭合并,避免影响下游任务运行。等表不被使用了某个时间点用户自己去合并。

    踩0 评论0
  • 提交了问题 2019-05-30

    说到事务,衍生了一个问题,请教一下,像hive/mlsql/deltalake或者说spark 支持某级别事务 的意义在哪?是否会演变会支持大部分事务?

  • 回答了问题 2019-07-17

    spark Sql都是client模式,而有时driver需要较多的资源,多用户共享一台机器时,client物理机资源可能会成为瓶颈,这个你们有什么解决方案吗

    可以用livy来提交spark-cluster的application,然后客户提交给livy,这块我们也做了一些工作

    踩0 评论0
  • 提交了问题 2019-05-30

    spark Sql都是client模式,而有时driver需要较多的资源,多用户共享一台机器时,client物理机资源可能会成为瓶颈,这个你们有什么解决方案吗

  • 回答了问题 2019-07-17

    我有个问题想请教一下, 对于spark处理小文件,有没有什么优化方法

    可以异步合并,小文件想解决还是合并,落地前合并,处理后合并。在write后repartition一下就可以设置文件数量,在你预估一个分区或处理文件的大小时可以把数量做成参数,比上blockSize生成一个合理的数字。也可以在落地后合并,这样不影响落地的效率不过两种方法都行,落地后就比如shuffle默认200个,那么就有200个小文件,那么可以在不使用这份数据的时候进行离线的合并,合并的方法有很多,基本上就是读出来再写进去,有几个点要注意:把合并后的文件放进原目录中前要删除之前读出来的那些文件避免数据重复,但不能全部删除,合并生成大文件过程中是否有其他程序写入新文件,文件中是否有tmp、success,文件存储格式要统一。


    你是问关于 delta 的小文件,还是 spark sql 自己的一些小文件?还是什么?sparksql目前应该没有这个功能,我们这边可以看一下需求


    如果是 hive 的事务表,hive 有合并小文件的功能。spark 方面开源是没有的。spark sql 开启事务之后,delete update 都会产生小文件。处理思路是一样的,定期合并。备注:开源 spark 没有事务支持。emr spark 的事务支持目前还比较薄弱。如果大家有需求,欢迎提出。


    sparksql生成的数据小文件真的多,咱们可以通过元数据库,获取每个表下面每个分区下面的数据大小和文件个数,看看是要合并小文件还是要拆分大文件,然后sparksql读出来,然后再写进去,设置一下partition number


    你们是用 spark streaming 处理数据最后实时写为 parquet 文件,然后推荐系统会用这些实时处理的数据,是这样的吧?(是的,需求是这样)那推荐系统怎么用这些数据,具体是用什么工具知道吗?(实时读取hdfs文件,spark ML)
    了解了。看到你们这个主要还是 spark 的技术栈,应用场景是 data pipeline。databricks 前一段时间开源的 delta 正是解决这一类场景。

    踩0 评论0
  • 提交了问题 2019-05-30

    我有个问题想请教一下, 对于spark处理小文件,有没有什么优化方法

  • 回答了问题 2019-07-17

    打扰一下大家 如果对key的字符串型的value 进行累加是用 reduceByKey(_+_)好 还是用 agg.(concat_ws(""), collect_list(col)) 好啊 现在GC时间特别长 都占用三分之一的时间了 第一种的累加是 buffer累加 还是 不停的创建新的定长字符串

    你的函数是 (string,string){string+string}, 它就执行string+string

    踩0 评论0
  • 提交了问题 2019-05-29

    打扰一下大家 如果对key的字符串型的value 进行累加是用 reduceByKey(_+_)好 还是用 agg.(concat_ws(""), collect_list(col)) 好啊 现在GC时间特别长 都占用三分之一的时间了 第一种的累加是 buffer累加 还是 不停的创建新的定长字符串

  • 提交了问题 2019-05-29

    Spark 【问答合集】

  • 回答了问题 2019-07-17

    各位大佬有遇到过类似问题吗,求指导

    jar 不匹配


    hadoop core 吧,自己去搜搜, 配置文件这个类的再哪个jar里

    踩0 评论0
  • 提交了问题 2019-05-29

    各位大佬有遇到过类似问题吗,求指导

  • 回答了问题 2019-07-17

    大神10亿数据查询在小于10秒怎么办?有没有什么好的解决方案呢?

    10亿数据查询,就是你基本的查询方式是啥,10亿也没多少,你放es里,也能做到秒级;有指定key查询,放hbase能做到毫秒


    放es里最省事~

    踩0 评论0
  • 提交了问题 2019-05-23

    大神10亿数据查询在小于10秒怎么办?有没有什么好的解决方案呢?

  • 回答了问题 2019-07-17

    kafka 的broker日志中出现Too many open files ,这个大家有谁碰到过吗

    配的是host 还是 ip呢?换成ip就好了,host有异常的时候,没有清理文件

    踩0 评论0
  • 提交了问题 2019-05-23

    kafka 的broker日志中出现Too many open files ,这个大家有谁碰到过吗

  • 回答了问题 2019-07-17

    大家好,请教个问题,在sparkStreaming,我实现了StreamingListener 的接口,用于监控数据堆积的情况,在 onBatchCompleted 判断后调用 stop 会抛出 Cannot stop StreamingContext within listener thread of SparkListenerBus 的异常,异常是在下面源码截图中抛出来的,说我当前实时监控的线程还存在不允许stop ,有些不解,哪位大佬给指点下,是我操作不当?还是再做stop 时需要满足什么条件?

    onBatchComplete里面不可以调用ssc.stop,不然岂不是一个batch做完的时候,整个作业就被关掉了。ssc.stop在所有的listener里面都不应该调用

    踩0 评论0
正在加载, 请稍后...
滑动查看更多