2016中国spark技术峰会见闻摘要

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 5-15号笔者参加了2016中国spark技术峰会,各演讲嘉宾分享了很多spark实践经验,本文整理了笔者印象比较深的内容,ppt详见峰会ppt 《spark and yarn :better together》 Hortonworks技术专家邵赛赛分享了spark如何更好地跑在yarn上,主要

5-15号笔者参加了2016中国spark技术峰会,各演讲嘉宾分享了很多spark实践经验,本文整理了笔者印象比较深的内容,ppt详见峰会ppt

《spark and yarn :better together》

Hortonworks技术专家邵赛赛分享了spark如何更好地跑在yarn上,主要以下三点:

  • Better use the resources
  • Better run on cluster
  • Easy to debug

Better use the resources
使用资源讲了计算内存和CPU,内存有几个公式,要注意不要 将spark executor的内存总和分配的太接近容器内容,要给堆外内存留一些空间:

  • container memory = spark executor memory + overhead memory
  • yarn.scheduler.minimum-allocation-mb <= container memory <= yarn.nodemanager.resource.memory-mb
  • container memory will be round to yarn.scheduler.increment-allocation-mb

cpu有个公式是container cores <= nodemanger.resource.cpu-vcores,yarn可以用cgroup做物理隔离

Better run on cluster
hadoop 2.6支持给节点打标签label,可以让spark调度到你指定的节点上。

spark支持动态申请或释放executor,对于长期运行的应用很有用。可以通过以下的配置打开动态 资源分配

spark.streaming.dynamicAllocation.enabled true
spark.shuffle.service.enabled true
<property>
<name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
<value>org.apache.spark.network.yarn.YarnShuffleService</value>
</property>

要想保证集群的高可用,应该配置关键节点自动重启,RM应该配置yarn.resourcemanager.ha.enabled,yarn.resourcemanager.recovery.enabled,NM应该配置yarn.nodemanager.recovery.enabled (hadoop 2.6)

Easy to debug
${yarn.nodemanager.local-dirs}/usercache/${user}/appcache/application_${appid}/container_${contid} 该目录底下有详情的运行参数信息,可以用来方便的debug排查问题。

《Spark Streaming在腾讯广点通的应用》

腾讯高级软件工程师林立伟分享了spark streaming的实践,主要是用好spark steaming的特性,以及如何在生产中做优化。

特性

exactly-once
spark streaming支持exactly-once语义,一批数据要么全部成功要么全部失败,不会重复,可以用来做实时准确数据转义,确保最终输出的数目和输入是一致的。还可以应用于反作弊+计费这种不能重复计算的业务。

可靠状态
RDD天然支持中间 结果持久化,失败重试这些面向状态的可靠保证,可以用来做跨batch的聚合,做pv/uv计算,记录去重,微量实时更新的业务。

快速batch调度
spark streaming是由driver/jobscheduler进行调度,跟Mapreduce的调度相比,调度间隔更短,进程/线程常驻无启动时间 ,可以用来做数据指标监控,未成功数据快速重试这种数据量小,调度速度要求快的业务。

优化经验

•(1) 增加 Memory Back Pressure
•(2) 为 Spark Spark 增加新特性(无需编译 Spark Spark Spark 优化)
•(3)SparkSQL API > RDD APIAPI > RDD APIAPI
•(4) async execution within a task
•(5) try-cacth
•(6) concurrentJobs开启
•(7) Spark 远程调试

  • 监控executor的内存使用,动态调整receiver接收速率,避免OOM。
  • 增加新功能可以u编译spark工程,直接修改源文件**scala,运行参数增加spark.driver/executor.userClassPathFirst=false; spark.driver/executor.extraClassPath=app.jar。
  • sqparksql运行更快,因为做了很多逻辑优化,内存占用更少,支持逻辑缓存,codegen执行优化。
  1. 1.x用dstream.foreachRDD{rdd => rdd.toDF().select...},spark 2.x用spark. ... . stream. ... . startStream().
  • 使用线程池加异步的方式,提高task 处理速度,可以同时批处理多个。
  • 有些task的错误,比如could not compute split,在driver端catch,会提高系统健壮性
  • 设置spark.streaming.concurrentJobs = n,同时执行n个output,一般1个batch对应1个output提高系统处理能力。

《Dataset in Spark SQL》

范文臣, Databricks 软件工程师。主要讲了DataSet的好处,更快,api更易用。

RDD通用性高,能支持各种特性,但不能检查sql的语法格式,不能做到编译时语法检查。1.6开始支持的DataSet,能够在编译时检查语法和字段错误,可以做到类型安全检查。

spark 2.0统一了DataSet和DataFrame,可以用 Dataset[Row] = DataFrame转换。

DataSet和常见的java,kyro相比序列化快,DataSet和RDD相比,内存占用更小,复杂sql运行更快 。但如果是简单操作,rdd会更快,因为没有优化空间,RDD不需要序列化节省了时间。

相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
目录
相关文章
|
5月前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
688 1
|
20天前
|
分布式计算 Java Apache
Apache Spark Streaming技术深度解析
【9月更文挑战第4天】Apache Spark Streaming是Apache Spark生态系统中用于处理实时数据流的一个重要组件。它将输入数据分成小批次(micro-batch),然后利用Spark的批处理引擎进行处理,从而结合了批处理和流处理的优点。这种处理方式使得Spark Streaming既能够保持高吞吐量,又能够处理实时数据流。
51 0
|
3月前
|
分布式计算 大数据 Spark
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
《Spark大数据处理:技术、应用与性能优化》深入浅出介绍Spark核心,涵盖部署、实战与性能调优,适合初学者。作者基于微软和IBM经验,解析Spark工作机制,探讨BDAS生态,提供实践案例,助力快速掌握。书中亦讨论性能优化策略。[PDF下载链接](https://zhangfeidezhu.com/?p=347)。![Spark Web UI](https://img-blog.csdnimg.cn/direct/16aaadbb4e13410f8cb2727c3786cc9e.png#pic_center)
103 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
|
4月前
|
分布式计算 Hadoop 大数据
大数据技术:Hadoop与Spark的对比
【6月更文挑战第15天】**Hadoop与Spark对比摘要** Hadoop是分布式系统基础架构,擅长处理大规模批处理任务,依赖HDFS和MapReduce,具有高可靠性和生态多样性。Spark是快速数据处理引擎,侧重内存计算,提供多语言接口,支持机器学习和流处理,处理速度远超Hadoop,适合实时分析和交互式查询。两者在资源占用和生态系统上有差异,适用于不同应用场景。选择时需依据具体需求。
|
4月前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
30 0
|
5月前
|
分布式计算 Hadoop 大数据
探索大数据技术:Hadoop与Spark的奥秘之旅
【5月更文挑战第28天】本文探讨了大数据技术中的Hadoop和Spark,Hadoop作为分布式系统基础架构,通过HDFS和MapReduce处理大规模数据,适用于搜索引擎等场景。Spark是快速数据处理引擎,采用内存计算和DAG模型,适用于实时推荐和机器学习。两者各有优势,未来将继续发展和完善,助力大数据时代的发展。
|
5月前
|
SQL 分布式计算 大数据
Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突
Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突
210 0
|
5月前
|
机器学习/深度学习 分布式计算 搜索推荐
【大数据技术】Spark MLlib机器学习协同过滤电影推荐实战(附源码和数据集)
【大数据技术】Spark MLlib机器学习协同过滤电影推荐实战(附源码和数据集)
158 0
|
5月前
|
机器学习/深度学习 分布式计算 前端开发
【大数据技术】Spark MLlib机器学习线性回归、逻辑回归预测胃癌是否转移实战(附源码和数据集)
【大数据技术】Spark MLlib机器学习线性回归、逻辑回归预测胃癌是否转移实战(附源码和数据集)
69 0
|
5月前
|
机器学习/深度学习 分布式计算 大数据
【大数据技术】Spark MLlib机器学习特征抽取 TF-IDF统计词频实战(附源码和数据集)
【大数据技术】Spark MLlib机器学习特征抽取 TF-IDF统计词频实战(附源码和数据集)
58 0
下一篇
无影云桌面