spark优化项】的更多相关文章

一.Shuffle优化项 1.Shuffle优化配置 - spark.shuffle.file.buffer 默认值:32k 参数说明:该参数用于设置shuffle write task的BufferedOutputStream的buffer缓冲大小.将数据写到磁盘文件之前,会先写入buffer缓冲中,待缓冲写满之后,才会溢写到磁盘. 调优建议:如果作业可用的内存资源较为充足的话,可以适当增加这个参数的大小(比如64k),从而减少shuffle write过程中溢写磁盘文件的次数,也就可以减少磁…
Linux内核socket优化项 vi /etc/sysctl.confnet.core.netdev_max_backlog = 30000  每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目 net.core.somaxconn = 262144   用来限制监听(LISTEN)队列最大数据包的数量,超过这个数量就会导致链接超时或者触发重传机制 net.core.rmem_default = 8388608    接收套接字缓冲区大小的默认值(以字节为单…
Spark优化一则 - 减少Shuffle 看了Spark Summit 2014的A Deeper Understanding of Spark Internals,视频(要***)详细讲解了Spark的工作原理,Slides的45页给原始算法和优化算法. 破砂锅用自己3节点的Spark集群试验了这个优化算法,并进一步找到更快的算法.测试数据是Sogou实验室的日志文件前10000000条数据.目标是对日志第2列数据,按照第一个字母合并,得到每个首字母有几条记录. 所有的方案都重新启动Spar…
  spark优化:在一定范围之内,增加资源与性能的提升是成正比的. 因此,       一个cpu core  执行一个task线程. task数: 若有 cpu core 2个.num-executor 2个  那么task有4个 公式:task =  num-executor * cpu core .   cpu core  共有50个.一个程序一般设置为总数量的1/3或1/2   driver : 分配task 到每个work                        从yarn申请…
1.linux切换到pg命令: $ su - postgres $ psql postgres=# 2.查看/退出pg ps -ef |grep postgres postgres=# \q 3.一般优化项 参数名 作用 64GB建议值 256GB建议值 shared_buffers 设置PostgreSQL中用于缓存的专用内存量.建议的设置值为机器总内存大小的25%. 16GB 64GB wal_buffers WAL(预写日志)记录缓冲区,由wal_buffers定义的缓冲区的默认大小为16…
概序: 要减少内存的消耗,除了使用高效的序列化类库以外,还有一个很重要的事情,就是优化数据结构.从而避免Java语法特性中所导致的额外内存的开销,比如基于指针的Java数据结构,以及包装类型. 有一个关键的问题,就是优化什么数据结构?其实主要就是优化你的算子函数,内部使用到的局部数据,或者是算子函数外部的数据.都可以进行数据结构的优化.优化之后,都会减少其对内存的消耗和占用. 一.如何优化数据结构?对集合的替换: 1.优先使用数组以及字符串,而不是集合类.也就是说,优先用array,而不是Arr…
1:“物尽其用”,但给spark分配多个机器后,先需配置spark-submit shell如下: /usr/local/spark/bin/spark-submit \ --class com.spark.test.Top3UV \ --num-executors 3 \ --driver-memory 100m \ --executor-memory 100m \ --executor-cores 3 \ --files /usr/local/hive/conf/hive-site.xml…
->>>配置参数优化 SparkConf sc = new SparkConf().setAppName("com.sp.test.GroupTop3").setMaster("local") .set("spark.shuffle.consolidateFiles", "true")//优化1:开启shuffleGroup,避免shuffleMapTask创建过多的bucket文件 //优化2:设置并行度(…
对于官方Programming Guides的GC优化一节做了阅读. 在这里记录一下我的理解,可能记录的比较混乱没有条理: 我理解其实GC优化的主要目的就是在你的任务执行中使用更少的内存,进行更少的gc回收,因为GC回收会使你的任务执行的更慢. 使用-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps可以在日志中观察你的程序执行过程中GC回收的情况.根据日志进行优化.例如你发现回收的过于频繁,那么就要看一下是不是你的程序和内存使用是否有问题…
package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.{BinaryLogisticRegressionSummary, LogisticRegression, LogisticRegressionModel} import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator i…
监控配置 spark的监控主要分为Master.Worker.driver.executor监控.Master和Worker的监控在spark集群运行时即可监控,Driver和Excutor的监控需要针对某一个app来进行监控. 如果都要监控,需要根据以下步骤来配置 修改$SPARK_HOME/conf/spark-env.sh,添加以下语句: SPARK_DAEMON_JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.…
一.Join原则 将条目少的表/子查询放在Join的左边.原因:在Join的reduce阶段,位于Join左边的表的内容会被加载进内存,条目少的表放在左边,可以减少发生内存溢出的几率. 小表关联大表:用MapJoin把小表全部加载到内存在map端Join,避免reducer处理.如: select /*+ MapJoin(user)*/ l.session_id,u.username from user u join page_views l on u.id = l.user_id 二.控制ma…
一.LVS 性能调优的方法最佳实践1.最小化安装编译系统内核2.优化持久服务超时时间:    1)显示超时时间    #ipvsadm -Ln --timeout    #Timeout (tcp tcpfin udp): 900 120 300    2)配置为与自身应用贴近的超时时间    #ipvsadm --set tcp tcpfin udp3.修改内核参数vi /etc/sysctl.confnet.ipv4.tcp_tw_recyle=1net.ipv4.tcp_tw_reuse=…
1.Spark调优背景 目前Zeppelin已经上线一段时间,Spark作为底层SQL执行引擎,需要进行整体性能调优,来提高SQL查询效率.本文主要给出调优的结论,因为涉及参数很多,故没有很细粒度调优,但整体调优方向是可以得出的. 环境:服务器600+,spark 2.0.2,Hadoop 2.6.0 2.调优结果 调优随机选取线上9条SQL,表横轴是调优测试项目,测试在集群空闲情况下进行,后一个的测试都是叠加前面测试参数.从数据可参数经过调优,理想环境下性能可提高50%到300% 3. 下面为…
我们知道,大部分Spark计算都是在内存中完成的,所以Spark的瓶颈一般来自于集群(standalone, yarn, mesos, k8s)的资源紧张,CPU,网络带宽,内存.Spark的性能,想要它快,就得充分利用好系统资源,尤其是内存和CPU.有时候我们也需要做一些优化调整来减少内存占用,例如将小文件进行合并的操作. 一.问题现象 我们有一个15万条总数据量133MB的表,使用SELECT * FROM bi.dwd_tbl_conf_info全表查询耗时3min,另外一个500万条总数…
Spark默认采用Java的序列化器,这里建议采用Kryo序列化提高性能.实测性能最高甚至提高一倍. Spark之所以不默认使用Kryo序列化,可能的原因是需要对类进行注册. Java程序中注册很简单: SparkConf conf = new SparkConf().setAppName(appName); conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer"); con…
如果运行Spark集群时状态一直为Accepted且不停止不报错,比如像下面这样的情况: 15/06/14 11:33:33 INFO yarn.Client: Application report for application_1434263747091_0023 (state: ACCEPTED) 15/06/14 11:33:34 INFO yarn.Client: Application report for application_1434263747091_0023 (state:…
spark.shuffle.consolidateFiles=false 默认是false,shuffle阶段不进行文件的合并,1000个map和1000个reduce将产生1000 000个文件. 设置为true减少shuffle阶段产生的文件数量. storageLevel的选择,根据自己的业务进行选择.如果要快速计算就是memory_only,如果内存消耗大,就要使用memory_only_ser.内存不够的时候会重新计算.若重新计算比从磁盘载入快,那就是用memory_only,否则使用…
Linux优化: 1.建立普通账号,使用普通用户登陆. 2.处理SELINUX. 3.处理防火墙. 4.精简开机自启动服务.保留sshd,network,crond,rsyslog,sysstat. 5.LINUX最小化安全理念.5条. 1)安装linux系统最小化,yum安装软件包也要最小化, 无用的包不装. 2)操作命令最小化. 3)登陆用户最小化. 4)普通用户授权最小化 5)  Linux系统文件及目录权限最小化,禁止随意创建.更改.删. 错了可还原,可对比. 超级优化linux远程连接…
官方是这样说的: Directory to use for "scratch" space in Spark, including map output files and RDDs that get stored on disk. This should be on a fast, local disk in your system. It can also be a comma-separated list of multiple directories on different…
进行节点的数据传递,或者保存数据时都会进行序列化.spark默认的是org.apache.spark.serializer.JavaSerializer.而我们要修改成org.apache.spark.serializer.KryoSerializer.…
net.ipv4.ip_forward = #该文件内容为0,表示禁止数据包转发,1表示允许 net.ipv4.conf.default.rp_filter = #是否忽略arp请求 net.ipv4.conf.default.accept_source_route = # 是否接受源路由(source route) net.ipv4.conf.all.secure_redirects = # 如果服务器不作为网关/路由器,该值建议设置为0 kernel.sysrq = # 是否开启sysrq,…
1 spark on yarn常用属性介绍 属性名 默认值 属性说明 spark.yarn.am.memory 512m 在客户端模式(client mode)下,yarn应用master使用的内存数.在集群模式(cluster mode)下,使用spark.driver.memory代替. spark.driver.cores 1 在集群模式(cluster mode)下,driver程序使用的核数.在集群模式(cluster mode)下,driver程序和master运行在同一个jvm中,…
例如对一个JavaPairRDD<String, String>做遍历操作,常见的,我们可以通过先通过collect()操作将它转化为Map对象再进行遍历,也可以使用Spark提供的mapToPair方法进行遍历.然而两者的性能差距是非常显著的. 仅仅遍历1500条长度为155的序列,前者需要消耗6s,后者只需要消耗不到1s的时间.这说明,将Spark内存对象转化为普通Java对象有时会产生巨大的开销! 这里需要提到的是,我依旧还没有源代码,过年争取看一下. 贴上两个遍历操作的源代码: 第一种…
最近公司有一个小程序开发项目,自己也自学了不少,有一些开发小心得,记录在这里. 小程序开发中注意: 1,setData 小程序视图层和逻辑层在两个独立的模块,并不具备数据直接传递的,setData相当于他们的桥梁.常见的setData操作错误有三种. (1),频繁的去setData:在开发过程中,尽量少的去setData,大量的setData数据会导致页面卡顿或下拉延时等. (2),setData大量新数据:我们从setData底层可知,每次setData都会生成一个脚本,数据量大会导致脚本的编…
1.什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,常用于做负载均衡服务器 2.为什么要用Nginx?跨平台.配置简单非阻塞.高并发连接:处理2-3万并发连接数,官方监测能支持5万并发内存消耗小:开启10个nginx才占150M内存,Nginx采取了分阶段资源分配技术nginx处理静态文件好,耗费内存少内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了.重新将请求提交到其他的节点上.节省宽带:支持GZIP压缩,可以添加浏览器本…
一.参数说明 启动Spark任务时,在没有配置spark.yarn.archive或者spark.yarn.jars时, 会看到不停地上传jar,非常耗时:使用spark.yarn.archive可以大大地减少任务的启动时间,整个处理过程如下. 二.spark.yarn.archive使用 1.在本地创建zip文件 silent@bd01:~/env/spark$ cd jars/ silent@bd01:~/env/spark$ zip spark2.0.0.zip ./* 注:zip包为全量…
做了一个简单的样式,但是做的不怎么样:希望和大家讨论下载动态图那里,怎么能够提高效率,提高数据,能够快速反应:一般的处理方法是什么?…
http://people.csail.mit.edu/matei/papers/2015/sigmod_spark_sql.pdf http://www.vldb.org/pvldb/vol4/p539-neumann.pdf https://arxiv.org/pdf/1310.5426v2.pdf…