1、存储系统

  如果可以的话,把Spark的hadoop的节点安装在一起,最容易的方式是用standalone的模式安装,用mapred.child.java.opts设置每个任务的内存,用mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum来设置map和reduce任务的最大数来分隔来这两个集群的可利用资源,也可以考虑用YARN模式。

  如果不行,就在一个局域网里面。但是对于Hbase这样的低延迟的系统,就不要部署在同样的机器上面,避免干扰。

2、本地硬盘

  当Spark没办法把所有的内容放在内存中计算的时候,它会把部分内容存储到硬盘当中,推荐一个节点配置4-8块硬盘,不要配置RAID,仅仅是作为单独的mount点。在linux里面,用noatime选项来mount硬盘可以减少不必要的写操作。用spark.local.dir来配置本地磁盘目录,如果跑着HDFS,使用和HDFS一样的硬盘。

3、内存

  Spark最少在运行8GB以上的内存的机器上面,推荐是把最多75%的内存分配给Spark,把剩下的分配给操作系统和缓存。Java VM在超过200GB的内存的机器上面表现得并不好,如果买的机器超过这个内存,可以使用多个worker JVMs一个节点。在spark-env.sh中用SPARK_WORKER_INSTANCES设置一个节点的worker数量,用SPARK_WORKER_CORES设置每个worker多少个核心。

4、网络

  Spark是网络绑定型的系统,使用10GB以上的网络,会使程序运行得更快,尤其是一些distributed reduce的程序当中,使用了group-bys, reduce-bys, and SQL joins的操作的时候。我们可以通过http://<driver-node>:4040来查看Spark shuffles在网络当中传输的数据量。

5、CPU核心

  Spark支持扩展数十个CPU核心一个机器,它实行的是线程之间最小共享。我们需要至少使用8-16个核心的机器,当内存足够的情况之下,程序跑起来,就看CPU和网络了。

Spark硬件配置推荐的更多相关文章

  1. 对Spark硬件配置的建议

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

  2. 【Spark】---- Spark 硬件配置

    存储系统 Spark任务需要从一些外部的存储系统加载数据(如:HDFS 或者 HBase),重要的是存储系统要接近Spark系统,我们有如下推荐:   (1)如果可能,运行Spark在相同的HDFS节 ...

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

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

  4. 为Hadoop集群选择合适的硬件配置

    随着Apache Hadoop的起步,云客户的增多面临的首要问题就是如何为他们新的的Hadoop集群选择合适的硬件. 尽管Hadoop被设计为运行在行业标准的硬件上,提出一个理想的集群配置不想提供硬件 ...

  5. spark 安装配置

    最佳参考链接 https://opensourceteam.gitbooks.io/bigdata/content/spark/install/spark-160-bin-hadoop26an_zhu ...

  6. MongoDB的容量规划及硬件配置

    mongo是基于内存的数据库,应尽量将工作集中的数据全部加载到内存中,即内存应大于工作集 本文译自Chad Tindel的英文博客: http://www.mongodb.com/blog/post/ ...

  7. 人机大战之AlphaGo的硬件配置和算法研究

    AlphaGo的硬件配置 最近AlphaGo与李世石的比赛如火如荼,关于第四盘李世石神之一手不在我们的讨论范围之内.我们重点讨论下AlphaGo的硬件配置: AlphaGo有多个版本,其中最强的是分布 ...

  8. 如何查看LINUX 硬件配置信息

    如何查看LINUX 硬件配置信息 在网上找了N久,发现了一篇不错的文档,转载一下: 1.查看机器所有硬件信息: dmidecode |more dmesg |more 这2个命令出来的信息都非常多,所 ...

  9. C/C++通过WMI和系统API函数获取获取系统硬件配置信息

    转载:http://www.cnblogs.com/renyuan/archive/2012/12/29/2838716.html 转载:http://blog.csdn.net/jhqin/arti ...

随机推荐

  1. CentOS 7 host-only 设置上网

    CentOS 7 ifcfg-enp0s3: HWADDR=::::F6: TYPE=Ethernet BOOTPROTO=static #dhcp DEFROUTE=yes PEERDNS=yes ...

  2. 关于ansbile工具的shell、command、script、raw模块的区别和使用场景

    command模块 [执行远程命令] [root@node1 ansible]# ansible testservers -m command -a 'uname -n' script模块 [在远程主 ...

  3. Android 应用架构 - Google 推荐

    Android 应用框架,一般都是使用的 MVC ,MVP ,MVVM 框架,目前 Google 推出了 Android 官方的应用框架. 用到的关键内容: LiveData, ViewModel, ...

  4. MYSQL MVCC实现及其机制

    多版本并发控制 Multiversion Concurrency Control 大部分的MySQL的存储 引擎,比如InnoDB,Falcon,以及PBXT并不是简简单单的使用行锁机制.它们都使用了 ...

  5. vue-webpack快速建立项目模板

  6. 利用Angular.js从PHP读取后台数据

    之前已经有非常多方法能够通过angular进行本地数据的读取.曾经的样例中,大多数情况都是将数据存放到模块的$scope变量中,或者直接利用ng-init定义初始化的数据. 可是这些方法都仅仅为了演示 ...

  7. 在TypeScript中扩展JavaScript基础对象的功能

    最近工作中用到,记录一下:假设我们需要一个功能,把一个数字比如10000输出为下面的字符串格式“10,000”,一般是写一个方法,那么我希望更方便一点,直接向Number类型添加一个格式化方法,比如叫 ...

  8. tomcat最大并发连接数的修改方法

    转载:http://blog.csdn.net/qysh123/article/details/11678903 这是个很简单的问题,但是搜了一圈,发现大家都写错了.所以这里总结一下: 几乎所有的中文 ...

  9. 如何将git本地创建的项目推送到github仓库

    除了集中式的版本控制系统CVS和SVN外,还有目前世界上最先进的分布式版本控制系统Git,它的创始人是创建了linux的大神 - linus.GitHub网站与2008年开始服役,为开源项目免费提供G ...

  10. 每日英语:Does China Face a Reading Crisis?

    For much of the last year, intellectuals and officials in China -- land of world-beating students an ...