You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Apache Livy提交Hudi Delta Streamer作业时如何传递--props等参数

通过Livy API提交Hudi Delta Streamer作业的配置方法

你可以直接调用Livy的批量作业提交接口POST <livy服务地址>/batches,把原spark-submit的参数映射到Livy请求体的对应字段即可,核心映射规则如下:

  • spark-submit的--class参数对应请求体的className字段
  • spark-submit的--master、--deploy-mode、--conf、--packages等Spark配置项,统一放到conf字段中
  • Hudi Delta Streamer自身的业务参数(包括--source-class、--props等)统一按顺序放到args数组中,参数名和参数值要拆分为两个独立的数组元素

完整请求示例

{
  "className": "org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer",
  "conf": {
    "spark.master": "yarn",
    "spark.submit.deployMode": "cluster",
    "spark.jars.packages": "org.apache.hudi:hudi-utilities-bundle_2.11:0.5.3,org.apache.spark:spark-avro_2.11:2.4.4",
    "spark.sql.shuffle.partitions": "100",
    "spark.driver.extraClassPath": "$HADOOP_CONF_DIR"
  },
  "args": [
    "--table-type", "MERGE_ON_READ",
    "--source-class", "org.apache.hudi.utilities.sources.JsonKafkaSource",
    "--source-ordering-field", "tst",
    "--target-base-path", "/user/hive/warehouse/stock_ticks_mor",
    "--target-table", "test",
    "--props", "/var/demo/config/kafka-source.properties",
    "--schemaprovider-class", "org.apache.hudi.utilities.schema.FilebasedSchemaProvider",
    "--continuous"
  ]
}

发送请求时需要将请求头的Content-Type设置为application/json。

关键注意事项

  • 参数拆分规则:不要把参数名和参数值拼接成同一个字符串,比如["--source-class org.apache.hudi.utilities.sources.JsonKafkaSource"]这种写法是错误的,必须拆成两个独立元素。
  • --props路径可用性:你填写的配置文件路径必须保证Livy服务节点、YARN集群所有NodeManager节点都能正常访问,推荐将配置文件上传到HDFS,填写HDFS协议路径(例如hdfs:///path/to/kafka-source.properties),避免本地路径只存在于单个节点导致作业启动失败。
  • 依赖可用性:如果集群无法访问公共Maven仓库,可以提前把hudi-utilities-bundle、spark-avro的jar包上传到HDFS,用jars字段指定HDFS路径,替换spark.jars.packages配置。

内容的提问来源于stack exchange,提问作者codek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:36:05