一.什么是 Dataproc
Dataproc 是一项托管式 Spark 和 Hadoop 服务,借助该服务,您可以充分利用开源数据工具来执行批处理、查询、流式传输和机器学习。Dataproc 自动化功能可帮助您快速创建集群并轻松管理,以及在不需要集群时将其关闭以节省费用。由于在管理上花费的时间和费用更少,您可以将精力集中在作业和数据上。
二.Dataproc场景和优势
与传统的本地产品和竞争对手的云服务相比,Dataproc 对于拥有三到上百个节点的集群具有许多独特优势:
- 费用低廉 – Dataproc 的价格低廉(低于您使用的其他 Cloud Platform 资源),您每小时只需为集群中的每个虚拟 CPU 支付 1 美分。除了价格低廉之外,Dataproc 集群还可以包含具有较低计算价格的抢占式实例,从而进一步降低您的费用。Dataproc 不会将您的使用量四舍五入为最接近的小时数,而是按照您的真实使用情况逐秒结算,结算周期低至一分钟。
- 超高速 – 在不使用 Dataproc 的情况下,可能需要 5 到 30 分钟才能在本地或通过 IaaS 提供商创建 Spark 和 Hadoop 集群。相比之下,Dataproc 集群可以快速启动、调节和关闭,平均每个操作需要 90 秒或更少的时间。这意味着,您可以花更少的时间来等待集群响应,并投入更多的时间来实际处理数据。
- 集成 — Dataproc 还内置了与其他 Google Cloud Platform 服务(例如 BigQuery、Cloud Storage、Cloud Bigtable、Cloud Logging 和 Cloud Monitoring)的集成,因此,您拥有的不仅仅是一个 Spark 或 Hadoop 集群,而是一个完整的数据平台。例如,您可以使用 Dataproc 轻松将数 TB 的原始日志数据直接 ETL 到 BigQuery 中,以便进行业务报告。
- 托管 – 无需借助管理员或特殊软件提供的帮助,即可使用 Spark 和 Hadoop 集群。您可以通过 Google Cloud Console、Cloud SDK 或 Dataproc REST API 轻松地与集群以及 Spark 或 Hadoop 作业进行交互。当您使用完一个集群时,只需将它关闭,这样您就不会为闲置的集群付费。您不必担心数据丢失,因为 Dataproc 已与 Cloud Storage、BigQuery 和 Cloud Bigtable 集成。
- 简单而熟悉 – 您无需学习新的工具或 API 即可使用 Dataproc,因此可以轻松地将现有项目迁移到 Dataproc(无需重新进行开发)。Spark、Hadoop、Pig 和 Hive 会频繁更新,因此您可以更快地提高工作效率。
三.Dataproc 包含哪些组件
Dataproc 支持的开源组件(Hadoop、Spark、Hive 和 Pig)和 Google Cloud Platform 连接器
创建集群时,标准 Apache Hadoop 生态系统组件会自动安装在集群中(请参阅 Dataproc 版本列表)。 您可以在创建集群时在集群上安装称为“可选组件”的其他组件。 向集群添加可选组件类似于通过使用初始化操作添加组件,但具有以下优势:
- 缩短了集群启动时间
- 经测试,可以与特定的 Dataproc 版本兼容
- 使用集群参数,而不是初始化操作脚本
- 可选组件与其他 Dataproc 组件集成在一起。 例如,当集群安装了 Anaconda 和 Zeppelin 时,Zeppelin 将使用 Anaconda 的 Python 解释器和库
可选组件 | gcloud 命令和 API 请求中的 COMPONENT_NAME | 映像版本 | 发布阶段 |
Anaconda | ANACONDA | 1.3 及更高版本 (在 2.0 及更高版本中不可用) | GA |
Docker | DOCKER | 1.5 及更高版本 | GA |
Druid | DRUID | 1.3 及更高版本 | Alpha |
Flink | FLINK | 1.5 及更高版本 | GA |
HBase | HBASE | 1.5 及更高版本 | Beta 版 |
Hive WebHCat | HIVE_WEBHCAT | 1.3 及更高版本 | GA |
Jupyter 笔记本 | JUPYTER | 1.3 及更高版本 | GA |
Presto | PRESTO | 1.3 及更高版本 | GA |
Ranger | RANGER | 1.3 及更高版本 | GA |
Solr | SOLR | 1.3 及更高版本 | GA |
Zeppelin 笔记本 | ZEPPELIN | 1.3 及更高版本 | GA |
ZooKeeper | ZOOKEEPER | 1.0 及更高版本 | GA |
如需了解如何连接到集群上运行的组件 Web 界面,请参阅集群 Web 界面。 另请参阅 Dataproc 组件网关,它可使您连接到 Dataproc 核心和可选组件的 Web 界面,包括 YARN、HDFS、Jupyter 和 Zeppelin 界面,而无需使用 SSH 隧道或修改防火墙规则来允许入站流量
四.操作准备
1.需要有谷歌账号登陆
https://console.cloud.google.com 官网
2.查看IAM和管理权限有project权限,分配有Dataproc管理权限
3. 创建使用另一个项目中的 VPC 网络的集群
4. 通过 SSH 连接到 Dataproc 集群
五.操作流程
- 创建 Dataproc 集群 (控制台和gcloud)创建
默认是标标准集群
自动扩缩需要创建政策
Dataproc 增强的灵活模式 查看地址:
https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/flex?hl=zh-cn
发布版本详情查看地址:
组件自定义选装
设置节点(根据业务选择vm配置)
创建自动部署服务和托管安装
集群界面
查看服务器配置文件和路径
登陆master主节点需要有密钥验证
默认安装在/etc/路径下 (zookeeper,Hadoop,hive,mysql,hbase)
- 使用gcloud 命令行创建 ,用页面cloud shell 登录
gcloud dataproc clusters create test001 –enable-component-gateway –region us-central1 –zone us-central1-c –master-machine-type n1-standard-4 –master-boot-disk-size 500 –num-workers 2 –worker-machine-type n1-standard-4 –worker-boot-disk-size 500 –image-version 1.5-ubuntu18 –optional-components ZOOKEEPER,HBASE,FLINK –project mec-test-344202
命令详解:create test001 创建集群名称
–enable-component-gateway 开启web界面网关
–region 区域
–zone 区域节点
–master-machine-type 主节点vm配置
–num-workers 2 工作节点2个
–image-version 系统版本映像
–optional-components 安装组件
–project 部署项目名称
创建集群
- 创建自定义集群操作
添加属性键值查看文档地址:
https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/cluster-properties
初始化组件
初始化组件地址:
https://github.com/GoogleCloudDataproc/initialization-actions
所有组件安装在/etc/目录下
添加work节点修改配置
- 用gcloud 命令自定义创建集群
gcloud dataproc clusters create test02 –enable-component-gateway –bucket wanggaoli –region us-central1 –subnet default –zone us-central1-f –master-machine-type n1-standard-4 –master-boot-disk-size 500 –num-workers 2 –worker-machine-type n1-standard-4 –worker-boot-disk-size 500 –image-version 1.5-ubuntu18 –optional-components HIVE_WEBHCAT,ZOOKEEPER,HBASE,FLINK –initialization-actions ‘gs://hadoop-hive/hive-01/initialization-actions-master/docker/docker.sh’,’gs://hadoop-hive/hive-01/initialization-actions-master/datalab/datalab.sh’,’gs://hadoop-hive/hive-01/initialization-actions-master/kafka/kafka.sh’,’gs://hadoop-hive/hive-01/initialization-actions-master/hue/hue.sh’ –project mec-test-344202
五.补充问题:访问web界面需要打通ssh 隧道
创建使用本地端口 1080 的 SSH 隧道
$
gcloud compute ssh test02-m \
--project=mec-test-344202 \
--zone=us-central1-f -- -D 1080 -N
运行 Chrome 并通过代理连接
$
/usr/bin/google-chrome \
--proxy-server="socks5://localhost:1080" \
--user-data-dir="/tmp/test02-m" http://test02-m:8088
查看官方文档:
https://cloud.google.com/dataproc/docs/concepts/accessing/cluster-web-interfaces?hl=zh-cn#create_an_ssh_tunnel
创建集群需提前规划使用初始化组件,组件通过脚本执行自动安装
单节点不支持节点扩展