【Spark学习】Apache Spark集群硬件配置要求
Spark版本:1.1.1
本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接:
http://www.cnblogs.com/zhangningbo/p/4135912.html
目录
- 存储系统
- 本地磁盘
- 内存
- 网络
- CPU核数
Spark开发人员收到的最常见的问题就是如何为Spark做硬件配置。然而恰当的硬件配置取决于你的应用环境,所以我们推荐考虑如下几个要素。
存储系统
因为大部分Spark作业很可能要从外部存储系统(如HDFS、HBase)读取数据,所以,把Spark平台尽可能地部署在靠近这类存储系统的地方是很重要的。我们推荐从以下几个方面考虑Spark的部署:
- 如果有可能,那么就把Spark与HDFS运行在相同的节点上。最简单的方法就是在HDFS的节点上直接创建Spark Standalone集群,同时分别配置Spark和Hadoop对于内存和CPU的使用量以避免相互干扰(对于Hadoop,相关选项如:
mapred.child.java.opts用于设置每个任务需要分配的内存量,
mapred.tasktracker.map.tasks.maximum和
mapred.tasktracker.reduce.tasks.maximum
)。要不然,你还可以在通用集群管理器(比如Mesos或Hadoop YARN)上运行Hadoop和Spark。用于设置
任务总数 - 如果不可能,那么就在HDFS所在的局域网内的其他节点上运行Spark。
- 对于HBase这样的低延迟数据库存储系统,最好是在存储系统以外的其他节点上运行计算作业,以避免干扰。
本地磁盘
当Spark在内存中执行大量的计算作业时,实际上它仍然会使用本地磁盘来存储那些不适合放入RAM中的数据,还有那些在各个stage之间保存的临时输出数据。我们推荐每个节点配备4-8个磁盘,且不要设置为RAID模式(仅仅是作为单独的装载点)。在Linux系统下,以noatime命令行选项装载磁盘可以减少不必要的读磁盘操作。在Spark中,把变量spark.local.dir配置为以逗号分隔的本地磁盘列表。如果你正在运行着HDFS,那么,最好和HDFS使用相同的磁盘。
内存
通常,在内存容量为8GB到数百GB的主机上,Spark都能很好地运行。在任何情况下,我们都推荐最多只把物理主机上75%的内存分配给Spark;剩下的留给操作系统和缓存。
你需要多少内存取决于你的应用程序。要确定你的应用程序在某个数据集上执行时需要多少内存,可以在Spark RDD中加载一部分数据集,并借用Spark 监控UI(http://<driver-node>:4040
)上的存储表格(Storage tab)来查看其内存用量。要注意的是内存用量受存储级别和序列化格式的影响极大——解决方法详见Spark调优一文。
最后,请注意,配置了200GB以上内存的Java 虚拟机并不能总是正常工作。如果你购买的主机配备的内存超过了这个数值,那么可以在每个主机上启动多个worker JVM来解决这个问题。在Spark Standalone集群上,你可以使用配置文件conf/spark-env.sh中的变量SPARK_WORKER_INSTANCES
来设置每个节点上的worker数量,用变量SPARK_WORKER_CORES来设置每个worker上分配的CPU核数。
网络
我们的经验表明,当数据加载到内存时,大多数Spark应用程序都将受制于网络。最好的办法就是使用10Gbps或更高带宽的网络来加快应用的执行速度。这个办法对于那些分布式reduce应用程序(如group-bys,reduce-bys,及SQL joins)特别有用。在任何一个应用程序中,你都可以从其监控UI(http://<driver-node>:4040
)上看到Spark通过网络传输了多少数据量。
CPU核数
Spark可以在每个主机上很好地缩放数十个CPU核,因为它在线程间极少共享信息。你很可能会在每台主机上最少配置8-16个CPU核。根据你的工作负载所需的CPU成本,你可能还需要更多的CPU核:因为一旦把数据都加载到内存,那么大多数应用程序的瓶颈要么在于CPU,要么在于网络。
【Spark学习】Apache Spark集群硬件配置要求的更多相关文章
- Spark学习之在集群上运行Spark(6)
Spark学习之在集群上运行Spark(6) 1. Spark的一个优点在于可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力. 2. Spark既能适用于专用集群,也可以适用于共享的云计算 ...
- Spark学习之在集群上运行Spark
一.简介 Spark 的一大好处就是可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力.好在编写用于在集群上并行执行的 Spark 应用所使用的 API 跟本地单机模式下的完全一样.也就是说 ...
- hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用集群详细配置
配置 hadoop+yarn+hbase+storm+kafka+spark+zookeeper 高可用集群,同时安装相关组建:JDK,MySQL,Hive,Flume 文章目录 环境介绍 节点介绍 ...
- hadoop+tachyon+spark的zybo cluster集群综合配置
1.zybo cluster 架构简述: 1.1 zybo cluster 包含5块zybo 开发板组成一个集群,zybo的boot文件为digilent zybo reference design提 ...
- Spark学习笔记——在集群上运行Spark
Spark运行的时候,采用的是主从结构,有一个节点负责中央协调, 调度各个分布式工作节点.这个中央协调节点被称为驱动器( Driver) 节点.与之对应的工作节点被称为执行器( executor) 节 ...
- Apache + Tomcat 集群的配置
公司最近新接了一个项目,客户要求WEB SERVER 必须是APACHE,,由于之前的项目一直都是NGINX,,无奈啊,,由于对方的IT又是在三哥的过度,经过一番的争执只能顺应三哥三姐的要求..
- Hadoop 集群硬件配置
- 在local模式下的spark程序打包到集群上运行
一.前期准备 前期的环境准备,在Linux系统下要有Hadoop系统,spark伪分布式或者分布式,具体的教程可以查阅我的这两篇博客: Hadoop2.0伪分布式平台环境搭建 Spark2.4.0伪分 ...
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...
随机推荐
- RMI
Java RMI (Remote Method Invocation 远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力.Java作为一种风靡一时的网络开发语言 ...
- 实例学习Bloom Filter
0. 科普1. 为什么需要Bloom Filter2. 基本原理3. 如何设计Bloom Filter4. 实例操作5. 扩展 0. 科普 Bloom Filter是由Bloom在1970年提出的一种 ...
- TCP和UDP协议的应用/参数查看
TCP发送的包有序号,对方收到包后要给一个反馈,如果超过一定时间还没收到反馈就自动执行超时重发,因此TCP最大的优点是可靠.一般网页(http).邮件(SMTP).远程连接(Telnet).文件(FT ...
- ubuntu13.04下载android4.0.1源码过程
最初我参考的是老罗的博客http://blog.csdn.net/luoshengyang/article/details/6559955 进行下载安装的,但弄着弄着就发现不太对劲了.这里记录下详细过 ...
- BZOJ 3140 消毒(最小顶点覆盖)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3140 题意:最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格 ...
- 【转载】React初学者入门须知
http://www.oschina.net/news/75530/9-things-every-reactjs-beginner-should-know react.js入门学习 看了一遍,没什么特 ...
- iOS开发:告诉git不要跟踪UserInterfaceState.xcuserstate
在xcode中使用git管理项目的技巧: 在多人协作开发的时候,每个开发者都会在项目中的某个目录生成一个 UserInterfaceState.xcuserstate 文件,这个文件大概每5s会刷新一 ...
- UVa 10943 (数学 递推) How do you add?
将K个不超过N的非负整数加起来,使它们的和为N,一共有多少种方法. 设d(i, j)表示j个不超过i的非负整数之和为i的方法数. d(i, j) = sum{ d(k, j-1) | 0 ≤ k ≤ ...
- [ASP.NET 技术点滴] Jquery 前端验证
先上HTML代码: <form id="login" name="login" action="~/f_login/Login" me ...
- 《SPFA算法的优化及应用》——姜碧野(学习笔记)
一.核心性质:三角不等式.最短路满足d[v]<=d[u]+w(u,v) 二.SPFA两种实现: 常见的是基于bfs的,这是直接对bellman-ford用队列维护.根据最短路的长度最长为(n-1 ...