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

在本地Windows环境中编包并运行Spark程序

操作场景

在程序代码完成开发后,您可以在Windows环境中运行应用。使用Scala或Java语言开发的应用程序在IDEA端的运行步骤是一样的。

  • Windows环境中目前只提供通过JDBC访问Spark SQL的程序样例代码的运行,其他样例代码暂不提供。
  • 用户需保证Maven已配置华为镜像站中SDK的Maven镜像仓库,具体可参考配置华为开源镜像仓

操作步骤

  1. 获取样例代码。

    下载样例工程的Maven工程源码和配置文件,请参见获取代码样例工程

    将样例代码导入IDEA中。

  2. 获取配置文件。

    1. 从集群的客户端中获取文件。在“$SPARK_HOME/conf”中下载hive-site.xml与spark-defaults.conf文件到本地。
    2. 在集群的FusionInsight Manager页面下载所使用用户的认证文件到本地。

  3. 在HDFS中上传数据。

    1. 在Liunx中新建文本文件data,将如下数据内容保存到data文件中。
      Miranda,32 
      Karlie,23 
      Candice,27
    2. 在HDFS客户端,执行如下命令获取安全认证。

      cd {客户端安装目录}

      kinit {用于认证的业务用户}

    3. 在Linux系统HDFS客户端使用命令hadoop fs -mkdir /data(hdfs dfs命令有同样的作用),创建对应目录。
    4. 在Linux系统HDFS客户端使用命令hadoop fs -put data /data,上传数据文件。

  4. 在样例代码中配置相关参数。

    1. 认证用户配置。

      userPrincipal配置为所使用的用户。

      userKeytabPath配置为下载的keytab文件的路径。

      Krb5ConfPath配置为下载的krb5.conf文件的路径。

      域名配置为DEFAULT_REALM,在KerberosUtil类中修改DEFAULT_REALM为集群的域名。

    2. 将securityConfig拼接的字符串中user.principal与user.keytab修改为相应的用户名与路径。注意这里keytab的路径需要使用“/”。

    3. 将加载数据的sql语句改为“LOAD DATA INPATH 'hdfs:/data/data' INTO TABLE CHILD”。

  5. 在程序运行时添加运行参数,分别为hive-site.xml与spark-defaults.conf文件的路径。

  6. 运行程序。