spark集群硬件建议
ps:硬件配置其实都是根据实际的情况的,没有说某种配置就可以套在各种场景上
大部分spark 任务都是要到外部存储系统去读取数据源,比如hdfs,hbase等等,让spark计算尽可能近的数据源是很重要的,说白了就是数据本地性。所以这种情况一般都建议部署spark worker节点跟hdfs datanode节点一致。(跟hbase regionserver与hdfs datanode一对一同理的)
比如spark standalone,那么worker节点与datanode一致,spark on yarn,nodemanager节点跟datanode节点一致。此外对于低延迟的存储系统,比如hbase,spark计算节点应尽可能的与它错开,避免资源抢占,产生干扰。
关于磁盘:
虽然spark基于内存做大量的计算,但是当内存中数据放不下的时候,还是会保存数据到本地磁盘。stage之间的中间结果一样,也是要落磁盘的。对于磁盘一般推荐每个节点4-8块(如果每个节点的磁盘容量确定,那么不建议磁盘少、每块容量过大这种形式。我们生产上使用的盘每块1.1T,每个节点20+块)并且不需要做RAID,单独挂载即可,在linux环境下,挂载磁盘时可以对noatime参数设置以减少不必要的写入。对于spark,配置spark.local.dir参数,多块盘以逗号分割填写,当然,最好跟hdfs配置的磁盘一致。
关于内存:
通常情况,不管是8G还是上百G的内存机器(但节点),spark都能运行的比较好。但是在内存分配上,推荐分配75%的内存给spark,25%的内存留给系统和buffer cache
究竟需要多少的内存是取决于你的application的,如何判断你的application在某数据集下需要用多少内存,可以读取数据源创建RDD然后进行cache,在spark web ui界面查看storage大小,得到一个估计值。当然这跟你使用哪种cache level以及使用哪种序列化也有关系(所以最好先计划好用哪种序列化方式,以及哪种persist方式);此外,如果单节点内存很大,比如超过200G,分配给spark executor的内存不适合过大。可以单个节点多分配几个executor
关于网络:
推荐10 Gigabit或者更高的网卡配置,尤其有大量的shuffle存在时,比如groupby,reduceby,sql join之类的。另外可以在spark web ui界面查看通过网络传输的shuffle数据量。
关于cpu:
单节点至少8-16核,根据你应用的实际负载决定,在内存中计算的情况下,那么存在瓶颈的可能就是cpu或者网络带宽
spark集群硬件建议的更多相关文章
- 【Spark学习】Apache Spark集群硬件配置要求
Spark版本:1.1.1 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4135912.html 目录 存 ...
- zhihu spark集群,书籍,论文
spark集群中的节点可以只处理自身独立数据库里的数据,然后汇总吗? 修改 我将spark搭建在两台机器上,其中一台既是master又是slave,另一台是slave,两台机器上均装有独立的mongo ...
- Spark集群 + Akka + Kafka + Scala 开发(4) : 开发一个Kafka + Spark的应用
前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境中,我们已经部署好了一个Spark的开发环境. 在Spark集群 + Akka + Kafka + S ...
- 安装Spark集群(在CentOS上)
环境:CentOS 6.4, Hadoop 1.1.2, JDK 1.7, Spark 0.7.2, Scala 2.9.3 1. 安装 JDK 1.7 yum search openjdk-deve ...
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...
- Spark集群搭建中的问题
参照<Spark实战高手之路>学习的,书籍电子版在51CTO网站 资料链接 Hadoop下载[链接](http://archive.apache.org/dist/hadoop/core/ ...
- Spark集群术语
Spark集群术语解析 1. Application Application是用户在Spark上构建(编写)的程序,包含driver program 和executors(分布在集群中多个节点上运行的 ...
- spark集群的简单测试和基础命令的使用
写此篇文章之前,已经搭建好spark集群并测试成功: spark集群搭建文章链接:http://www.cnblogs.com/mmzs/p/8193707.html 一.启动环境 由于每次都要启动, ...
- H01-Linux系统中搭建Hadoop和Spark集群
前言 1.操作系统:Centos7 2.安装时使用的是root用户.也可以用其他非root用户,非root的话要注意操作时的权限问题. 3.安装的Hadoop版本是2.6.5,Spark版本是2.2. ...
随机推荐
- iOS项目Info.plist中关键字汇总
1. Application does not run in background (键名:UIApplicationExistsOnSuspend) 自从iOS4.0之后,当你在应用程序执行的时候按 ...
- 图论介绍(Graph Theory)
1 图论概述 1.1 发展历史 第一阶段: 1736:欧拉发表首篇关于图论的文章,研究了哥尼斯堡七桥问题,被称为图论之父 1750:提出了拓扑学的第一个定理,多面体欧拉公式:V-E+F=2 第二阶段( ...
- 在linux环境中配置tomcat
1.将tomcat文件上传到linux服务器上,并且解压文件. 2.创建文件夹 mkdir /usr/local/solr (这个文件夹,根据自己的喜好来创建) 3.将解压好的tomcat文件复制到 ...
- u盘装完centos系统恢复
1.使用windows的cmd窗口,执行diskpart命令 2.执行 list disk命令,查看u盘 3.执行 select disk 2,选中u盘,注意,这里的2是我自己的显示,千万不要选错 4 ...
- 如何知道某个ACTIVITY是否在前台?
本文链接:http://zengrong.net/post/1680.htm 有一个Android应用包含包含一个后台程序,该程序会定期连接服务器来实现自定义信息的推送.但是,当这个应用处于前台的时候 ...
- 剑指offer 二叉树的后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 思路:这题目有点特殊,主要在于序列为空的时候,不是 ...
- js网页拉起支付宝支付
js网页唤起支付宝进行支付 在做uni-app项目中,打包成 ios App的时候,为了绕过苹果支付的审核,所以用的 webview 加载支付宝的网页支付,进行付款 具体实现流程: 前端通过 url ...
- Day8 - C - Largest Rectangle in a Histogram HDU - 1506
A histogram is a polygon composed of a sequence of rectangles aligned at a common base line. The rec ...
- nodejs(12)Express 中间件middleware
中间件 客户端的请求到达服务器时,他的生命周期是:request -- 服务器端处理 -- 响应 在服务器端处理过程中,业务逻辑复杂时,为了便于开发维护,需要把处理的事情分成几步,这里每一步就是一个中 ...
- MySQL 加密 压缩
许多MySQL加密和压缩函数返回结果可能包含任意字节值的字符串,如果要存储这些结果,请使用VARBINARY或BLOB二进制字符串数据类型.这将避免使用非二进制字符串数据类型(CHAR, VARCHA ...