如何使用 YARN 资源管理器运行¶
概览¶
该脚本在带有 YARN 资源管理器的 Spark 集群上运行,并返回集群中每个节点的主机名。
这是给谁的?¶
本指南适用于希望使用 YARN 资源管理器运行 Python 代码的 Spark 集群用户。
开始之前¶
要执行此示例,
请将下载到您的集群。cluster-spark-yarn.py example script
对于此示例,您需要使用 YARN 资源管理器运行 Spark。您可以使用Cloudera CDH 或Hortonworks HDP等企业 Hadoop 发行版安装 Spark 和 YARN 。
运行作业¶
这是在 PySpark 中运行 Spark + YARN 示例的完整脚本:
# cluster-spark-yarn.py
from pyspark import SparkConf
from pyspark import SparkContext
conf = SparkConf()
conf.setMaster('yarn-client')
conf.setAppName('spark-yarn')
sc = SparkContext(conf=conf)
def mod(x):
import numpy as np
return (x, np.mod(x, 2))
rdd = sc.parallelize(range(1000)).map(mod).take(10)
print rdd
注意:您可能必须使用.acluster conda install numpy
使用spark-submit在 Spark 集群上运行脚本
。输出显示从cluster-spark-basic.py
脚本返回的前十个值。
16/05/05 22:26:53 INFO spark.SparkContext: Running Spark version 1.6.0
[...]
16/05/05 22:27:03 INFO scheduler.TaskSetManager: Starting task 0.0 in stage 0.0 (TID 0, localhost, partition 0,PROCESS_LOCAL, 3242 bytes)
16/05/05 22:27:04 INFO storage.BlockManagerInfo: Added broadcast_0_piece0 in memory on localhost:46587 (size: 2.6 KB, free: 530.3 MB)
16/05/05 22:27:04 INFO scheduler.TaskSetManager: Finished task 0.0 in stage 0.0 (TID 0) in 652 ms on localhost (1/1)
16/05/05 22:27:04 INFO cluster.YarnScheduler: Removed TaskSet 0.0, whose tasks have all completed, from pool
16/05/05 22:27:04 INFO scheduler.DAGScheduler: ResultStage 0 (runJob at PythonRDD.scala:393) finished in 4.558 s
16/05/05 22:27:04 INFO scheduler.DAGScheduler: Job 0 finished: runJob at PythonRDD.scala:393, took 4.951328 s
[(0, 0), (1, 1), (2, 0), (3, 1), (4, 0), (5, 1), (6, 0), (7, 1), (8, 0), (9, 1)]