我们已经准备好了,你呢?

2023我们与您携手共赢,为您的企业形象保驾护航!


喜讯:国内、香港、海外云服务器租用特惠活动,2核/4G/10M仅需31元每月,点击抢购>>>

点击这里点击这里进入阿里云ECS官方页面,立即免费体验云服务器ECS>>>

点击这里阿里云老客户点击这里申请VIP账号,享终身8折优惠(续费也打折)>>>

使用eRDMA可以获得超低的延迟,更快地处理请求。本文介绍如何创建以eRDMA增强型实例作为节点的Spark集群,并部署Benchmark测试Spark集群处理负载的性能。

背景信息

Benchmark是一种基准性能测试工具,主要用于测试负载的执行时间、传输速度、吞吐量和资源占用率等。

步骤一:准备环境

在测试集群性能前,需要先准备测试需要的集群环境,例如Hadoop和Spark机器、安装Hadoop、安装并配置eRDMA等。

  1. 准备Hadoop环境。如果已有大数据集群,请忽略该步骤。

    • Hadoop版本:Hadoop 3.2.1

    • Spark版本:Spark 3.2.1

    • ECS实例:

    • 实例规格:请参见基本规格

    • vCPU个数:16

    • 集群节点个数:1个主节点、3个worker节点

    • 软硬件环境要求

      部署该集群需要准备Hadoop、Spark机器,请参考如下版本进行配置。

    • 安装步骤

      安装Hadoop大数据集群的具体操作,请参见通过FastMR自动拉起大数据集群。

  2. 登录集群主节点上的ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例。

  3. 配置eRDMA。

    • 驱动安装

      具体操作,请参见在企业级实例上配置eRDMA。

    • 网络配置

    • yarn配置

      说明

      如果实例的默认网卡支持eRDMA,无需进行Yarn配置。

    • Spark配置

      说明

      如果实例的默认网卡支持eRDMA,无需进行Spark配置。

    1. 依次执行以下命令,打开spark-env.sh文件。

       

      cd /opt/spark-3.2.1-bin-hadoop3.2/conf
      vim spark-env.sh
    2. i键进入编辑模式,在配置文件中增加以下内容。

       

      export SPARK_LOCAL_IP=`/sbin/ip addr show eth1 | grep "inet" | awk '{print $2}' | cut -d/ -f1`

      说明

      请根据实际情况,将eth1替换为实际eRDMA的网卡名称。

    3. Esc键退出编辑模式,输入:wq并按下Enter键,保存并退出文件。

    4. 依次执行以下命令,打开yarn-env.sh文件。

       

      cd /opt/hadoop-3.2.1/etc/hadoop
      vim yarn-env.sh
    5. i键进入编辑模式,在配置文件中增加以下内容:

       

      RDMA_IP=`ip addr show eth1 | grep "inet" | awk '{print $2}' | cut -d/ -f1`
      export YARN_NODEMANAGER_OPTS="-Dyarn.nodemanager.hostname=$RDMA_IP"

      说明

      请根据实际情况,将eth1替换为实际eRDMA的网卡名称。

    6. Esc键退出编辑模式,输入:wq并按下Enter键,保存并退出文件。

    7. 执行以下命令,打开hosts文件。

       

      vim /etc/hosts
    8. i键进入编辑模式,在配置文件中修改以下内容。

       

      192.168.201.83 poc-t5m0        master1
      192.168.201.84 poc-t5w0
      192.168.201.86 poc-t5w1
      192.168.201.85 poc-t5w2

      说明

      请根据实际情况,将IP地址替换为实际eRDMA网卡对应的IP地址。

    9. Esc键退出编辑模式,输入:wq并按下Enter键,保存并退出文件。

  4. 执行以下命令,启动HDFS及Yarn。

     

    $HADOOP_HOME/sbin/start-all.sh

步骤二:下载Benchmark安装包

本步骤为您介绍如何下载用于测试的Benchmark安装包。

  1. 执行以下命令,下载Benchmark安装包。

     

    wget https://mracc-release.oss-cn-beijing.aliyuncs.com/erdma-spark/spark-erdma-jverbs.tar.gz
  2. 执行以下命令,解压spark-erdma-jverbs.tar.gz安装包。

     

    tar -zxvf spark-erdma-jverbs.tar.gz

    安装包文件介绍:

    • erdmalib:运行spark-erdma需要的native库,对应文件包括libdisni.so

    • plugin-sparkrdma:支持Spark RDMA的插件及依赖库,对应文件为spark-eRDMA-1.0-for-spark-3.2.1.jardisni-2.1-jar-with-dependencies.jar

步骤三:执行Benchmark测试

本步骤为您介绍如何使用Benchmark测试Spark集群处理负载的性能。

  1. 执行以下命令,修改ip route。

    说明

    如果实例的默认网卡支持eRDMA,可以跳过该步骤。

     

    route del -net 192.168.201.0 netmask 255.255.255.0 metric 0 dev eth0 && 
    route add -net 192.168.201.0 netmask 255.255.255.0 metric 1000 dev eth0

    说明

    请根据实际情况,将IP地址替换为实际eRDMA网卡对应的网关IP地址。

  2. Spark配置。

    • spark.shuffle.compress设置为false会得到更好的加速比。

    • 本配置中的spark.executor.instancesspark.executor.memoryspark.executor.coresspark.sql.shuffle.partitions等Spark资源配置以32 vCPU、128 GB规格的实例为例,请您根据实际实例或者集群规模进行调整。

    1. 执行以下命令,打开配置文件spark-jverbs-erdma.conf。

       

      vim /opt/spark-3.2.1-bin-hadoop3.2/conf/spark-jverbs-erdma.conf
    2. i键进入编辑模式,将配置文件修改为以下内容。

       

      spark.master yarn
      spark.deploy-mode client#driverspark.driver.cores 4
      spark.driver.memory 19g#executorspark.executor.instances 12
      spark.executor.memory 10g
      spark.executor.cores 4
      spark.executor.heartbeatInterval   60s#shufflespark.task.maxFailures 4
      spark.default.parallelism 36
      spark.sql.shuffle.partitions 192
      spark.shuffle.compress            true
      spark.shuffle.spill.compress      true#otherspark.network.timeout 3600
      spark.sql.broadcastTimeout 3600
      spark.eventLog.enabled             false
      spark.eventLog.dir                 hdfs://master1:9000/sparklogs
      spark.eventLog.compress            true
      spark.yarn.historyServer.address   master1:18080
      spark.serializer                  org.apache.spark.serializer.KryoSerializer#eRDMAspark.driver.extraLibraryPath   /path/erdmalib
      spark.executor.extraLibraryPath   /path/erdmalib
      spark.driver.extraClassPath       /path/spark-eRDMA-1.0-for-spark-3.2.1.jar:/path/disni-2.1-jar-with-dependencies.jar
      spark.executor.extraClassPath     /path/spark-eRDMA-1.0-for-spark-3.2.1.jar:/path/disni-2.1-jar-with-dependencies.jar
      spark.shuffle.manager org.apache.spark.shuffle.sort.RdmaShuffleManager
      spark.shuffle.sort.io.plugin.class org.apache.spark.shuffle.rdma.RdmaLocalDiskShuffleDataIO
      spark.shuffle.rdma.recvQueueDepth  128

      说明

    3. 推荐:TOP云智能建站优惠活动,仅880元即可搭建一个后台管理五端合一的智能网站(PC网站、手机网站、百度智能小程序、微信小程序、支付宝小程序),独享百度搜索SEO优势资源,让你的网站不仅有颜值有排面,更有排名,可以实实在在为您带来效益,请点击进入TOP云智能建站>>>,或咨询在线客服了解详情。



我们已经准备好了,你呢?

2023我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

131-3501-0006

上班时间

周一到周五

公司电话

130-0743-9476

二维码
线