写点什么

新的 Dataproc 可选组件支持 Apache Flink 和 Docker

Roderick Yao

  • 2020-11-03
  • 本文字数:2445 字

    阅读完需:约 8 分钟

新的 Dataproc 可选组件支持 Apache Flink 和 Docker

Google Cloud 的 Dataproc 让您能够以更简便、更经济的方式来基于 Google Cloud 运行原生 Apache Spark 和 Hadoop 集群。在本文中,我们将介绍在 Dataproc 的 Component Exchange 中提供的最新可选组件:Docker 和 Apache Flink。

Dataproc 中的 Docker 容器

Docker 是一种广泛使用的容器技术。由于它现在是 Dataproc 可选组件,Docker 守护进程 (daemon) 现在可被安装到 Dataproc 集群的每个节点。这将使您能够安装容器化应用程序,并且在集群中轻松地与 Hadoop 集群交互。


此外,Docker 对于支持以下这些功能也至关重要:


1.通过 YARN 运行容器


2.可移植 Apache Beam 作业


在 YARN 中运行容器使您能够单独管理您的 YARN 应用程序的依赖性,并且允许您在 YARN 中创建容器化的服务。可移植 Apache Beam 将作业打包到 Docker 容器,并将其提交至 Flink 集群。了解有关 Beam 可移植性的更多信息


除了默认的 Docker registry,还可对 Docker 可选组件进行配置以使用 Google Container Registry。这使您能够使用由您的组织管理的容器镜像。


以下是利用 Docker 可选组件创建 Dataproc 集群的示例:


gcloud beta dataproc clusters create <cluster-name> \  --optional-components=DOCKER \  --image-version=1.5
复制代码


当您运行 Docker 应用程序时,使用 gcplogs 驱动程序,日志将被传至 Cloud Logging。


如果您的应用程序不依赖任何 Hadoop 服务,核实 Kubernetes 和 Google Kubernetes Engine 是否以原生方式运行容器。要了解有关 Dataproc 使用的更多信息,请参阅我们的相关文档

基于 Dataproc 的 Apache Flink

在流分析技术中,Apache Beam 和 Apache Flink 更加出色。Apache Flink 是一个基于有状态计算的分布式处理引擎。Apache Beam 是定义批处理和流处理管道的统一模式。使用 Apache Flink 作为扩展引擎,除了 Google 的 Cloud Dataflow 服务,您还可以在 Dataproc 中运行 Apache Beam 作业。


Flink 以及在 Flink 中运行 Beam 适合大规模连续作业,可提供:


  • 支持批处理和数据流程序的流优先运行环境

  • 同时支持非常高的吞吐量和低事件延迟的运行环境

  • 具有精确单次处理保证的容错

  • 流程序中的自然背压 (back-pressure)

  • 自定义内存管理以实现在内存和核外数据处理算法之间高效、稳健的切换

  • 与 YARN 以及 Apache Hadoop 生态系统的其他组件集成


Google Cloud 的 Dataproc 团队最近宣布 Flink Operator on Kubernetes 现已可用。它允许您在 Kubernetes 中运行 Apache Flink 作业,具有减少平台依赖性和产生更好的硬件效率的优势。


基本 Flink 概念


Flink 集群包括 Flink JobManager 以及一组 Flink TaskManager。与 YARN 之类的其他分布式系统中的类似角色相似,JobManager 的“责任”包括接受作业、管理资源以及监控作业等。TaskManager 负责运行实际任务。


在 Dataproc 中运行 Flink 作业时,我们将 YARN 用作 Flink 的资源管理器。您可以以两种方式运行 Flink 作业:作业集群和会话集群。对于作业集群,YARN 将为作业创建 JobManager 和 TaskManagers,并且将在作业完成时销毁集群。对于会话集群,YARN 将创建 JobManager 和几个 TaskManager。集群可服务多个作业直至被用户关闭。


如何利用 Flink 创建集群


使用以下命令作为开始:


gcloud beta dataproc clusters create <cluster-name> \  --optional-components=FLINK \  --image-version=1.5
复制代码


如何运行 Flink 作业


在带有 Flink 的 Dataproc 集群启动后,您可以使用 Flink 作业集群直接将您的 Flink 作业提交至 YARN。接受作业后,Flink 将在 YARN 中为此作业启动 JobManager 和任务槽。Flink 作业将在 YARN 集群中运行,直至完成。然后,将关闭所创建的 JobManager。作业日志将在常规 YARN 日志中提供。尝试此命令以运行一个字数统计示例:


  HADOOP_CLASSPATH=`hadoop classpath` flink run -m yarn-cluster /usr/lib/flink/examples/batch/WordCount.jar
复制代码


默认情况下,Dataproc 集群将不启动 Flink 会话集群。相反,Dataproc 将创建脚本“/usr/bin/flink-yarn-daemon”,该脚本将启动 Flink 会话。


如果您要在 Dataproc 创建时启动 Flink 会话,使用 metadata 关键词来允许启动:


  gcloud dataproc clusters create <cluster-name> \  --optional-components=FLINK \   --image-version=1.5 \  --metadata flink-start-yarn-session=true
复制代码


如果您要在 Dataproc 创建后启动 Flink 会话,可在主节点运行下列命令:


  $ . /usr/bin/flink-yarn-daemon
复制代码


向该会话集群提交作业。您需要获得 Flink JobManager URL:


  HADOOP_CLASSPATH=`hadoop classpath` flink run -m <JOB_MANAGER_HOSTNAME>:<REST_API_PORT> /usr/lib/flink/examples/batch/WordCount.jar
复制代码


如何运行 Java Beam 作业


运行以 Java 编写的 Apache Beam 作业非常简单。无需额外的配置。只要您将 Beam 作业打包为 JAR 文件,不需要进行任何配置即可在 Flink 中运行 Beam。以下是您可以使用的命令:


 $ mvn package -Pflink-runner$ bin/flink run -c org.apache.beam.examples.WordCount /path/to/your.jar--runner=FlinkRunner --other-parameters
复制代码


如何运行以 Python 编写的 Python Beam 作业


以 Python 编写的 Beam 作业使用不同的执行模式。要基于 Dataproc 在 Flink 中运行它们,您还需要启用 Docker 可选组件。以下是创建集群的示例:


  gcloud dataproc clusters create <cluster-name> \  --optional-components=FLINK,DOCKER
复制代码


您还需要安装 Beam 所必需的 Python 库,例如,apache_beam 和 apache_beam[gcp]。您可以传递一个 Flink 主 URL,让它在会话集群中运行。如果您未传递 URL,需要使用作业集群模式来运行此作业:


  import apache_beam as beamfrom apache_beam.options.pipeline_options import PipelineOptionsoptions = PipelineOptions([  "--runner=FlinkRunner",  "--flink_version=1.9",  "--flink_master=localhost:8081",  "--environment_type=DOCKER"])with beam.Pipeline(options=options) as p:  ...
复制代码


编写 Python 作业后,只需运行它以提交:


  $ python wordcount.py
复制代码


2020-11-03 14:10858

评论

发布
暂无评论
发现更多内容

华为云弹性负载均衡服务,赋能现代企业加速发展

i生活i科技

ELB

一些Web安全漏洞

穿过生命散发芬芳

HTTP 1月月更

架构实战营 - 写出外包学生管理系统的架构文档

huiwen

架构实战营

大数据培训和自学哪个适合零基础

小谷哥

Wallys/QCN9074 WiFi 6E Card OpenWRT, IPQ6010,802.11ax/Support:QUECTEL RM500Q-GL/QCN9074 11ax 4x4 6G M.2

wallysmeng

架构训练营模块三作业

gigifrog

架构训练营

网络拥堵?上网体验差,还不赶紧看看华为云CDN!

i生活i科技

CDN

下载速度慢怎么办?使用华为云CDN,让网速更快更稳

i生活i科技

CDN

如何在15分钟内,度量 DORA 指标?

Apache Devlake

Apache 大数据 开源 研发效能 DOAR

市面上到底有没有免费的云渲染平台?

Renderbus瑞云渲染农场

云渲染 云渲染平台 免费云渲染平台

基于 EventBridge API Destination 构建 SaaS 集成实践方案

阿里巴巴云原生

阿里云 云原生 EventBridge

零基础怎么培训学习前端开发技术

小谷哥

SpringBoot 自动装配原理,一文掌握!

程序员小毕

源码 程序员 面试 springboot 自动装配

性能测试技术笔记(二):如何准备测试环境和数据

老张

性能测试

Java高手速成│实战:应用数据库和GUI开发产品销售管理软件(2)

TiAmo

数据库 Java、 JDBC

云原生技术在离线交付场景中的实践

北京好雨科技有限公司

Kubernetes 云原生交付 离线交付

华为云CDN,多场景网络加速服务,为企业发展强势赋能

i生活i科技

CDN

再快一点?动态内容如何加速

蔡农曰

程序员 互联网

RelativeLayout(相对布局)

梦笔生花

Android Studio padding margin

vivo 实时计算平台建设实践

vivo互联网技术

大数据 flink 实时计算

web前端技术培训后怎么不断提高自己

小谷哥

爱奇艺:基于龙蜥与 Koordinator 在离线混部的实践解析 | 龙蜥技术

阿里巴巴云原生

阿里云 云原生 Koordinator

阿里云 ACK One 多集群管理再升级:GitOps 多集群持续集成,统一报警管理

阿里巴巴云原生

阿里云 云原生 容器服务

阿里巴巴内网Spring Cloud Alibaba 强势来袭,开创微服务的新时代

架构师之道

Java 微服务 架构师

为什么说IO密集型业务,线程数是CPU数的2倍?

Java永远的神

程序员 程序人生 后端 cpu io

2023-01-03:超过5名学生的课。编写一个SQL查询来报告 至少有5个学生 的所有班级,返回结果不限顺序。请问sql语句如何写? +---------+ | class | +-----

福大大架构师每日一题

数据库 sql 福大大

外包学生管理系统详细架构设计文档

Geek_7d539e

云存储生态构建的技术基因和最佳实践

云布道师

阿里云 云存储

创业邦2022中国未来独角兽100强揭晓:总估值超3000亿元,累计融资总额达685亿元;红杉中国、顺为资本成年度最佳捕手

创业邦

下载速度不尽人意,华为云CDN来助力,尽享高速体验!

i生活i科技

CDN

模块四作业

张贺

架构训练营

新的 Dataproc 可选组件支持 Apache Flink 和 Docker_文化 & 方法_InfoQ精选文章