spark的运行方式——转载
本文转载自: spark的运行方式
本文主要讲述运行spark程序的几种方式,包括:本地测试、提交到集群运行、交互式运行 等。
在以下几种执行spark程序的方式中,都请注意master的设置,切记。
运行自带样例
可以用 run-example 执行spark自带样例程序,如下:
./bin/run-example org.apache.spark.examples.SparkPi |
或者同样的:
run-example SparkPi |
交互运行
可以用 spark-shell 以交互方式执行spark代码,这些操作都将由spark自动控制并以分布式处理的形式完成。首先,进入spark shell:
./bin/spark-shell |
然后就可以直接执行spark代码了。spark-shell非常适合学习API,初学的话多在里面敲敲很好的。
- Spark Shell中已经默认将SparkContext类初始化为对象sc。用户代码如果需要用到,则直接应用sc即可,否则用户自己再初始化,就会出现端口占用问题,相当于启动两个上下文。
- 在使用spark-shell时,可以通过 –driver-class-path 选项来指定所依赖的jar文件,多个jar文件之间使用分号”:”分割。
- 如果觉得spark-shell的日志过多而影响观看结果,可以配置一下日志参数,将conf目录下的log4j.properties.template复制一个并命名为log4j.properties,并修改其中的日志等级就ok了。
本地运行测试
如果你是在windows上开发spark程序,然后提交到linux运行。那么本地测试将会方便开发。
本地测试spark程序,需要将master设置为local[n]。同时注意:sc.textFile()可以加载本地文件而不一定是hdfs文件,这对于开发测试是非常方便的。
本地运行测试spark程序,既可以在IDE中进行,也可以手动在命令行中执行,参见我的linux下spark开发环境配置。
windows本地测试时,需要用到hadoop的一个东东(winutils.exe),否则会出现异常。使用方法是:新建一个文件夹 D:\hadoop\bin\ 并将 winutils.exe 放入其中,并保证winutils.exe双击运行没有报*.dll缺失的错误,然后
System.setProperty("hadoop.home.dir", "D:\\hadoop\\")设置一下hadoop目录即可。
提交到集群
可以用 spark-submit 提交任务到集群执行,如下(这里我们指定了集群URL为spark standalone集群):
spark-submit \ |
--master参数指定集群URL,可以是独立集群、YARN集群、Mesos集群,甚至是本地模式。见下表:
| master可选值 | 描述 |
|---|---|
| spark://host:port | spark standalone集群,默认端口为7077。 |
| yarn | YARN集群,当在YARN上运行时,需设置环境变量HADOOP_CONF_DIR指向hadoop配置目录,以获取集群信息。 |
| mesos://host:port | Mesos集群,默认端口为5050。 |
| local | 本地模式,使用1个核心。 |
| local[n] | 本地模式,使用n个核心。 |
| local[*] | 本地模式,使用尽可能多的核心。 |
- 如果jar包所需的依赖较少,通过
--jars手动指定还可以,如果很多,最好使用构建工具打包。- 需要注意的是,你的spark程序需要打包成jar包,spark-submit会将程序包分发到各个worker节点,同时这些上传到worker节点的文件,需要定时清理,否则会占用许多磁盘空间,如果运行于standalone模式,你可以设置 spark.worker.cleanup.appDataTtl 选项来让spark自动清理这些文件。
- 其实安装spark不需要安装scala,因为 spark-assembly-1.2.0-hadoop2.4.0.jar 中已经自带了scala库。spark/bin/compute-classpath.sh 会自动将spark自带的库文件(spark-assembly-1.2.0-hadoop2.4.0.jar等)添加到classpath中,因此即使classpath和你的spark应用程序中都没有指定spark库文件路径,你的spark应用程序照样可以执行。
spark的运行方式——转载的更多相关文章
- Spark 精品文章转载(目录)
学习 Spark 中,别人整理不错的文章,转载至本博客,方便自己学习,并按照不同的模块归档整理.每个文章作者能力不同,写文章所处的时间点不同,可能会略有差异,在阅读的同时,注意当时的文章的内容是否已经 ...
- CentOS上安装spark standalone mode(转载)
原文链接 http://blog.csdn.net/chenxingzhen001/article/details/11072765 参考: http://spark.incubator.apache ...
- Project Tungsten:让Spark将硬件性能压榨到极限(转载)
在之前的博文中,我们回顾和总结了2014年Spark在性能提升上所做的努力.本篇博文中,我们将为你介绍性能提升的下一阶段——Tungsten.在2014年,我们目睹了Spark缔造大规模排序的新世界纪 ...
- Spark内核-部署模式
Master URL Meaning local 在本地运行,只有一个工作进程,无并行计算能力. local[K] 在本地运行,有K个工作进程,通常设置K为机器的CPU核心数量. local[*] 在 ...
- 【大数据】Spark内核解析
1. Spark 内核概述 Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制.Spark任务调度机制.Spark内存管理机制.Spark核心功能的运行原理等,熟练掌握Spa ...
- Spark(火花)快速、通用的大数据处理引擎框架
一.什么是Spark(火花)? 是一种快速.通用处理大数据分析的框架引擎. 二.Spark的四大特性 1.快速:Spark内存上采用DAG(有向无环图)执行引擎非循环数据流和内存计算支持. 内存上比M ...
- 【Spark 内核】 Spark 内核解析-上
Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制.Spark任务调度机制.Spark内存管理机制.Spark核心功能的运行原理等,熟练掌握Spark内核原理,能够帮助我们更 ...
- spark源码解析大全
第1章 Spark 整体概述 1.1 整体概念 Apache Spark 是一个开源的通用集群计算系统,它提供了 High-level 编程 API,支持 Scala.Java 和 Pytho ...
- Spark内核解析
Spark内核概述 Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制.Spark任务调度机制.Spark内存管理机制.Spark核心功能的运行原理等,熟练掌握Spark内核 ...
随机推荐
- (Les17 移动数据)expdp/impdp
oracle 11.2.0 expdp/impdp 数据泵参数 expdp参数=========================================================== ...
- 用 map 表达互斥逻辑
在这个开发周期遇到这样一个需求: 管理员可以给子账号配置权限,有些权限存在互斥不可同时勾选,比如 审核员和代采.审核和采购员不可同时勾选 之前同事实现的方式如下: 这样每添加一个互斥关系就要遍历一次, ...
- c#采用emit将DataTable转List
前面已经说了List转DataTable,也整理了代码. 现在转回来说说DataTable转List. 先举一个例子 public class Person { public int Age{get; ...
- shell习题第5题:批量更改文件后缀名
[题目要求] 找到123/目录下所有后缀名为.txt的文件 1. 批量修改.txt为.txt.bak 2. 把所有.bak文件打包压缩为123.tar.gz 3. 批量还原文件的名字,即把增加的.ba ...
- Linux下设置共享目录
Linux系统的文件或目录的共享功能是非常强大,而且是非常灵活的,其对权限的控制可以做到非常的细致,当然如果你是通过命令行方式进行设置的 话,那么对于刚接触linux系统的用户来说将是一件十分头痛的事 ...
- scrapy基础
scrapy Scrapy 是用 Python 实现的一个为了爬取网站数据.提取结构性数据而编写的应用框架. Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. Scrapy ...
- 修复 Cydia 不能上网的问题
使用 h3lix 越狱 10.3.3 的 iPhone5,进入 Cydia 不能联网解决方法:打开 Cydia,进入已安装列表,点击 Cydia Installer 卸载,然后看到桌面上就没有 Cyd ...
- HTTP請求
HTTP[超文本傳輸協議]是因特網上應用最為廣泛的一種網絡傳輸協議,送油的WWW文件都必須遵守這個標準. HTTP是一個基於TCP/IP通信協議來產地數據(html文件,圖片文件,查詢結果等). HT ...
- A1038
用一串数拼接成一个数,输出最小的. 思路:使用string和相关的函数. #include<iostream> #include<cstdio> #include<str ...
- UVA 514 - Rails ( 铁轨)
from my CSDN: https://blog.csdn.net/su_cicada/article/details/86939523 例题6-2 铁轨(Rails, ACM/ICPC CERC ...