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

使用Spark执行Hudi样例程序开发思路

场景说明

本章节介绍如何使用Spark操作Hudi执行插入数据、查询数据、更新数据、增量查询、特定时间点查询、删除数据等操作。

详细代码请参考样例代码。

打包项目

  1. 将user.keytab、krb5.conf 两个文件上传客户端所在服务器上。
  1. 通过IDEA自带的Maven工具,打包项目,生成jar包。具体操作请参考在Linux环境中调测Spark应用
    • 编译打包前,样例代码中的user.keytab、krb5.conf文件路径需要修改为该文件所在客户端服务器的实际路径。
    • 运行Python样例代码无需通过Maven打包,只需要上传user.keytab、krb5.conf 文件到客户端所在服务器上。
  2. 将打包生成的jar包上传到Spark客户端所在服务器的任意目录(例如“ /opt/example/” )下。

运行任务

  1. 登录Spark客户端节点,执行如下命令:

    source 客户端安装目录/bigdata_env

    source 客户端安装目录/Hudi/component_env

    kinit Hudi开发用户

  2. 编译构建样例代码后可以使用spark-submit提交命令,执行命令后会依次执行写入、更新、查询、删除等操作:
    • 运行Java样例程序:

      spark-submit --keytab <user_keytab_path> --principal=<principal_name> --class com.huawei.bigdata.hudi.examples.HoodieWriteClientExample /opt/example/hudi-java-security-examples-1.0.jar hdfs://hacluster/tmp/example/hoodie_java hoodie_java

      其中:“ <user_keytab_path> ”为认证文件路径,“<principal_name>”为认证用户名,“/opt/example/hudi-java-examples-1.0.jar”为jar包路径,“hdfs://hacluster/tmp/example/hoodie_java”为Hudi表的存储路径,“ hoodie_java”为Hudi表的表名。

    • 运行Scala样例程序:

      spark-submit --keytab <user_keytab_path> --principal=<principal_name> --class com.huawei.bigdata.hudi.examples.HoodieDataSourceExample /opt/example/hudi-scala-security-examples-1.0.jar hdfs://hacluster/tmp/example/hoodie_scala hoodie_scala

      其中:“/opt/example/hudi-scala-examples-1.0.jar”为jar包路径,“ <user_keytab_path> ”为认证文件路径,“<principal_name>”为认证用户名,“hdfs://hacluster/tmp/example/hoodie_scala”为Hudi表的存储路径,“ hoodie_Scala”为Hudi表的表名。

    • 运行Python样例程序:

      spark-submit /opt/example/HudiPythonExample.py hdfs://hacluster/tmp/huditest/example/python hudi_trips_cow

      其中:“hdfs://hacluster/tmp/huditest/example/python”为Hudi表的存储路径,“ hudi_trips_cow”为Hudi表的表名。