Cloud Storage 连接器是一个开源 Java 库,可让您直接针对 Cloud Storage 中的数据运行 Apache Hadoop 或 Apache 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
,这意味着您无需手动配置
连接器的服务账号;它会获取服务账号
从虚拟机元数据服务器获取凭据。
非默认连接器版本
最新映像中使用的默认 Cloud Storage 连接器版本 安装在 Dataproc 集群上的列于集群映像中 (请参阅 支持的 Dataproc 版本)。 如果您的应用依赖于非默认连接器 必须执行以下任一操作:
- 使用
--metadata=GCS_CONNECTOR_VERSION=x.y.z
标志创建集群,该标志会将在集群上运行的应用使用的连接器更新为指定的连接器版本;或者 - 包含和 搬迁 将您使用的版本的连接器类和连接器依赖项放入应用 jar 中。 为避免 部署的连接器版本和 Dataproc 集群上安装的连接器版本(请参阅 Maven 依赖项重定位示例)。
非 Dataproc 集群
下载连接器。
如需为 Hadoop 下载 Cloud Storage 连接器,请执行以下操作:
- 位于 Cloud Storage 存储桶中的最新版本(不推荐在生产环境中使用):
- 特定版本
将 Hadoop 与 Cloud Storage 存储桶中的
Cloud Storage 连接器版本
gcs-connector-HADOOP_VERSION-CONNECTOR_VERSION.jar
名称格式:- 示例:
gs://hadoop-lib/gcs/gcs-connector-hadoop2-2.1.1.jar
- 示例:
- 特定版本
从
Apache Maven 制品库
(下载名称中带有
-shaded
后缀的阴影 jar)。
安装连接器。
请参阅在 GitHub 上安装连接器,以安装、配置和测试 Cloud Storage 连接器。
使用连接器
您可以通过多种方式访问 Cloud Storage 中存储的数据:
- 在使用
gs://
前缀的 Spark(或 PySpark)或 Hadoop 应用中。 - Hadoop Shell:
hadoop fs -ls gs://bucket/dir/file
。 - Google Cloud 控制台中的 Cloud Storage 浏览器。
- 使用
gcloud storage cp
或gcloud storage rsync
命令。
资源
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 参考。
后续步骤
- 详细了解 Cloud Storage