提交 ec47ea3c 编写于 作者: 取昵称好难啊's avatar 取昵称好难啊

Add space

上级 aa5a30fe
......@@ -4,11 +4,11 @@ Apache Spark 是一个快速的,多用途的集群计算系统。它提供了
# 下载
从该项目官网的 [下载页面](http://spark.apache.org/downloads.html) 获取 Spark。该文档用于 Spark 2.2.0 版本。Spark可以通过Hadoop client库使用HDFS和YARN。下载一个预编译主流Hadoop版本比较麻烦。用户可以下载一个编译好的Hadoop版本,并且可以 通过[设置 Spark 的 classpath](hadoop-provided.html) 来与任何的 Hadoop 版本一起运行 Spark。Scala 和 Java 用户可以在他们的工程中通过Maven的方式引入 Spark,并且在将来 Python 用户也可以从 PyPI 中安装 Spark。
从该项目官网的 [下载页面](http://spark.apache.org/downloads.html) 获取 Spark。该文档用于 Spark 2.2.0 版本。Spark 可以通过 Hadoop client 库使用 HDFS 和 YARN。下载一个预编译主流Hadoop版本比较麻烦。用户可以下载一个编译好的 Hadoop 版本,并且可以 通过[设置 Spark 的 classpath](hadoop-provided.html) 来与任何的 Hadoop 版本一起运行 Spark。Scala 和 Java 用户可以在他们的工程中通过Maven的方式引入 Spark,并且在将来 Python 用户也可以从 PyPI 中安装 Spark。
如果您希望从源码中编译一个Spark,请访问 [编译 Spark](building-spark.html)
Spark可以在windows和unix类似的系统(例如,Linux,Mac OS)上运行。它可以很容易的在一台本地机器上运行 -你只需要安装一个JAVA环境并配置PATH环境变量,或者让JAVA_HOME指向你的JAVA安装路径
Spark 可以在 windows 和 unix 类似的系统(例如,Linux,Mac OS)上运行。它可以很容易的在一台本地机器上运行 -你只需要安装一个 JAVA 环境并配置 PATH 环境变量,或者让 JAVA_HOME 指向你的 JAVA 安装路径
Spark 可运行在 Java 8+,Python 2.7+/3.4+ 和 R 3.1+ 的环境上。针对 Scala API,Spark 2.2.0 使用了 Scala 2.11\。您将需要去使用一个可兼容的 Scala 版本 (2.11.x)。
......@@ -30,7 +30,7 @@ Spark 自带了几个示例程序。Scala,Java,Python 和 R 示例在 `examp
./bin/spark-shell --master local[2]
```
`--master`选项可以指定为 [针对分布式集群的 master URL](submitting-applications.html#master-urls),或者 以`local`模式 使用 1 个线程在本地运行,`local[N]` 会使用 N 个线程在本地运行。你应该先使用local模式进行测试。可以通过–help指令来获取spark-shell的所有配置项。Spark 同样支持 Python API。在 Python interpreter(解释器)中运行交互式的 Spark,请使用 `bin/pyspark`:
`--master` 选项可以指定为 [针对分布式集群的 master URL](submitting-applications.html#master-urls),或者 以 `local` 模式 使用 1 个线程在本地运行,`local[N]` 会使用 N 个线程在本地运行。你应该先使用 local 模式进行测试。可以通过 –help 指令来获取 spark-shell 的所有配置项。Spark 同样支持 Python API。在 Python interpreter(解释器)中运行交互式的 Spark,请使用 `bin/pyspark`:
```
./bin/pyspark --master local[2]
......
......@@ -35,7 +35,7 @@ Spark 除了运行在 Mesos 或者 YARN 上以外,Spark 还提供了一个简
./sbin/start-slave.sh <master-spark-URL>
```
在您启动一个 worker 之后,就可以通过 master 的 web UI ( 默认情况下是 [http://localhost:8080](http://localhost:8080))查看到了。您可以看到列出的新的 node(节点),以及其 CPU 的数量和数量(为操作系统留下了 1 GB 的空间)。
在您启动一个 worker 之后,就可以通过 master 的 web UI(默认情况下是 [http://localhost:8080](http://localhost:8080)查看到了。您可以看到列出的新的 node(节点),以及其 CPU 的数量和数量(为操作系统留下了 1 GB 的空间)。
最后,下面的配置选项可以传递给 master 和 worker:
......
此差异已折叠。
......@@ -15,7 +15,7 @@
# 概述
Spark 有好几计算资源调度的方式。首先,回忆一下 [集群模式概述](cluster-overview.html),每个 Spark 应用(包含一个 SparkContext 实例)中运行了一些其独占的执行器(executor)进程。集群管理器提供了Spark 应用之间的资源调度[scheduling across applications](#scheduling-across-applications)。其次,在各个 Spark 应用内部,各个线程可能并发地通过 action 算子提交多个 Spark 作业(job)。如果你的应用服务于网络请求,那这种情况是很常见的。在 Spark 应用内部(对应同一个 SparkContext)各个作业之间,Spark 默认 FIFO 调度,同时也可以支持公平调度 [fair scheduler](#scheduling-within-an-application)
Spark 有好几计算资源调度的方式。首先,回忆一下 [集群模式概述](cluster-overview.html),每个 Spark 应用(包含一个 SparkContext 实例)中运行了一些其独占的执行器(executor)进程。集群管理器提供了 Spark 应用之间的资源调度[scheduling across applications](#scheduling-across-applications)。其次,在各个 Spark 应用内部,各个线程可能并发地通过 action 算子提交多个 Spark 作业(job)。如果你的应用服务于网络请求,那这种情况是很常见的。在 Spark 应用内部(对应同一个 SparkContext)各个作业之间,Spark 默认 FIFO 调度,同时也可以支持公平调度 [fair scheduler](#scheduling-within-an-application)
# 跨应用调度
......@@ -55,13 +55,13 @@ Spark 提供了一种基于负载来动态调节 Spark 应用资源占用的机
一个启用了动态分配的 Spark 应用会有等待任务需要调度的时候,申请额外的执行器。在这种情况下,必定意味着已有的执行器已经不足以同时执行所有未完成的任务。
Spark会分轮次来申请执行器。实际的资源申请,会在任务挂起 spark.dynamicAllocation.schedulerBacklogTimeout秒后首次触发,其后如果等待队列中仍有挂起的任务,则每过 spark.dynamicAllocation.sustainedSchedulerBacklogTimeout 秒后触发一次资源申请。另外,每一轮申请的执行器个数以指数形式增长。例如:一个Spark应用可能在首轮申请 1 个执行器,后续的轮次申请个数可能是 2 个、4 个、8 个…
Spark会分轮次来申请执行器。实际的资源申请,会在任务挂起 spark.dynamicAllocation.schedulerBacklogTimeout 秒后首次触发,其后如果等待队列中仍有挂起的任务,则每过 spark.dynamicAllocation.sustainedSchedulerBacklogTimeout 秒后触发一次资源申请。另外,每一轮申请的执行器个数以指数形式增长。例如:一个 Spark 应用可能在首轮申请 1 个执行器,后续的轮次申请个数可能是 2 个、4 个、8 个......
采用指数级增长策略的原因有两个:第一,对于任何一个 Spark 应用如果只需要多申请少数几个执行器的话,那么必须非常谨慎的启动资源申请,这和 TCP 慢启动有些类似;第二,如果一旦 Spark 应用确实需要申请多个执行器的话,那么可以确保其所需的计算资源及时增长。
#### 移除策略
移除执行器的策略就简单得多了。Spark 应用会在某个执行器空闲超过 spark.dynamicAllocation.executorIdleTimeout秒后将其删除,在大多数情况下,执行器的移除条件和申请条件都是互斥的,也就是说,执行器在有等待执行任务挂起时,不应该空闲。
移除执行器的策略就简单得多了。Spark 应用会在某个执行器空闲超过 spark.dynamicAllocation.executorIdleTimeout 秒后将其删除,在大多数情况下,执行器的移除条件和申请条件都是互斥的,也就是说,执行器在有等待执行任务挂起时,不应该空闲。
### 优雅的关闭Executor(执行器)
......
......@@ -2831,7 +2831,7 @@ Spark SQL CLI 是在本地模式下运行 Hive 转移服务并执行从命令行
基于用户反馈,我们创建了一个新的更流畅的 API,用于读取 (`SQLContext.read`) 中的数据并写入数据 (`DataFrame.write`),并且旧的 API 将过时(例如,`SQLContext.parquetFile``SQLContext.jsonFile`)。
针对 `SQLContext.read` ( [Scala](api/scala/index.html#org.apache.spark.sql.SQLContext@read:DataFrameReader)[Java](api/java/org/apache/spark/sql/SQLContext.html#read()),[Python](api/python/pyspark.sql.html#pyspark.sql.SQLContext.read) ) 和 `DataFrame.write` ( [Scala](api/scala/index.html#org.apache.spark.sql.DataFrame@write:DataFrameWriter)[Java](api/java/org/apache/spark/sql/DataFrame.html#write()),[Python](api/python/pyspark.sql.html#pyspark.sql.DataFrame.write) ) 的更多细节,请看 API 文档。
针对 `SQLContext.read`[Scala](api/scala/index.html#org.apache.spark.sql.SQLContext@read:DataFrameReader)[Java](api/java/org/apache/spark/sql/SQLContext.html#read()),[Python](api/python/pyspark.sql.html#pyspark.sql.SQLContext.read)) 和 `DataFrame.write`[Scala](api/scala/index.html#org.apache.spark.sql.DataFrame@write:DataFrameWriter)[Java](api/java/org/apache/spark/sql/DataFrame.html#write()),[Python](api/python/pyspark.sql.html#pyspark.sql.DataFrame.write)的更多细节,请看 API 文档。
#### DataFrame.groupBy 保留 grouping columns(分组的列)
......@@ -2963,7 +2963,7 @@ Spark SQL 支持绝大部分的 Hive 功能,如:
* `CROSS JOIN`
* Unions
* Sub-queries(子查询)
* `SELECT col FROM ( SELECT a + b AS col from t1) t2`
* `SELECT col FROM (SELECT a + b AS col from t1) t2`
* Sampling
* Explain
* Partitioned tables including dynamic partition insertion
......
......@@ -48,7 +48,7 @@ import org.apache.spark.rdd.RDD
# 属性 Graph
[属性 Graph](api/scala/index.html#org.apache.spark.graphx.Graph) 是一个定向多重图形,用户定义的对象附加到每个顶点和边缘。定向多图是具有共享相同源和目标顶点的潜在多个平行边缘的有向图。支持平行边缘的能力简化了在相同顶点之间可以有多个关系(例如: 同事和朋友)的建模场景。每个顶点都由唯一的64位长标识符(`VertexId`)键入。GraphX 不对顶点标识符施加任何排序约束。类似地,边缘具有对应的源和目标顶点标识符。
[属性 Graph](api/scala/index.html#org.apache.spark.graphx.Graph) 是一个定向多重图形,用户定义的对象附加到每个顶点和边缘。定向多图是具有共享相同源和目标顶点的潜在多个平行边缘的有向图。支持平行边缘的能力简化了在相同顶点之间可以有多个关系(例如: 同事和朋友)的建模场景。每个顶点都由唯一的 64 位长标识符(`VertexId`)键入。GraphX 不对顶点标识符施加任何排序约束。类似地,边缘具有对应的源和目标顶点标识符。
属性图是通过 vertex (`VD`)和 edge (`ED`) 类型进行参数化的。这些是分别与每个顶点和边缘相关联的对象的类型。
......@@ -66,7 +66,7 @@ var graph: Graph[VertexProperty, String] = null
像 RDD 一样,属性图是不可变的,分布式的和容错的。通过生成具有所需更改的新图形来完成对图表的值或结构的更改。请注意,原始图形的大部分(即,未受影响的结构,属性和索引)在新图表中重复使用,可降低此内在功能数据结构的成本。使用一系列顶点分割启发式方法,在执行器之间划分图形。与 RDD 一样,在发生故障的情况下,可以在不同的机器上重新创建图形的每个分区。
逻辑上,属性图对应于一对编码每个顶点和边缘的属性的类型集合( RDD )。因此,图类包含访问图形顶点和边的成员:
逻辑上,属性图对应于一对编码每个顶点和边缘的属性的类型集合(RDD)。因此,图类包含访问图形顶点和边的成员:
```
class Graph[VD, ED] {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册