哪个 java google 云库用于 bigquery 和 dataproc 组合?
Which java google cloud library for bigquery and dataproc combo?
我对提交给 google dataproc 的 java spark 应用程序必须使用哪些 google 云 java 库感到有点困惑。
在我的应用程序中,我必须使用不同的 google 云服务。
例如,在 bigquery 文档中,我发现我必须使用
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-bigquery</artifactId>
<version>0.32.0-beta</version>
</dependency>
而对于 google 存储,我必须使用
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
<version>1.14.0</version>
</dependency>
等等其他 google 云服务。
但是如果我在 dataproc 上使用这些库,我会遇到一些问题,比如与 guava 库的冲突问题(参见此处:)。
终于找到了 "Umbrella package"
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud</artifactId>
<version>0.8.0</version>
</dependency>
有了这个包,我就不需要为任何单个 google 云服务使用库了。
所有服务只需一个库,不再有冲突问题。
好的,但是 Umbrella 包的网页 (https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud) 说:
"This package does not have guaranteed stability and may experience
backwards-incompatible changes."
那么,Umbrella 软件包是否与其他 google 云服务的功能保持同步?
Umbrella 包代表了在 dataproc 上使用不同 google 云服务的更便捷方式?
更一般地说:当我想在单个应用程序中使用不同的 google 云服务并避免对不同版本的库(guava、gax 等)的依赖之间发生冲突时,哪种方法最好?
伞包似乎经常更新,但对我来说,这看起来像 trade-off 根据您的需要。对依赖项进行微观管理可以实现更好的控制,但您需要通过手动排除某些库来解决冲突(如您发布的 link 中所示)。使用 BOM/Umbrella 更方便,但图书馆将使用可能暂时过时的受控版本。我只会使用这种更简单的方法,除非你需要一个非常特定版本的库或一个在伞式库中找不到的组合(即你想修复 BigQuery 一个但继续更新其余的)。稳定性警告不影响个别依赖项。
我对提交给 google dataproc 的 java spark 应用程序必须使用哪些 google 云 java 库感到有点困惑。
在我的应用程序中,我必须使用不同的 google 云服务。 例如,在 bigquery 文档中,我发现我必须使用
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-bigquery</artifactId>
<version>0.32.0-beta</version>
</dependency>
而对于 google 存储,我必须使用
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
<version>1.14.0</version>
</dependency>
等等其他 google 云服务。
但是如果我在 dataproc 上使用这些库,我会遇到一些问题,比如与 guava 库的冲突问题(参见此处:
终于找到了 "Umbrella package"
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud</artifactId>
<version>0.8.0</version>
</dependency>
有了这个包,我就不需要为任何单个 google 云服务使用库了。 所有服务只需一个库,不再有冲突问题。
好的,但是 Umbrella 包的网页 (https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud) 说:
"This package does not have guaranteed stability and may experience backwards-incompatible changes."
那么,Umbrella 软件包是否与其他 google 云服务的功能保持同步?
Umbrella 包代表了在 dataproc 上使用不同 google 云服务的更便捷方式?
更一般地说:当我想在单个应用程序中使用不同的 google 云服务并避免对不同版本的库(guava、gax 等)的依赖之间发生冲突时,哪种方法最好?
伞包似乎经常更新,但对我来说,这看起来像 trade-off 根据您的需要。对依赖项进行微观管理可以实现更好的控制,但您需要通过手动排除某些库来解决冲突(如您发布的 link 中所示)。使用 BOM/Umbrella 更方便,但图书馆将使用可能暂时过时的受控版本。我只会使用这种更简单的方法,除非你需要一个非常特定版本的库或一个在伞式库中找不到的组合(即你想修复 BigQuery 一个但继续更新其余的)。稳定性警告不影响个别依赖项。