面试必备|spark对硬件的要求

估计所有的spark开发者都很关心spark的硬件要求。恰当的硬件配置需要具体情况具体分析,在这里给出以下建议。主要译自官网


一,存储系统


因为大多数Spark工作可能需要从外部存储系统(例如Hadoop文件系统或HBase)中读取输入数据,所以将spark尽可能部署到靠近存储系统很重要。所以,有如下建议:


1,如果可能,在与HDFS相同的节点上运行Spark。最简单的方式是将spark Standalone集群和hadoop集群安装在相同的节点,同时配置好Sparkhadoop的内存使用,避免相互干扰(对于hadoop,每个task的内存配置参数是mapred.child.java.optsmapreduce.tasktracker.map.tasks.maximum mapreduce.tasktracker.reduce.tasks.maximum 决定了task的数目)。也可以将hadoopspark运行在共同的集群管理器上,如mesos和 yarn


2,如果不可能,请在与HDFS相同的局域网中的不同节点上运行Spark


3,对于低延迟数据存储(如HBase),可能优先在与存储系统不同的节点上运行计算任务以避免干扰。


二,本地磁盘


虽然Spark可以在内存中执行大量的计算,但它仍然使用本地磁盘来存储不适合RAM的数据,以及在stage之间,也即shuffle的中间结果。建议每个节点至少有4-8块磁盘,并且不需要RAID,仅仅是独立的磁盘挂在节点。在Linux中,使用noatime选项安装磁盘,以减少不必要的写入。在spark任务中,spark.local.dir配置可以十多个磁盘目录,以逗号分开。如果运行在hdfs上,与hdfs保持一致就很好。


使用noatime选项安装磁盘,要求当挂载文件系统时,可以指定标准Linux安装选项(noatime),这将禁用该文件系统上的atime更新。磁盘挂在命令:

 
 
mount -t gfs BlockDevice MountPoint -o noatime	
BlockDevice 指定GFS文件系统驻留的块设备。	
MountPoint 指定GFS文件系统应安装的目录。	
例子:	
mount -t gfs /dev/vg01/lvol0 /gfs1 -o noatime


三,内存


单台机器内存从8GB到数百GBspark都能运行良好。在所有情况下,建议仅为Spark分配最多75%的内存;留下其余的操作系统和缓冲区缓存。


需要多少内存取决于你的应用程序。要确定你的应用的特定数据集需要多大内存,请加载部分数据集到内存,然后在Spark UIStorage界面去看它的内存占用量。


请注意,内存使用受到存储级别和序列化格式的极大影响 - 有关如何减少内存使用的技巧,请参阅另一篇调优的文章。


最后,请注意,对于超过200GB的内存的机器JAVA VM运行状态并不一直表现良好。如果买的机器内存超过了200GB,那么可以在一个节点上运行多个workerSpark Standalone模式下,可以在配置文件 conf/spark-env.sh中设置SPARK_WORKER_INSTANCES的值来设置单节点worker的数目。也可以设置SPARK_WORKER_CORES参数来设置每个Workercpu数目。


四,网络


根据以往的经验,假如数据是在内存中,那么spark的应用的瓶颈往往就在网络。用10 Gigabit或者更高的网络,是使spark应用跑的最更快的最佳方式。特别是针对“distributed reduce”应用,如group-bys,reduce-byssql joins,就表现的更加明显。在任何给定的应用程序中,可以通过spark ui查看spark shuffle过程夸网络传输了多少数据。


五,cpu


对于每台机器几十个cpu的机器spark也可以很好的扩展,因为他在线程之间执行最小的共享cpu。应该每台机器至少配置8-16个内核。根据cpu负载,可能需要更多的cpu:一旦数据在内存中,大多数应用程序的瓶颈就在CPU和网络。


推荐阅读:

面试必备|spark 高层通用调优

Spark Adaptive Execution调研

640?wx_fmt=png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值