在spark上运行独立程序(Self-Contained Applications),selfcontained


在hadoop集群上搭好spark环境及体验spark shell之后可以重新做做官方的快速上手。

运行独立程序(SimpleApp.py):
首先编写程序(这里用Pytho的API):

from pyspark import SparkContext

logFile = "README.md" #注意这里的文件是在hdfs中的
sc = SparkContext("local","Simple App")
logData = sc.textFile(logFile).cache()

numAs = logData.filter(lambda s:'a' in s).count()
numBs = logData.filter(lambda s:'b' in s).count()

print "lines with a: %i,lines with b: %i" %(numAs,numBs)

然后进入spark安装目录运行:

hadoop@Mhadoop:/usr/local/spark/spark-1.3.1-bin-hadoop2.4$ vi /home/hadoop/Public/SimpleApp.py
hadoop@Mhadoop:/usr/local/spark/spark-1.3.1-bin-hadoop2.4$
./bin/spark-submit --master local
/home/hadoop/Public/SimpleApp.py

core spark concepts:

每一个spark应用都包含一个在集群上运行着多个并行操作的主驱动程序(driver program)。它包括你应用的main函数和在集群上定义的分布式数据集以及对他们的操作。比如在《spark-shell初体验》中的Driver Program就是Spark shell。

Driver Program连接集群是通过SparkContext对象,在shell中这个对象已经被创建,即 sc。一旦有了这个对象,你就可以用它创建分布式数据集RDDS。比如上面程序中的logData

为了运行这些操作,Driver Programs 管理着许多工作节点即executors。比如我们执行count()操作,不同的机器可能计算文件的不同部分。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关内容