详情页标题前

阿里云ECS云服务器基于eRDMA增强型实例部署Spark集群-云淘科技

详情页1

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

背景信息

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

步骤一:准备环境

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

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

    • 软硬件环境要求

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

      • Hadoop版本:Hadoop 3.2.1

      • Spark版本:Spark 3.2.1

      • ECS实例:

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

        • vCPU个数:16

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

    • 安装步骤

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

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

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

  3. 配置eRDMA。

    • 驱动安装

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

    • 网络配置

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

        vim /etc/hosts
      2. 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地址。

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

    • yarn配置

      说明

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

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

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

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

        说明

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

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

    • 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\b" | awk '{print $2}' | cut -d/ -f1`

        说明

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

      3. 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.jar和disni-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配置。

    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
      #driver
      spark.driver.cores 4
      spark.driver.memory 19g
      #executor
      spark.executor.instances 12
      spark.executor.memory 10g
      spark.executor.cores 4
      spark.executor.heartbeatInterval   60s
      #shuffle
      spark.task.maxFailures 4
      spark.default.parallelism 36
      spark.sql.shuffle.partitions 192
      spark.shuffle.compress            true
      spark.shuffle.spill.compress      true
      
      #other
      spark.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
      
      #eRDMA
      spark.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

      说明

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

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

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

  3. 依次执行以下命令,生成数据。

    cd /opt/spark-3.2.1-bin-hadoop3.2/conf
    spark-submit --properties-file /opt/spark-3.2.1-bin-hadoop3.2/conf/spark-normal.conf --class com.databricks.spark.sql.perf.tpcds.TPCDS_Bench_DataGen spark-sql-perf_2.12-0.5.1-SNAPSHOT.jar hdfs://master1:9000/tmp/tpcds_400 tpcds_400 400 parquet

    说明

    数值400代表生成的数据量大小,单位为GB,请您根据实际集群规模调整。

  4. 执行以下命令,执行Benchmark测试。

    spark-submit --properties-file /opt/spark-3.2.1-bin-hadoop3.2/conf/spark-jverbs-erdma.conf --class com.databricks.spark.sql.perf.tpcds.TPCDS_Bench_RunAllQuery spark-sql-perf_2.12-0.5.1-SNAPSHOT.jar all hdfs://master1:9000/tmp/tpcds_400 tpcds_400 /tmp/tpcds_400_result

    当出现如下类似结果时,表示测试完成,您可以从测试结果中查看Spark集群处理负载的执行时间。阿里云ECS云服务器基于eRDMA增强型实例部署Spark集群-云淘科技

    说明

    您可以按照以上方法,去掉Spark conf中eRDMA插件相关配置或者登录其他不支持eRDMA的集群,对Spark eRDMA插件的性能做对比。

腾讯云1折,限时活动,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:http://www.yunxiaoer.com/151352.html

(0)
上一篇 2023年12月9日 下午4:43
下一篇 2023年12月9日 下午4:43
详情页2

相关推荐

  • 阿里云ECS云服务器实例状态图-云淘科技

    实例API状态的转换流程示意图如下所示。 腾讯云1折,限时活动,即将结束: 马上收藏同尘科技为腾讯云授权服务中心。购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

    阿里云服务器 2023年12月9日
  • 阿里云RDS数据库UpgradeDBInstanceEngineVersion – 升级RDS MySQL数据库大版本-云淘科技

    该接口用于升级RDS MySQL的数据库大版本。 接口说明 适用引擎 RDS MySQL 相关功能文档 注意 使用该接口前,请仔细阅读功能文档,确保完全了解使用接口的前提条件及使用后造成的影响后,再进行操作。 RDS MySQL升级数据库版本 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI E…

    阿里云数据库 2023年12月9日
  • 阿里云RDS数据库ModifyDBProxy – 开启或关闭实例数据库独享代理功能-云淘科技

    该接口用于开启或者关闭RDS实例的数据库独享代理功能。 接口说明 适用引擎 RDS MySQL RDS PostgreSQL 说明 云数据库RDS MySQL集群系列于2023年10月17日起逐步在各个单元赠送代理数量为1的数据库独享代理服务,详情请参见【优惠】RDS MySQL集群版赠送代理数量为1的数据库独享代理服务。 相关功能文档 注意 使用该接口前,…

    阿里云数据库 2023年12月9日
  • 阿里云ECS云服务器预留实例券概述-云淘科技

    预留实例券是一种抵扣券,可以抵扣按量付费实例(不含抢占式实例)的账单,也能够预留实例资源。相比包年包月实例,预留实例券与按量付费实例这种组合模式可以兼顾灵活性和成本。 概念对比 预留实例券、按量付费实例和包年包月实例的区别如下表所示。 对比项 预留实例券 按量付费实例 包年包月实例 形式 一种抵扣券,分为地域级预留实例券和可用区级预留实例券。 以按量付费方式…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云ECS云服务器成本优化最佳实践-云淘科技

    本文介绍云服务器ECS的成本构成和优势,并提供成本管理的推荐方案,帮助您通过成本管理节约成本,在保障业务快速发展的同时按照预算支出费用,获得最大成本收益。 成本构成 使用云服务器ECS时,成本包括两个方面: 拥有成本:各类资源和资源包的成本。 运维成本:使用云服务器ECS过程中产生的人力成本。 上云的成本优势自建数据中心时,除硬件、网络、电力、机房、人力运维…

    阿里云服务器 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。