更新时间:2024-08-03 GMT+08:00

准备Spark本地应用开发环境

  • Spark2x可以使用Java/Scala/Python语言进行应用开发,要准备的开发和运行环境如表1所示。
    表1 开发环境

    准备项

    说明

    操作系统

    • 开发环境:Windows系统,支持Windows 7以上版本。
    • 运行环境:Windows系统或Linux系统。

      如需在本地调测程序,运行环境需要和集群业务平面网络互通。

    安装JDK

    Java/Scala开发和运行环境的基本配置。版本要求如下:

    服务端和客户端仅支持自带的OpenJDK,版本为1.8.0_272,不允许替换。

    对于客户应用需引用SDK类的Jar包运行在客户应用进程中的。

    • X86客户端:Oracle JDK:支持1.8版本;IBM JDK:支持1.8.5.11版本。
    • TaiShan客户端:OpenJDK:支持1.8.0_272版本。
    说明:

    基于安全考虑,服务端只支持TLS V1.2及以上的加密协议。

    IBM JDK默认只支持TLS V1.0,若使用IBM JDK,请配置启动参数“com.ibm.jsse2.overrideDefaultTLS”“true”,设置后可以同时支持TLS V1.0/V1.1/V1.2,详情参见https://www.ibm.com/support/knowledgecenter/zh/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/jsse2Docs/matchsslcontext_tls.html#matchsslcontext_tls

    安装和配置IntelliJ IDEA

    用于开发Spark应用程序的工具,建议使用2019.1或其他兼容版本。

    说明:
    • 若使用IBM JDK,请确保IntelliJ IDEA中的JDK配置为IBM JDK。
    • 若使用Oracle JDK,请确保IntelliJ IDEA中的JDK配置为Oracle JDK。
    • 若使用Open JDK,请确保IntelliJ IDEA中的JDK配置为Open JDK。
    • 不同的IntelliJ IDEA不要使用相同的workspace和相同路径下的示例工程。

    安装Maven

    开发环境的基本配置。用于项目管理,贯穿软件开发生命周期。

    安装Scala

    Scala开发环境的基本配置。版本要求:2.12.14。

    安装Scala插件

    Scala开发环境的基本配置。版本要求:2018.2.11或其他兼容版本。

    安装Editra

    Python开发环境的编辑器,用于编写Python程序。或者使用其他编写Python应用程序的IDE。

    准备开发用户

    参考准备MRS应用开发用户章节进行配置。

    7-zip

    用于解压“*.zip”和“*.rar”文件,支持7-Zip 16.04版本。

    安装Python

    版本要求不低于3.7。

准备运行环境

进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。

  • 如果本地Windows开环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。
    1. 登录FusionInsight Manager页面,选择“集群 > 概览 > 更多 > 下载客户端”,“选择客户端类型”设置为“仅配置文件”,根据待安装客户端节点的节点类型选择正确的平台类型后(x86选择x86_64,ARM选择aarch64)单击“确定”,等待客户端文件包生成后根据浏览器提示下载客户端到本地并解压。

      例如,客户端文件压缩包为“FusionInsight_Cluster_1_Services_Client.tar”,解压后得到“FusionInsight_Cluster_1_Services_ClientConfig_ConfigFiles.tar”,继续解压该文件。解压到本地PC的“D:\FusionInsight_Cluster_1_Services_ClientConfig_ConfigFiles”目录下(路径中不能有空格)。

    2. 进入客户端解压路径“FusionInsight_Cluster_1_Services_ClientConfig_ConfigFiles\Spark2x\config”,手动将配置文件导入到Spark样例工程的配置文件目录中(通常为“resources”文件夹)。

      准备MRS应用开发用户时获取的keytab文件也放置于该目录下,主要配置文件说明如表2所示。

      表2 配置文件

      文件名称

      作用

      carbon.properties

      CarbonData配置文件。

      core-site.xml

      配置HDFS详细参数。

      hdfs-site.xml

      配置HDFS详细参数。

      hbase-site.xml

      配置HBase详细参数。

      hive-site.xml

      配置Hive详细参数。

      jaas-zk.conf

      java认证配置文件。

      log4j-executor.properties

      executor日志配置文件。

      mapred-site.xml

      Hadoop mapreduce配置文件。

      ranger-spark-audit.xml

      ranger审计日志配置文件。

      ranger-spark-security.xml

      ranger权限管理配置文件。

      yarn-site.xml

      配置Yarn详细参数。

      spark-defaults.conf

      配置Spark详细参数。

      spark-env.sh

      Spark环境变量配置文件。

      user.keytab

      对于Kerberos安全认证提供用户信息。

      krb5.conf

      Kerberos Server配置信息。

    3. 在应用开发过程中,如需在本地Windows系统中调测应用程序,需要复制解压目录下的“hosts”文件中的内容到客户端所在节点的hosts文件中,确保本地机器能与解压目录下“hosts”文件中所列出的各主机在网络上互通。
      • 当客户端所在主机不是集群中的节点时,配置客户端网络连接,可避免执行客户端命令时出现错误。
      • Windows本地hosts文件存放路径举例:“C:\WINDOWS\system32\drivers\etc\hosts”。
  • 如果使用Linux环境调测程序,需在Linux节点安装集群客户端并获取相关配置文件。
    1. 在节点中安装客户端,例如客户端安装目录为“/opt/client”。

      客户端机器的时间与集群的时间要保持一致,时间差小于5分钟。

      集群的Master节点或者Core节点使用客户端可参考集群内节点使用MRS客户端,MRS集群外客户端的安装操作可参考集群外节点使用MRS客户端

    2. 登录FusionInsight Manager页面,下载集群客户端软件包至主管理节点并解压,然后以root用户登录主管理节点,进入集群客户端解压路径下,复制“FusionInsight_Cluster_1_Services_ClientConfig/Spark2x/config”路径下的所有配置文件至客户端节点,放置到与准备放置编译出的jar包同目录的“conf”目录下,用于后续调测,例如“/opt/client/conf”。

      例如客户端软件包为“FusionInsight_Cluster_1_Services_Client.tar”,下载路径为主管理节点的“/tmp/FusionInsight-Client”:

      cd /tmp/FusionInsight-Client

      tar -xvf FusionInsight_Cluster_1_Services_Client.tar

      tar -xvf FusionInsight_Cluster_1_Services_ClientConfig.tar

      cd FusionInsight_Cluster_1_Services_ClientConfig

      scp Spark2x/config/* root@客户端节点IP地址:/opt/client/conf

      准备MRS应用开发用户时获取的keytab文件也放置于该目录下,主要配置文件说明如表3所示。

      表3 配置文件

      文件名称

      作用

      carbon.properties

      CarbonData配置文件。

      core-site.xml

      配置HDFS详细参数。

      hdfs-site.xml

      配置HDFS详细参数。

      hbase-site.xml

      配置HBase详细参数。

      hive-site.xml

      配置Hive详细参数。

      jaas-zk.conf

      java认证配置文件。

      log4j-executor.properties

      executor日志配置文件。

      mapred-site.xml

      Hadoop mapreduce配置文件。

      ranger-spark-audit.xml

      ranger审计日志配置文件。

      ranger-spark-security.xml

      ranger权限管理配置文件。

      yarn-site.xml

      配置Yarn详细参数。

      spark-defaults.conf

      配置Spark详细参数。

      spark-env.sh

      Spark环境变量配置文件

      user.keytab

      对于Kerberos安全认证提供用户信息。

      krb5.conf

      Kerberos Server配置信息。

    3. 检查客户端节点网络连接。

      在安装客户端过程中,系统会自动配置客户端节点“hosts”文件,建议检查“/etc/hosts”文件内是否包含集群内节点的主机名信息,如未包含,需要手动复制解压目录下的“hosts”文件中的内容到客户端所在节点的hosts文件中,确保本地机器能与集群各主机在网络上互通。