Cloud Storage 连接器

Cloud Storage 连接器是一个开源 Java 库,可让您直接针对 Cloud Storage 中的数据运行 Apache HadoopApache Spark 作业;与选择 Hadoop 分布式文件系统 (HDFS) 相比,Cloud Storage 连接器具有多项优势。

Cloud Storage 连接器的优点

  • 直接数据访问 - 将数据存储到 Cloud Storage 中并直接访问。您无需先将其转移到 HDFS。
  • HDFS 兼容性 - 您可以使用 gs:// 前缀取代 hdfs:// 来轻松访问 Cloud Storage 中的数据。
  • 互操作性 - 通过在 Cloud Storage 中存储数据,可实现 Spark、Hadoop 和 Google 服务之间的无缝互操作性。
  • 数据可访问性-与 HDFS 不同,当您关闭 Hadoop 集群时,您仍然可以访问 Cloud Storage 中的数据。
  • 高数据可用性 - 存储在 Cloud Storage 中的数据具有高可用性并在全球范围内进行复制,同时性能不会出现损耗。
  • 无存储空间管理开销 - 与 HDFS 不同,Cloud Storage 不需要例行维护,例如检查文件系统、升级或回滚到以前版本的文件系统等。
  • 快速启动 - 在 HDFS 中,MapReduce 作业无法在 NameNode 退出安全模式之前启动;此退出安全模式可能需要几秒到数分钟时间,具体取决于数据的大小和状态。借助 Cloud Storage,只要任务节点启动,您就可以立即启动作业,随着时间推移,这样可以显著节省费用。

Dataproc 集群 Cloud Storage 连接器设置

Cloud Storage 连接器默认安装在 /usr/local/share/google/dataproc/lib/ 目录中的所有 Dataproc 集群节点上。

以下部分介绍了在 Dataproc 集群上成功设置连接器的步骤。

服务账号权限

在 Compute Engine 虚拟机内部(包括 Dataproc 集群)中运行连接器时,google.cloud.auth.service.account.enable 属性默认设置为 false,这意味着您无需为连接器手动配置服务帐号;它会从虚拟机元数据服务器获取服务帐号凭据。

非默认连接器版本

集群映像版本页面中列出了安装在 Dataproc 集群上的最新映像中使用的默认 Cloud Storage 连接器版本(请参阅支持的 Dataproc 版本)。如果您的应用依赖于集群上部署的非默认连接器版本,则您必须执行以下操作之一:

  1. 创建带有 --metadata=GCS_CONNECTOR_VERSION=x.y.z 标志的集群,该标志会将集群上运行的应用使用的连接器更新为指定的连接器版本,或者
  2. 将您使用的版本的连接器类和连接器依赖项包含和重新定位到应用的 jar 中。您需要重新定位,以免已部署的连接器版本与 Dataproc 集群上安装的默认连接器版本之间发生冲突(请参阅 Maven 依赖项重定位示例)。

非 Dataproc 集群

  1. 下载连接器。

    如需为 Hadoop 下载 Cloud Storage 连接器,请执行以下操作:

  2. 安装连接器。

    请参阅在 GitHub 上安装连接器,以安装、配置和测试 Cloud Storage 连接器。

使用连接器

您可以通过多种方式访问 Cloud Storage 中存储的数据:

资源

Java 版本

Cloud Storage 连接器需要 Java 8。

Apache Maven 依赖关系信息

<dependency>
    <groupId>com.google.cloud.bigdataoss</groupId>
    <artifactId>gcs-connector</artifactId>
    <version>insert "hadoopX-X.X.X" connector version number here</version>
    <scope>provided</scope>
</dependency>

或者对于阴影版本:

<dependency>
    <groupId>com.google.cloud.bigdataoss</groupId>
    <artifactId>gcs-connector</artifactId>
    <version>insert "hadoopX-X.X.X" connector version number here</version>
    <scope>provided</scope>
    <classifier>shaded</classifier>
</dependency>

如需了解详情,请参阅 Cloud Storage 连接器版本说明Javadoc 参考

后续步骤