Smi*_*ith 5 apache-spark google-hadoop google-cloud-dataproc vitess
我正在执行scala Spark作业,该作业需要使用Java库(youtube / vitess),该库依赖于比DataProc 1.1当前提供的GRPC(1.01),Guava(19.0)和Protobuf(3.0.0)更高的版本。图片。
当在本地运行项目并使用maven进行构建时,将加载这些依赖项的正确版本,作业将无问题运行。将作业提交给DataProc时,首选这些库的DataProc版本,并且该作业将引用无法解析的类函数。
在DataProc上提交Spark作业时,如何确保加载正确版本的依赖项依赖关系的推荐方法是什么?我无法重写此库的组件,以使用DataProc提供的这些软件包的旧版本。
建议的方法是将作业的所有依赖项包含到 uber jar 中(例如,使用Maven Shade插件创建),并重新定位此 uber jar 内的依赖项类,以避免与 Dataproc 提供的库中的类发生冲突。
作为参考,您可以查看如何在Cloud Storage 连接器中完成此操作,该连接器是 Dataproc 分发的一部分。
| 归档时间: |
|
| 查看次数: |
724 次 |
| 最近记录: |