以下是几位应征Learning Spark(《Spark快速大数据分析》)一书翻译的译者的几段译文对“目标读者”一节第一段的翻译。假设每位译者都只翻译了这一段,通过比较你会选择哪一位呢?

【原文】 This book targets data scientists and engineers. We chose these two groups because they have the most to gain from using Spark to expand the scope of problems they can solve. Spark’s rich collection of data-focused libraries (like MLlib) makes it easy for data scientists to go beyond problems that fit on a single machine while using their statistical background. Engineers, meanwhile, will learn how to write general purpose distributed programs in Spark and operate production applications. Engineers and data scientists will both learn different details from this book, but will both be able to apply Spark to solve large distributed problems in their respective fields.

【译者一】本书的目标读者是数据科学家和工程师。我们之所以选择这两类读者是因为他们能从使用Spark来扩展他们能解决的问题域中受益最多。Spark有一组丰富的聚焦数据的库(如MLlib),能让数据科学家在利用他们的统计学背景的同时,容易解决超出单机能力的问题。同时,工程师将从本书中学到如何编写通用的Spark分布式程序和运维生产应用。数据科学家和工程师将从本书中学到不同的细节,但都将能够在他们各自的领域应用Spark来解决大型的分布式问题。

【译者二】本书的目标读者是数据科学家和工程师们。我们之所以选择这两类人员,是因为他们使用Spark能获得最大的益处,来扩展他们能解决问题的范畴。Spark丰富的数据程序依赖库(比如MLlib),使得数据科学家能使用他们的统计学背景,很容易地突破原本只适合单机解决的问题。同时对于工程师来说,可以学到如何在Spark中编写一般的分布式程序和操作生产环境中的应用。工程师和数据科学家可以从本书中学到不同的细节,但同时都能够将Spark应用到他们各自的领域,来解决大型的分布式问题。

【译者三】本书主要面向数据科学家和工程师。之所以选择这两类受众是因为使用Spark能够最大限度地提升他们解决问题的范围。Spark丰富的数据处理库集合(如MLlib)能够使数据科学家轻松地以其原有的统计学背景知识来解决单节点所无法解决的问题。于此同时,工程师们能够使用Spark写出通用的分布式程序并投入生产应用。工程师和数据科学家都能从此书中学习到不同的细节知识,并且都能使用Spark在其各自领域解决大型分布式问题。

【译者四】本书的目标读者是数据科学家和工程师。我们选择这样两个群体的原因在于他们能够利用Spark去解决一些他们可能会遇到但是没有办法解决的问题。Spark提供功能丰富的数据操作库(例如MLlib),可以帮助数据科学家利用他们自己的统计学背景知识,研究数据集大小远远超过单机所能处理极限的数据问题。与此同时,工程师们则可以从本书中学习利用Spark编写通用的分布式程序并运营这些应用。工程师和数据科学家都能从本书中学到各自需要的具体技能的同时,获得在各自领域中利用Spark解决大型分布式问题的能力。

【译者五】本书的目标读者是数据科学家和工程师。之所以选择这两个群体,是因为他们能够使用Spark解决原先无法解决的问题,而且从中获益最大。Spark有着丰富的面向数据的库(如MLlib),让数据科学家能轻松面对原先单机无法处理的问题,还能利用他们的统计学背景。而工程师则可以利用Spark写出通用的分布式程序,并且运维产品级应用。这本书可以让工程师和数据科学家各得其所,各取所需,同时运用Spark解决各自领域的大型分布式问题。


2015-3-27 13:29 再增补几段五位译者对技术内容的翻译。

【原文】Spark Runtime Architecture

Before we dive into the specifics of running Spark on a cluster, it’s helpful to understand the architecture of Spark in distributed mode (illustrated in Figure 7-1).

Figure 7-1. The components of a distributed Spark application

In distributed mode, Spark uses a master/slave architecture with one central coordinator and many distributed workers. The central coordinator is called the driver. The driver communicates with a potentially large number of distributed workers called executors. The driver runs in its own Java process and each executor is a separate Java process. A driver and its executors are together termed a Spark application.

A Spark application is launched on a set of machines using an external service called a cluster manager. As noted, Spark is packaged with a built-in cluster manager called the Standalone cluster manager. Spark also works with Hadoop YARN and Apache Mesos, two popular open source cluster managers.

【译者一】Spark运行时架构

理解分布式模式下Spark的架构有助于深入在一个集群中运行Spark的细节。

在分布式模式下,Spark使用的是主-从(master-slave)架构,由一个居中的协调者和许多工作者组成。这个居中的协调者称为driver。driver和可能是大量的称为executor的分布式工作者通信。driver运行在自己的Java进程中,而每一个executor是一个单独的Java进程。一个driver和它的executor一起称为一个Spark应用。

一个Spark应用通过一个称为集群管理器的外部服务在一组机器上被启动。Spark自带了一个内置集群管理器,称为Standalone集群管理器。Spark也可以和Hadoop YARN以及Apache Mesos这两个流行的开源集群管理器搭配工作。

【译者二】Spark运行时架构

在深入讲解如何运行Spark集群的细节之前,理解Spark集群模式的架构会非常有帮助。

在集群模式下,Spark使用master-slave的架构,它由一个中心协调者和许多分布式的worker组成。这个中心协调者被称为驱动程序(driver)。驱动程序和大量分布式的worker进行通信,这些worker则被称为执行器(executor)。驱动程序运行在自己的java进程中,而每一个执行器也都是独立的java进程。一个驱动程序和它的多个执行器共同组成了一个Spark应用。

一个Spark应用是由一个外部的服务(叫做集群管理器),在一组服务器上被启动起来。Spark有一个自带的集群管理器,叫做独立(standalone)集群管理器。同时,Spark也能在另两个流行的开源集群管理器Hadoop Yarn和Apache Mesos上运行。

【译者三】Spark运行时架构

在深入到Spark集群模式运行的细节之前,首先了解一下Spark分布式架构是非常有帮助的。

在分布式模式下,Spark使用一个中心调度器和多个工作节点这样的主-从架构。中心调度器被称之为驱动节点(driver)。驱动节点与大量的分布式工作节点进行通信,这些分布式的工作节点被称之为执行器(executor)。驱动节点在其自身的Java进程内运行,每一个执行器也是一个个独立的Java进程。驱动节点和所有的执行器共同构成了Spark的应用程序。

一个Spark应用程序由一个被称之为集群管理器的外部服务所启动起来。Spark在打包时已经内置了称之为Standalone的集群管理器。同时Spark也可以在Hadoop YARN和Apache Mesos这两个开源的集群管理器上工作。

【译者四】Spark运行环境架构

在我们深入探讨如何在集群上运行spark之前,我们先了解一下Spark在分布式环境中的架构,这对我们理解在集群上运行spark的具体细节是很有帮助的。

在分布式环境下,Spark集群采用的是主从结构。在一个Spark集群中,有一个节点负责居中协调,调度各个分布式从节点。这个中央协调节点被称为驱动者(Driver),与之对应的工作节点被称为执行者(executor)。驱动者可以和大量的执行者进行通讯,它们也都作为独立的java进程运行。驱动者和所有的执行者一起,被称为一个Spark应用。

Spark应用在一个外部集群管理器上被分发到集群中的机器上。通过Spark内建的集群管理器运行的方法被称为Standalone模式。Spark也能运行在两大开源集群管理器YARN和Mesos上。

【译者五】Spark运行时架构

深入探讨在集群上运行Spark之前,有必要先理解分布式模式下Spark的架构(图7-1)。

图7-1 分布式Spark应用程序的构成

在分布式模式下,Spark使用主/从架构,包括一个中央协调节点和多个分布式工作节点。这个中央协调节点叫做驱动节点(driver),而可能会有很多的分布式工作节点叫做执行节点(executor),驱动节点与执行节点之间保持通信。驱动节点运行于自已的Java进程内,每个执行节点也是独立的Java进程。驱动节点及其所有执行节点共同构成Spark应用程序。

Spark应用程序运行在一组机器上,并且要使用一个叫做集群管理器(cluster manager)的外部服务。前面提到过,Spark自身带有一个名为Standalone的内置集群管理器。除此之外,Spark应用程序也可以使用Hadoop YARN和Apache Mesos这两个流行的开源集群管理器。