存储系统
Spark任务需要从一些外部的存储系统加载数据(如:HDFS 或者 HBase),重要的是存储系统要接近Spark系统,我们有如下推荐:
 
(1)如果可能,运行Spark在相同的HDFS节点,最简单的方法是建立一个引发相同的节点上的集群独立模式(http://spark.apache.org/docs/latest/spark-standalone.html),和配置Spark的Configure和Hadoop的内存和CPU使用避免干扰(对于Hadoop,) 或者 你能够运行Hadoop和Spark在一个相同的cluster manager 像 Mesos或者Hadoop YARN
(2)如果能,运行Spark在不同的节点上,需要使用相同局域网内部的HDFS节点。
(3)对于低延迟数据存储如同HBase,使用不同的节点上的数据比使用本地存储系统数据 干扰更小(但是HBase存储比本地存储避免干扰性方面表现的更好)
 
本地硬盘
虽然Spark能够在内存中执行大量的计算,它仍然需要本地硬盘作为数据的存储,不适合把数据存储在RAM中,以及保护中间的输出阶段,我们推荐每个节点有4-8个硬盘,没有配置RAID(就如同不同的挂载点) 在Linux中挂载硬盘 使用noatime option(http://www.centos.org/docs/5/html/Global_File_System/s2-manage-mountnoatime.html) 减少不必要的写操作,在Spark里面,配置 
spark.local.dir 变量以一个","号隔开(http://spark.apache.org/docs/latest/configuration.html),如果你正在运行着HDFS,它正好和HDFS放在一个相同的硬盘上。
 
内存
一般而言,Spark能够运行在任意的 8G to hundreds of gigabytes 的内存的机器上,所有情况下,我们推荐最多给Spark配置 75%的内存容量,其他的容量是系统和buffer缓存使用。
你的内存需要多大是依靠你的Application决定的,确定你的应用使用多少内存特定大小,你需要加载一部分特定的数据到Spark RDD 并使用 UI的存储选项卡(http://<driver-node>:4040)观测内存使用量。注意,内存使用量大大影响存储水平和序列化格式,看调度指南如何优化(http://spark.apache.org/docs/latest/tuning.html)。
最后,注意,Java VM在超过200 GB的RAM上并不总是表现良好。如果你这这样的RAM机器,你可以在上面多跑几个Worker,在Spark的独立模式中,你能够在每个节点上设置多个Workers ,设置 conf/spark-env.sh 中的SPARK_WORKER_INSTANCES变量,并且设置SPARK_WORKER_CORES 的核数
 
网络
 
根据经验,当数据在内存中, 使用万兆网卡程序将运行的更快,特别是“distributed reduce” application 例如 group-bys 减少,reduce-bys 和SQL的join ,在一个任何给定的application ,你能够通过UI查看Spark的shuffles的过程及多大的数据执行shuffles。
 
 
CPU 核数
 
Spark 每个每个集群要启动成千上万的线程,每个集群的核数至少是8-16 核。你的工作的负载是依靠CPU ,你也需要更多的:一旦数据在内存中,更多应用取决CPU或者带宽

【Spark】---- Spark 硬件配置的更多相关文章

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

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

  2. 对Spark硬件配置的建议

    对于Spark开发人员来说,一个比较普遍的问题就是如何合理的配置Spark的硬件?当然如何合理的对Spark集群进行硬件配置要视情况而定,在这里给出以下建议: 存储系统 在大数据领域,有一句" ...

  3. Project Tungsten:让Spark将硬件性能压榨到极限(转载)

    在之前的博文中,我们回顾和总结了2014年Spark在性能提升上所做的努力.本篇博文中,我们将为你介绍性能提升的下一阶段——Tungsten.在2014年,我们目睹了Spark缔造大规模排序的新世界纪 ...

  4. Windows下Spark单机环境配置

    1. 环境配置 a)  java环境配置: JDK版本为1.7,64位: 环境变量配置如下: JAVA_HOME为JDK安装路径,例如D:\software\workSoftware\JAVA 在pa ...

  5. spark HA 安装配置和使用(spark1.2-cdh5.3)

    安装环境如下: 操作系统:CentOs 6.6 Hadoop 版本:CDH-5.3.0 Spark 版本:1.2 集群5个节点 node01~05 node01~03 为worker. node04. ...

  6. windows下spark开发环境配置

    http://www.cnblogs.com/davidwang456/p/5032766.html windows下spark开发环境配置 --本篇随笔由同事葛同学提供. windows下spark ...

  7. Spark log4j日志配置详解(转载)

    一.spark job日志介绍    spark中提供了log4j的方式记录日志.可以在$SPARK_HOME/conf/下,将 log4j.properties.template 文件copy为 l ...

  8. spark集群配置以及java操作spark小demo

    spark 安装 配置 使用java来操作spark spark 安装 tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz rm spark-2.4.0-bin-hadoo ...

  9. SparkR 读取数据& Spark运行的配置

    1.本地LOCAL环境安装Spark并试运行配置(在Ubuntu系统下例子) # 打开文件配置环境变量: JAVA,SCALA,SPARK,HADOOP,SBT gedit /etc/profile ...

随机推荐

  1. 英語版Windows Server 2012 R2を日本語化する手順

    [スタート]ボタンを押し.[Control Panel]を起動 [Clock, Language and Region]の下の[Add a Language]をクリック [Add a Language ...

  2. 在Linux下用源码编译安装apache2

    Linux下安装一个软件,最好去看下它的官方guide,apache2.4的安装安装guide 0. installation guide http://httpd.apache.org/docs/2 ...

  3. 第一篇HBuilder在这里!

    本文作为一个引子,所有相关文章,都会在这里做一个索引,现在还空着.谢谢

  4. 如何改变Activity在当前任务堆栈中的顺序,Intent参数大全

    引用:http://blog.csdn.net/think_soft/article/details/7477072 本示例演示如何通过设置Intent对象的标记,来改变当前任务堆栈中既存的Activ ...

  5. 安装Window Services 提示错误 [SC] OpenSCManager FAILED 5

    通过CMD注册Windows服务 之前一直这样写一直也是注册成功,今天却遇到了问题SC Manager 失败 sc create  RenService binPath=  C:\Tools\Stat ...

  6. notepad++插件

    html插件 https://github.com/downloads/davegb3/NppTidy2/Tidy2_0.2.zip

  7. 在linux下配置静态IP

    在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0   开始编辑,填写ip地址.子网掩码.网关.DNS等.其中“红框内的信息”是必须得有的.   编 ...

  8. Android开发之ProgressDialog在独立Thread线程中更新进度

    简单的需求:在一个工作Thread中更新进度对话框ProgressDialog 遇到的问题: 1,创建需要Context,这个需要传进来 2,Thread中不能创建ProgressDialog,否则需 ...

  9. WebDriver基本API使用手册(基于Java和C#)

    WebDriver基本API使用手册(基于Java和C#) http://www.docin.com/p-747728551.html

  10. node递归属性目录结构

    要求,读取结束后才能输出所有文件 var fs = require('fs');var path = require('path'); var list = [];var count = 0;func ...