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. 洛谷 P6046 [CTSC2000]快乐的蜜月

    先讲解一下如何处理这道题的毒瘤输入.\(m\) 和 \(d\) 之间的"/"和" TO "都可以用 getchar() 强行吃掉,日期的转换可以用公式 \(s_ ...

  2. 学习进度-11 RDD 编程初级实践

    一. 请到本教程官网的“下载专区”的“数据集”中下载 chapter5-data1.txt,该数据集包含 了某大学计算机系的成绩,数据格式如下所示: Tom,DataBase,80 Tom,Algor ...

  3. 六、ibatis1.2.8查询性能优化,实现百万数据zip导出

    经测试发现将查询的结果100万数据(池子中共有大概14亿的数据)写入Excle文件并进行压缩导出zip文件最耗时的地方竟然在查询,因此本篇文章主要是针对如何在spring+ibatis1.2.8中优化 ...

  4. Linux centosVMware su命令、sudo命令、限制root远程登录

    一.su命令 Linux系统中有些事情只有root用户才能做,普通用户不能做,这时候就需要临时切换到root身份了. [root@davery ~]# whoamiroot [root@davery ...

  5. 通过CrawlSpider对招聘网站进行整站爬取(拉勾网实战)

    爬虫首先要明确自己要爬取的网站以及内容 进入拉勾网的网站然后看看想要爬取什么内容职位,薪资,城市,经验要求学历要求,全职或者兼职职位诱惑,职位描述提取公司的名称 以及 在拉勾网的url等等 然后在na ...

  6. MySQL日常使用笔记

    逍遥山人的MySQL使用笔记,持续更新中 表结构 新建表以及添加表和字段的注释 create table t_user( ID INT(11) primary key auto_increment c ...

  7. 【Go语言系列】2.1、Go语言基本程序结构:注释

    注释在程序中的作用是对程序进行注解和说明,便于对源码的阅读.在源码中适当地添加注释,能够提高源码的可读性. Go语言的注释主要分成两类,分别是单行注释和多行注释. 单行注释: //单行注释 多行注释: ...

  8. PHP+MySQL实现在线测试答题实例

    这个实例主要给大家介绍如何使用jQuery+PHP+MySQL来实现在线测试题,包括动态读取题目,答题完毕后台评分,并返回答题结果. 读取答题列表: $sql = "select * fro ...

  9. 一 Mybatis概述&与Hibernate的区别&CRUD

    Mybatis是类似Hibernate的ORM持久层框架 为什么学习Mybatis? 是目前国内主流的持久层框架,面向sql(相较于Hibernate,Mybatis一定要用sql) Hibernat ...

  10. jenkins -- 邮件的配置

    参考博文:https://blog.csdn.net/lykio_881210/article/details/81135769 https://www.jianshu.com/p/29a29ce6e ...