更新时间:2024-12-18 GMT+08:00

环境准备

在配置开源Spark组件对接LakeFormation前,需要提前准备以下信息:

  1. 准备可用的开源Spark环境、开源Hive环境。并安装Git环境。

    目前仅支持对接Spark 3.1.1以及Spark 3.3.1两个版本。对应使用Hive内核版本为2.3。

  2. 准备LakeFormation实例,详细操作请参考创建LakeFormation实例
  3. 创建LakeFormation接入客户端,并与Spark在相同的虚拟私有云、子网下,详细操作请参考管理接入客户端
  4. 准备开发环境,详细操作请参考准备开发程序环境中“准备开发环境”部分,其中“安装和配置IntelliJ IDEA”为可选。
  5. 准备LakeFormation客户端。

  6. 准备并补充替换Hive内核相关的jar包。

    如仅使用SparkCatalogPlugin方式对接,不使用MetastoreClient方式对接,本步骤可省略。

    • 方式一:下载预构建Hive相关jar包

      获取地址为:https://gitee.com/HuaweiCloudDeveloper/huaweicloud-lake-formation-lakecat-sdk-java/releases

      根据Spark、Hive版本下载对应客户端(如Spark3.1.1,对应Hive版本为2.3.7,则下载hive-exec-2.3.7-core.jar、hive-common-2.3.7.jar)

    • 方式二:本地编译Hive相关jar包

      如果对接的环境为Spark 3.1.1,则需使用Hive 2.3.7版本。对接的环境为Spark 3.3.1,则需使用Hive 2.3.9版本。

      Windows系统下需要在WSL开发环境下进行maven相关操作。

      1. 根据Hive版本下载Hive源码。

        例如Hive内核版本号为2.3.9,则下载链接为https://github.com/apache/hive/tree/rel/release-2.3.9

      2. 将LakeFormation的客户端代码中的patch应用到Hive源码。
        1. 根据需要切换Hive源码分支,例如Hive内核版本号为2.3.9,则执行如下命令:

          git checkout rel/release-2.3.9

        2. 执行以下命令,将patch应用到切换分支后的Hive源码工程。

          mvn patch:apply -DpatchFile=${your patch file location}

          其中,“your patch file location”为hive-2_3_for_lakeformation.patch的存储路径。patch文件可在客户端工程中获取,如下图所示:

        3. 执行以下命令重新编译Hive内核源码。

          mvn clean install -DskipTests=true

  7. 补充Spark环境所需jar包。

    获取以下jar包,并补充或替换到Spark的jars目录下。

    表1 获取Spark环境所需jar包

    序号

    jar包名称

    获取途径

    1

    spring-web-5.3.24.jar

    https://repo1.maven.org/maven2/org/springframework/spring-web/5.3.24/spring-web-5.3.24.jar

    2

    spring-core-5.3.24.jar

    https://repo1.maven.org/maven2/org/springframework/spring-core/5.3.24/spring-core-5.3.24.jar

    3

    spring-context-5.3.24.jar

    https://repo1.maven.org/maven2/org/springframework/spring-context/5.3.24/spring-context-5.3.24.jar

    4

    spring-beans-5.3.24.jar

    https://repo1.maven.org/maven2/org/springframework/spring-beans/5.3.24/spring-beans-5.3.24.jar

    5

    caffeine-2.9.3.jar

    https://repo1.maven.org/maven2/com/github/ben-manes/caffeine/caffeine/2.9.3/caffeine-2.9.3.jar

    6

    mapstruct-1.5.3.Final.jar

    https://repo1.maven.org/maven2/org/mapstruct/mapstruct/1.5.3.Final/mapstruct-1.5.3.Final.jar

    7

    log4j-api-2.19.0.jar(spark3.3无需补充)

    https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar

    8

    java-sdk-core-3.2.4.jar

    (如果仅使用自定义认证信息获取类使用Token认证,则无需补充该jar包。)

    请联系运维人员获取。

    9

    bcprov-jdk15to18-1.70.jar

    https://mirrors.huaweicloud.com/repository/maven/org/bouncycastle/bcprov-jdk15to18/1.70/bcprov-jdk15to18-1.70.jar

    10

    jca-1.0.4.jar

    https://repo1.maven.org/maven2/org/openeuler/jca/1.0.4/jca-1.0.4.jar

    11

    hadoop-huaweicloud-3.1.1-hw-53.8.jar

    https://github.com/huaweicloud/obsa-hdfs/blob/master/release/hadoop-huaweicloud-3.1.1-hw-53.8.jar

    12

    lakeformation-lakecat-client-1.0.0.jar

    步骤 5中获取。

    13

    hive-exec-${version}-core.jar

    步骤 6中获取。

    14

    hive-common-${version}.jar

    步骤 6中获取。