This is an automated email from the ASF dual-hosted git repository. jincheng pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/flink-web.git
The following commit(s) were added to refs/heads/asf-site by this push: new 5a2e8a1 [FLINK-11561][docs-zh] Translate "Flink Architecture" page into Chinese 5a2e8a1 is described below commit 5a2e8a1dae1c0567dcdef94ed32fe94b87441845 Author: tom_gong <tom_g...@sui.com> AuthorDate: Fri May 10 19:02:13 2019 +0800 [FLINK-11561][docs-zh] Translate "Flink Architecture" page into Chinese This close #214 --- flink-architecture.zh.md | 49 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/flink-architecture.zh.md b/flink-architecture.zh.md index 580ab30..e3935e0 100644 --- a/flink-architecture.zh.md +++ b/flink-architecture.zh.md @@ -16,9 +16,9 @@ title: "Apache Flink 是什么?" </div> <hr/> -Apache Flink is a framework and distributed processing engine for stateful computations over *unbounded and bounded* data streams. Flink has been designed to run in *all common cluster environments*, perform computations at *in-memory speed* and at *any scale*. +Apache Flink 是一个框架和分布式处理引擎,用于在*无边界和有边界*数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。 -Here, we explain important aspects of Flink's architecture. +接下来,我们来介绍一下 Flink 架构中的重要方面。 <!-- <div class="row front-graphic"> @@ -26,40 +26,40 @@ Here, we explain important aspects of Flink's architecture. </div> --> -## Process Unbounded and Bounded Data +## 处理无界和有界数据 -Any kind of data is produced as a stream of events. Credit card transactions, sensor measurements, machine logs, or user interactions on a website or mobile application, all of these data are generated as a stream. +任何类型的数据都可以形成一种事件流。信用卡交易、传感器测量、机器日志、网站或移动应用程序上的用户交互记录,所有这些数据都形成一种流。 -Data can be processed as *unbounded* or *bounded* streams. +数据可以被作为 *无界* 或者 *有界* 流来处理。 -1. **Unbounded streams** have a start but no defined end. They do not terminate and provide data as it is generated. Unbounded streams must be continuously processed, i.e., events must be promptly handled after they have been ingested. It is not possible to wait for all input data to arrive because the input is unbounded and will not be complete at any point in time. Processing unbounded data often requires that events are ingested in a specific order, such as the order in which events o [...] +1. **无界流** 有定义流的开始,但没有定义流的结束。它们会无休止地产生数据。无界流的数据必须持续处理,即数据被摄取后需要立刻处理。我们不能等到所有数据都到达再处理,因为输入是无限的,在任何时候输入都不会完成。处理无界数据通常要求以特定顺序摄取事件,例如事件发生的顺序,以便能够推断结果的完整性。 -2. **Bounded streams** have a defined start and end. Bounded streams can be processed by ingesting all data before performing any computations. Ordered ingestion is not required to process bounded streams because a bounded data set can always be sorted. Processing of bounded streams is also known as batch processing. +2. **有界流** 有定义流的开始,也有定义流的结束。有界流可以在摄取所有数据后再进行计算。有界流所有数据可以被排序,所以并不需要有序摄取。有界流处理通常被称为批处理 <div class="row front-graphic"> <img src="{{ site.baseurl }}/img/bounded-unbounded.png" width="600px" /> </div> -**Apache Flink excels at processing unbounded and bounded data sets.** Precise control of time and state enable Flink's runtime to run any kind of application on unbounded streams. Bounded streams are internally processed by algorithms and data structures that are specifically designed for fixed sized data sets, yielding excellent performance. +**Apache Flink 擅长处理无界和有界数据集** 精确的时间控制和状态化使得 Flink 的运行时(runtime)能够运行任何处理无界流的应用。有界流则由一些专为固定大小数据集特殊设计的算法和数据结构进行内部处理,产生了出色的性能。 -Convince yourself by exploring the [use cases]({{ site.baseurl }}/usecases.html) that have been built on top of Flink. +通过探索 Flink 之上构建的 [用例]({{ site.baseurl }}/zh/usecases.html) 来加深理解。 -## Deploy Applications Anywhere +## 部署应用到任意地方 -Apache Flink is a distributed system and requires compute resources in order to execute applications. Flink integrates with all common cluster resource managers such as [Hadoop YARN](https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html), [Apache Mesos](https://mesos.apache.org), and [Kubernetes](https://kubernetes.io/) but can also be setup to run as a stand-alone cluster. +Apache Flink 是一个分布式系统,它需要计算资源来执行应用程序。Flink 集成了所有常见的集群资源管理器,例如 [Hadoop YARN](https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html)、 [Apache Mesos](https://mesos.apache.org) 和 [Kubernetes](https://kubernetes.io/),但同时也可以作为独立集群运行。 -Flink is designed to work well each of the previously listed resource managers. This is achieved by resource-manager-specific deployment modes that allow Flink to interact with each resource manager in its idiomatic way. +Flink 被设计为能够很好地工作在上述每个资源管理器中,这是通过资源管理器特定(resource-manager-specific)的部署模式实现的。Flink 可以采用与当前资源管理器相适应的方式进行交互。 -When deploying a Flink application, Flink automatically identifies the required resources based on the application's configured parallelism and requests them from the resource manager. In case of a failure, Flink replaces the failed container by requesting new resources. All communication to submit or control an application happens via REST calls. This eases the integration of Flink in many environments. +部署 Flink 应用程序时,Flink 会根据应用程序配置的并行性自动标识所需的资源,并从资源管理器请求这些资源。在发生故障的情况下,Flink 通过请求新资源来替换发生故障的容器。提交或控制应用程序的所有通信都是通过 REST 调用进行的,这可以简化 Flink 与各种环境中的集成。 <!-- Add this section once library deployment mode is supported. --> <!-- -Flink features two deployment modes for applications, the *framework mode* and the *library mode*. +Flink 提供了两种应用程序部署模式,即 *框架模式* 和 *库模式* -* In the **framework deployment mode**, a client submits a Flink application against a running Flink service that takes care of executing the application. This is the common deployment model for most data processing frameworks, query engines, or database systems. +* 在 **框架部署模式** 中,客户端将 Flink 应用程序提交到一个运行中的 Flink 服务中,由该服务负责执行提交的应用程序。这是大多数数据处理框架、查询引擎或数据库系统的通用部署模型。 -* In the **library deployment mode**, a Flink application is packaged together with the Flink master executables into a (Docker) image. Another job-independent image contains the Flink worker executables. When a container is started from the job image, the Flink master process is started and the embedded application is automatically loaded. Containers started from the worker image, bootstrap Flink worker processes which automatically connect to the master process. A container manager suc [...] +* 在 **库部署模式中**,Flink 应用程序与 Flink 主可执行程序一起打包成 (Docker) 映像。另一个独立于作业的映像包含可执行的 Flink 工作程序。当从作业映像启动容器时,将启动 Flink 主进程并自动加载嵌入的应用程序。从工作镜像启动的容器,引导 Flink 工作进程自动连接到主进程。容器管理器(比如 Kubernetes)监控正在运行的容器并自动重启失败的容器。在这种模式下,你不需要在集群中安装和维护 Flink 服务。只需将 Flink 作为库打包到应用程序中。这种模型在部署微服务时非常流行。 <div class="row front-graphic"> <img src="{{ site.baseurl }}/img/deployment-modes.png" width="600px" /> @@ -67,20 +67,19 @@ Flink features two deployment modes for applications, the *framework mode* and t --> -## Run Applications at any Scale +## 运行任意规模应用 -Flink is designed to run stateful streaming applications at any scale. Applications are parallelized into possibly thousands of tasks that are distributed and concurrently executed in a cluster. Therefore, an application can leverage virtually unlimited amounts of CPUs, main memory, disk and network IO. Moreover, Flink easily maintains very large application state. Its asynchronous and incremental checkpointing algorithm ensures minimal impact on processing latencies while guaranteeing e [...] +Flink 旨在任意规模上运行有状态流式应用。因此,应用程序被并行化为可能数千个任务,这些任务分布在集群中并发执行。所以应用程序能够充分利用无尽的 CPU、内存、磁盘和网络 IO。而且 Flink 很容易维护非常大的应用程序状态。其异步和增量的检查点算法对处理延迟产生最小的影响,同时保证精确一次状态的一致性。 -[Users reported impressive scalability numbers]({{ site.baseurl }}/poweredby.html) for Flink applications running in their production environments, such as +[Flink 用户报告了其生产环境中一些令人印象深刻的扩展性数字]({{ site.baseurl }}/zh/poweredby.html) -* applications processing **multiple trillions of events per day**, -* applications maintaining **multiple terabytes of state**, and -* applications **running on thousands of cores**. +* 处理**每天处理数万亿的事件**, +* 应用维护**几TB大小的状态**, 和 +* 应用**在数千个内核上运行**。 -## Leverage In-Memory Performance - -Stateful Flink applications are optimized for local state access. Task state is always maintained in memory or, if the state size exceeds the available memory, in access-efficient on-disk data structures. Hence, tasks perform all computations by accessing local, often in-memory, state yielding very low processing latencies. Flink guarantees exactly-once state consistency in case of failures by periodically and asynchronously checkpointing the local state to durable storage. +## 利用内存性能 +有状态的 Flink 程序针对本地状态访问进行了优化。任务的状态始终保留在内存中,如果状态大小超过可用内存,则会保存在能高效访问的磁盘数据结构中。任务通过访问本地(通常在内存中)状态来进行所有的计算,从而产生非常低的处理延迟。Flink 通过定期和异步地对本地状态进行持久化存储来保证故障场景下精确一次的状态一致性。 <div class="row front-graphic"> <img src="{{ site.baseurl }}/img/local-state.png" width="600px" /> </div>