apache-spark - 有没有办法在 AWS 胶水上使用 Apache Hudi?
问题描述
尝试探索 apach hudi 以使用 S3 作为源进行增量加载,然后最终通过 AWS 粘合作业将输出保存到 S3 中的不同位置。
有什么博客/文章可以作为起点提供帮助吗?
解决方案
还有另一种可能的方法(根据罗伯特的回答),将自定义罐子包含到胶水作业中。然后这些将被加载到您的胶水作业中,并可以在任何其他 hadoop/spark 环境中使用。
实现此方法所需的步骤如下(至少这些适用于我的 pyspark 工作,如果您发现一些信息没有用尽或遇到一些麻烦,请纠正我,我会更新我的答案):
注 1:以下是批量写入,未针对 hudi 流进行测试
注 2:胶水作业类型:Spark,胶水版本:2.0,ETL 语言:python
- 获取 hudi 所需的所有相应 jar 并将它们放入 S3:
- hudi-spark-bundle_2.11
- httpclient-4.5.9
- 火花avro_2.11
- 创建粘合作业时(见注 2),指定:
- 依赖 jars 路径= 从点号开始的 jar 的逗号分隔路径。1(例如 s3://your-bucket/some_prefix/hudi-spark-bundle...jar,s3://your-bucket/some_prefix/http...jar,s3://your-bucket/some_prefix/spark -avro ....罐子)
- 根据hudi 文档中提供的文档创建您的脚本并尽情享受吧!
最后一点:确保为您的胶水作业分配适当的权限
推荐阅读
- php - Postgres & PHP- 将 UTC 时间戳转换为本地时间
- java - 如何在可执行的 java shebang 文件中指定类路径
- mobile - 推荐系统模型 (DNN) 可以在 TensorFlow Lite 中转换以进行移动设备推理吗?
- sql - 红移将十进制转换为十进制
- c# - C# string.split on readline 不产生预期的数组长度
- r - {tidyr} 扩展函数删除行的问题
- python - 读取文件最后一行的函数?
- arrays - 使用赛普拉斯存储元素数组
- flutter - 如何为 macos 桌面应用启用 Flutter 上网权限?
- javascript - 在 NodeJS 中异步递增计数器