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集群硬件建议的更多相关文章

  1. 【Spark学习】Apache Spark集群硬件配置要求

    Spark版本:1.1.1 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4135912.html 目录 存 ...

  2. zhihu spark集群,书籍,论文

    spark集群中的节点可以只处理自身独立数据库里的数据,然后汇总吗? 修改 我将spark搭建在两台机器上,其中一台既是master又是slave,另一台是slave,两台机器上均装有独立的mongo ...

  3. Spark集群 + Akka + Kafka + Scala 开发(4) : 开发一个Kafka + Spark的应用

    前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境中,我们已经部署好了一个Spark的开发环境. 在Spark集群 + Akka + Kafka + S ...

  4. 安装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 ...

  5. 使用docker安装部署Spark集群来训练CNN(含Python实例)

    使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...

  6. Spark集群搭建中的问题

    参照<Spark实战高手之路>学习的,书籍电子版在51CTO网站 资料链接 Hadoop下载[链接](http://archive.apache.org/dist/hadoop/core/ ...

  7. Spark集群术语

    Spark集群术语解析 1. Application Application是用户在Spark上构建(编写)的程序,包含driver program 和executors(分布在集群中多个节点上运行的 ...

  8. spark集群的简单测试和基础命令的使用

    写此篇文章之前,已经搭建好spark集群并测试成功: spark集群搭建文章链接:http://www.cnblogs.com/mmzs/p/8193707.html 一.启动环境 由于每次都要启动, ...

  9. H01-Linux系统中搭建Hadoop和Spark集群

    前言 1.操作系统:Centos7 2.安装时使用的是root用户.也可以用其他非root用户,非root的话要注意操作时的权限问题. 3.安装的Hadoop版本是2.6.5,Spark版本是2.2. ...

随机推荐

  1. topthink/think-swoole 扩展包的使用 之 Task

    本想自己适配的,奈何keng貌似不少,所以果断选择官方提供的包来适配233... 默认条件:thinkphp5.1.*版本下,且安装了swoole扩展 主要演示:task 任务的投递 友情提示:在sw ...

  2. There is no Action mapped for action name hello.

  3. Day3-K-Can you solve this equation? HDU2199

    Now,given the equation 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y,can you find its solution between 0 and ...

  4. 如何借助 Python 俘获女孩子芳心?

    责编 | 刘静 天气降温,感情却升温了? 上午刚到公司,就收到小Q发来的灵魂拷问: ​ ​ “Q仔!要不然下午请个假!我带你去精神科看看!?”我实在忍不了,脱口而出. 话音未落,前排的运营小花回头看向 ...

  5. 学习:java原理—反射机制

      一.什么是反射:反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.这一概念的提 出很快引发了计算机科学领域关于应用反射性的研究.它首先被程 ...

  6. instance与可变参数合用,多态性

    public class Doubt { public static void main(String[] args) { Dog d1=new Dog(); Dog d2=new Zangao(); ...

  7. C++ Primer Plus 6 笔记(2)

    第4章 1.求数组元素个数的一种方法:num=sizeof 数组名/sizeof (元素类型) 2.确定字符串所需的最短数组时,别忘了将结尾的'\0'计算在内.表面可以无,内存必须有. 3.'S'表示 ...

  8. Paper代写:别让段落结尾拉低你的分数

    为了达到paper写作格式和字数要求,学生往往会在段末做一件事:总结.都不算是一个很长的段落.本来就写不了多少论证的内容,我们还强制加一个总结句,不仅占用了我们论证的篇幅,而且显得多余(段首的主题句已 ...

  9. MongoDB安装+基础操作

    MongoDB 一. 安装 这里展示使用docker安装mongoDB 拉取最新MongoDB镜像 docker pull mongo 运行容器 docker run -itd --name mong ...

  10. 南邮平台之Hello,RE!

    小白闲逛了一下南邮平台看到了逆向这题,小白在网上看了一下别人的write up发现有点复杂.于是小白就试试看,直接Underfine然后结果就出来了.....有点意外...... 结果flag{Wel ...