Dataproc 常见问题解答

常规

什么是 Dataproc?

Dataproc 是一项快速、易用且费用低廉的全托管式服务,该服务可让您在 Google Cloud Platform 上运行 Apache Spark 和 Apache Hadoop 生态系统。Cloud Dataproc 可迅速预配大型或小型集群,支持许多常见的作业类型,并与其他 Google Cloud Platform 服务(如 Cloud Storage 和 Cloud Logging)进行集成,因此可以帮助您降低总拥有成本。

Dataproc 与传统 Hadoop 集群有何区别?

Dataproc 是一项托管的 Spark/Hadoop 服务,旨在使 Spark 和 Hadoop 更加易用、快速和强大。在传统的 Hadoop 部署中(即使是基于云的部署),您必须在集群上安装,配置,管理和编排工作。而 Cloud Dataproc 能够为您处理集群的创建、管理、监控和作业编排任务。

如何使用 Dataproc?

Dataproc 集群的使用方式有很多,具体取决于您的需求和能力。您可以使用基于浏览器的 Google Cloud 控制台与 Dataproc 进行交互。或者,考虑到 Dataproc 已与 Google Cloud CLI 集成,您可以使用 Google Cloud CLI。如需以编程方式访问集群,请使用 Dataproc REST API。您也可以与集群中的主实例或工作器节点建立 SSH 连接。

Dataproc 的工作原理是什么?

Dataproc 是一个托管的框架,它可在 Google Cloud Platform 上运行,并且集成了几种常用的工具来处理数据,这些工具包括 Apache Hadoop、Spark、Hive 和 Pig。Dataproc 拥有一套控制和集成机制,可以协调集群的生命周期和管理任务,让集群顺畅运行。Dataproc 与 YARN 应用管理器进行了集成,使您可以更轻松地管理和使用集群。

我可以运行哪些类型的作业?

Dataproc 为大多数常见的作业类型(包括 Spark、Spark SQL、PySpark、MapReduce、Hive 和 Pig 作业)提供了开箱即用的端到端支持。

Dataproc 对 Spark 使用哪种集群管理器?

Dataproc 在 YARN 上运行 Spark

Dataproc 中的组件多久更新一次?

当底层组件(Hadoop、Spark、Hive、Pig)出现主要版本更新时,Dataproc 即会更新。每个 Dataproc 主要版本支持每个组件的特定版本(请参阅支持的 Dataproc 版本)。

Dataproc 是否已与其他 Google Cloud Platform 产品集成?

是的,Dataproc 已通过原生集成和自动集成的方式与 Compute Engine、Cloud Storage、Bigtable、BigQuery、Logging 和 Cloud Monitoring 进行了集成。此外,Dataproc 还集成到了可与 Cloud Platform 交互的各种工具中,包括 gcloud CLIGoogle Cloud 控制台

我可以运行永久性集群吗?

启动后,Dataproc 集群将持续运行,直至关闭。您可以根据需求在任意时长内运行 Dataproc 集群。

集群管理

我可以同时运行多个集群吗?

是的,您可以同时为每个项目运行多个 Dataproc 集群。 默认情况下,所有项目都受到 Google Cloud 资源配额限制。 您可以轻松检查您的配额使用情况请求增加配额。如需了解详情,请参阅 Dataproc 资源配额

如何创建或销毁集群?

您可以通过多种方式创建和销毁集群。Google Cloud 控制台中的 Dataproc 部分让您可以轻松地使用浏览器管理集群。您也可以通过 gcloud CLI 使用命令行管理集群。对于更复杂或更高级的用例,您可以使用 Cloud Dataproc REST API 以编程方式管理集群。

我可以在创建集群时应用自定义设置吗?

Dataproc 支持在创建集群时执行初始化操作。这些初始化操作可以是脚本或可执行文件,在预配集群以自定义设置、安装应用或对集群进行其他修改时,Dataproc 将运行这些脚本或可执行文件。

我如何根据需求调整集群大小?

与调整集群大小有关的决策受多种因素影响,这些因素包括:要执行的工作类型、费用限制、速度要求和资源配额。由于 Dataproc 可以部署到各种机器类型上,因此,您可以根据需求灵活选择所需的资源。

我可以调整集群大小吗?

是的,即使在作业处理过程中,您也可以轻松调整集群大小。您可以通过 Google Cloud 控制台或通过命令行调整集群大小。调整大小的操作可能会增加或减少集群中的工作器数量。添加到集群中的工作器的类型和大小与现有工作器相同。在一般情况下,您可以调整集群大小,但在特殊情况下除外,例如:将工作器数量减少为一个,或将 HDFS 容量减少到低于完成工作所需的数量。

作业和工作流管理

我如何在集群上提交作业?

您可以通过几种方法在 Dataproc 集群上提交作业。最简单的方法是使用 Google Cloud 控制台上的 Dataproc 提交作业页面或 gcloud CLI gcloud dataproc jobs submit 命令。如需了解如何以编程方式提交作业,请参阅 Dataproc API 参考文档

我可以同时运行多个作业吗?

可以,您可以同时在 Dataproc 集群上运行多个作业。Cloud Dataproc 利用资源管理器 (YARN) 和特定于应用的配置(例如使用 Spark 调节规模)来优化集群资源的使用。作业性能将根据集群大小和活动作业数量进行调节。

我可以取消集群上的作业吗?

当然可以。您可以通过 Google Cloud 控制台网页界面或命令行取消作业。Dataproc 利用 YARN 的应用取消功能,在收到请求后停止作业。

我可以在集群上自动运行作业吗?

您可以通过多种机制自动在集群上运行作业。您可以使用 gcloud CLI Google Cloud CLI 或 Dataproc REST API 自动执行集群和作业的管理任务和工作流。

开发

支持哪些开发语言?

您可以使用 Spark/Hadoop 生态系统支持的语言,包括 Java、Scala、Python 和 R。

Dataproc 是否提供 API?

有的,Dataproc 具有一组 RESTful API,让您能够以编程方式与集群和作业进行交互。

我可以通过 SSH 连接访问集群吗?

是的,您可以通过 SSH 连接访问集群中的每台机器(主实例或工作器节点)。 您可以通过浏览器或命令行创建 SSH 连接。

我可以访问 Spark/Hadoop 网页界面吗?

是的,您可以在集群内访问 Hadoop 和 Spark 界面(Spark、Hadoop、YARN 界面)。我们建议您使用 SSH 隧道(它将通过 SSH 连接安全转发来自集群的流量),而不是为用户界面打开端口。

我可以在集群上安装或管理软件吗?

是的,与 Hadoop 集群或服务器一样,您可以在 Dataproc 集群上安装和管理软件。

默认复制因子是多少?

由于性能方面的考量以及挂接到 Dataproc 集群的存储设备具备的高可靠性,默认复制因子被设置为 2。

Dataproc 使用的是什么操作系统?

Dataproc 基于 Debian 和 Ubuntu。最新映像基于 Debian 10 Buster 和 Ubuntu 18.04 LTS。

我可以在哪里了解 Hadoop 流式传输?

您可以查看 Apache 项目文档

如何安装 gcloud dataproc 命令?

安装 gcloud CLI 时就会安装标准 gcloud 命令行工具,其中包括 gcloud dataproc 命令。

数据访问和可用性

如何将数据移入和移出集群?

Dataproc 利用 Hadoop 分布式文件系统 (HDFS) 来存储文件。 此外,Dataproc 还会自动安装与 HDFS 兼容的 Google Cloud Storage 连接器,以便与 HDFS 并行使用 Cloud Storage。通过将数据上传/下载到 HDFS 或 Cloud Storage,您可将数据移入或移出集群。

我可以搭配使用 Cloud Storage 和 Dataproc 吗?

是的,Dataproc 集群会自动安装 Cloud Storage 连接器。相比选择传统 HDFS,您在选择 Cloud Storage 时可以获得众多好处,包括数据持久性、可靠性和性能方面的优势。

我可以获得 Cloud Storage 连接器的支持吗?

是的,与 Dataproc 一起使用时,Cloud Storage 连接器与 Dataproc 的支持级别相同(请参阅获取支持)。所有连接器用户都可以使用 Stack Overflow 上的 google-cloud-dataproc 标记获取连接器相关问题和答案。

HDFS 和 Cloud Storage 上数据集的理想文件大小是多少?

为了提升性能,请以较大的文件大小存储数据,例如,文件大小在 256MB-512MB 范围内。

Dataproc 的可靠性如何?

由于 Dataproc 基于可靠且久经考验的 Google Cloud Platform 技术(包括 Compute Engine、Cloud Storage 和 Monitoring),因此具备极高的可用性和可靠性。作为一款我们全面推出的产品,我们在此提供了 Dataproc SLA 供您查阅。

关闭集群时,我的数据会怎样?

集群关闭后,Cloud Storage 中的所有数据会继续保留。之所以要选择 Cloud Storage,而非 HDFS,这正是其中一个原因,这是因为,在 HDFS 中,当关闭集群时,数据会被移除(除非在关闭集群之前将数据转移到某个永久位置)。

日志记录、监控和调试

提供了哪种日志记录和监控功能?

默认情况下,Dataproc 集群与 Monitoring 和 Logging 集成。借助 Monitoring 和 Logging,您可以轻松获取与 Dataproc 集群的运行状况、性能和状态有关的详细信息。应用(YARN、Spark 等)和系统日志均会被转发至 Logging。

如何查看来自 Dataproc 的日志?

您可以通过多种方式查看来自 Dataproc 的日志。您可以访问 Logging,以便在网络浏览器中查看汇总的集群日志。此外,您可以使用命令行 (SSH) 手动查看日志或监控应用输出。最后,您还可以通过 Hadoop 应用网络界面(例如 YARN 网络界面)获取详细信息。

如何监控集群?

您可以通过 Google Cloud 控制台的 Monitoring 或 Cloud Dataproc 部分轻松监控集群。您还可以通过命令行 (SSH) 访问方式或应用(Spark、YARN 等)网络界面来监控集群。

安全性与访问权限

我的数据如何获得保护?

Google Cloud Platform 采用了完善的安全模型,该模型也适用于 Cloud Dataproc。Dataproc 提供了身份验证、授权和加密机制(比如 SSL)来保护数据。在向集群往返传输数据,创建集群或提交作业时,用户可以对数据进行加密。

如何控制 Dataproc 集群的访问权限?

Google Cloud Platform 提供多种身份验证机制,这些机制可与 Dataproc 配合使用。您可以在项目级层向用户授予 Dataproc 集群和作业的访问权限。

结算

Dataproc 如何计费?

Dataproc 按秒计费,费用取决于集群的大小以及集群运行的时长。在计算集群组件的费用时,Dataproc 根据集群中虚拟 CPU (vCPU) 的数量收取固定费用。无论使用的 Compute Engine 资源的机器类型或大小如何,此固定费用都保持不变。

我是否要为其他 Google Cloud 资源付费?

是的,运行 Dataproc 集群时,集群中使用的其他 Google Cloud 资源(例如 Compute Engine 和 Cloud Storage)会产生费用。账单中单独列出了每个收费项目,因此,您可以准确知道您的费用的计算和分配方式。

针对计费,Google 是否设有时间下限或上限?

Google Cloud 的费用按秒计算,而不是按小时计算。目前,Compute Engine 的最低计费增量时间为 1 分钟。因此,Dataproc 的最低计费增量时间同样为 1 分钟。

可用情况

谁可以创建 Dataproc 集群?

我们已全面推出 Dataproc,这意味着,所有 Google Cloud Platform 客户都可以使用。

哪些区域可以使用 Dataproc?

Google Cloud Platform 的所有区域和地区均提供了 Dataproc。