spark硬件推荐配置(spark调优最佳配置)

技术Spark调优之硬件要求有哪些这篇文章将为大家详细讲解有关Spark调优之硬件要求有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一,存储系统因为因为大多数Spark工作可能需

本文将详细解释Spark调优的硬件要求。边肖觉得挺实用的,就分享给大家参考。希望你看完这篇文章能有所收获。

一,存储系统

因为大多数Spark作业可能需要从外部存储系统(如Hadoop文件系统或HBase)读取输入数据,所以尽可能靠近系统非常重要。因此,有以下建议:

1、如果可能,在与HDFS相同的节点上运行Spark。最简单的方法就是在同一个节点上安装spark的Standalone集群和hadoop集群,配置Spark和hadoop的内存使用,避免相互干扰(对于hadoop,每个任务的内存配置参数为mapred . child . Java . opts;MapReduce . task tracker . map . task . max和MapReduce . task tracker . reduce . tasks . max决定任务数)。Hadoop和spark也可以在一个通用的集群管理器上运行,比如mesos和yarn。

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

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

二,本地磁盘

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

安装带有noatime选项的磁盘需要在装载文件系统时指定标准Linux安装选项(noatime),这将禁用文件系统上的atime更新。磁盘挂起命令:

装载点-无时间

BlockDevice指定GFS文件系统所在的数据块设备。

Mount指定应该安装GFS文件系统的目录。

示例:

mount-t GFS/dev/vg01/lvol0/GFS 1-o noa time

三,内存

单机内存从8GB到几百GB不等,spark可以很好的运行。在所有情况下,我们建议最多只为Spark分配75%的内存;保留操作系统和缓冲区缓存的其余部分。

你需要多少内存取决于你的应用。为了确定应用程序的特定数据集需要多少内存,请将一些数据集加载到内存中,然后在火花用户界面的存储界面中检查其内存使用情况。

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

最后,请注意,对于内存超过200GB的机器,JAVA虚拟机的运行状态并不总是表现良好。如果您购买的机器的内存超过200GB,您可以在一个节点上运行多个worker。在Spark Standalone模式下,可以在配置文件conf/spark-env.sh中设置SPARK_WORKER_INSTANCES的值,以设置单节点工作人员的数量。您也可以设置SPARK_WORKER_CORES参数来设置每个工作者的CPU数量。

四,网络

根据以往的经验,如果数据在内存中,spark应用的瓶颈往往在于网络。使用10gb或更高的网络是让spark应用程序运行得越来越快的最佳方式。尤其是对于“分布式归约”应用程序,如group-by、reduce-by和sql联接,这一点更为明显。在任何给定的应用程序中,您都可以通过spark ui检查spark shuffle进程通过网络传输了多少数据。

五,cpu

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

我希望这篇关于“Spark调优的硬件要求是什么”的文章能在这里分享。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/148263.html

(0)

相关推荐

  • 热量计算公式,热量计算公式该如何计算才正确

    技术热量计算公式,热量计算公式该如何计算才正确人每天至少需要多少热量公式一热量计算公式: 女: BMR = 655 + ( 9.6 x 体重kg ) + ( 1.8 x 身高cm ) ( 4.7 x 年龄years )

    生活 2021年10月31日
  • 在SQL Server中如何查询资料库的TABLE数量与名称的sql语句

    技术在SQL Server中如何查询资料库的TABLE数量与名称的sql语句今天就跟大家聊聊有关在SQL Server中如何查询资料库的TABLE数量与名称的sql语句,可能很多人都不太了解,为了让大家更加了解,小编给大

    攻略 2021年12月1日
  • Hibernate事务的示例分析

    技术Hibernate事务的示例分析小编给大家分享一下Hibernate事务的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hiber

    攻略 2021年12月8日
  • Docker笔记,狂神说)

    技术Docker笔记,狂神说) Docker笔记(狂神说)1、Docker 入门狂神说教程:https://www.bilibili.com/video/BV1og4y1q7M4share_source

    礼包 2021年10月20日
  • Hibernate连接池的配置方式有哪些

    技术Hibernate连接池的配置方式有哪些这篇文章给大家分享的是有关Hibernate连接池的配置方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Hibernate3.0中,已经不

    攻略 2021年11月17日
  • JAVA多线程怎么实现用户任务排队并预估排队时长

    技术JAVA多线程怎么实现用户任务排队并预估排队时长这篇文章主要介绍“JAVA多线程怎么实现用户任务排队并预估排队时长”,在日常操作中,相信很多人在JAVA多线程怎么实现用户任务排队并预估排队时长问题上存在疑惑,小编查阅

    攻略 2021年12月9日