Spark shell的原理深入研究
2016-07-29 11:45
369 查看
不多说,直接上干货!
[b]Spark shell[/b]是一个特别适合快速开发Spark原型程序的工具,可以帮助我们熟悉Scala语言。即使你对Scala不熟悉,仍然可以使用这个工具。Spark shell使得用户可以和Spark集群交互,提交查询,这便于调试,也便于初学者使用Spark。
感受到Spark shell是如此的方便,因为它很大程度上基于Scala REPL(Scala 交互式shell,即Scala解释器),并继承了Scala REPL(读取-求值-打印-循环)(Read-Evaluate-Print-Loop)的所有功能。
Sprk Shell虽然强大,但多数时候你还是会运行编译后的代码,而不是使用REPL环境,即API。
这里啊,首次使用spark一般都是从执行spark-shell开始的。当在键盘上敲入spark-shell并回车时,[b]我用源码来分析。[/b]
这里是个知识点。若没有对spark进行安装集群部署,直接将spark的压缩包,解压,然后执行spark-shell,默认是local模式。
关于spark的安装部署方式,我这里不多赘述。请移步
执行spark-shell,则是,集群模式。
想清晰的学习,请移步
[b]Spark Standalone与Spark on YARN的几种提交方式[/b]
[b]spark-shell的脚本[/b]
[b] spark-submit的脚本[/b]
[b] spark-class的脚本[/b]
[b]总结:[/b]
1、运行spark-shell,则会运行spark-submit。
[b]2、spark-shell其实是对spark-submit的一层封装!!![/b]
3、在某些情况下,可能需要对环境变量及JVM启动参数做修改,还可能涉及ulimit中的某些配置项,那么可以将这些指令添加到sparl-class中。
4、SparkSbumit当中定义了mian函数,在它的处理中会将Spark Repl运行起来,Spark Repl能够接收用户的输入,通过编译与运行,返回结果给用户。
这就是Spark具有交互处理能力的原因所在。
调用顺序: SparkSbumit -> repl.Main -> SparkILoop
欢迎大家,加入我的微信公众号:大数据躺过的坑 免费给分享
同时,大家可以关注我的个人博客:
http://www.cnblogs.com/zlslch/ 和 http://www.cnblogs.com/lchzls/
人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获
以及对应本平台的QQ群:161156071(大数据躺过的坑)
[b]Spark shell[/b]是一个特别适合快速开发Spark原型程序的工具,可以帮助我们熟悉Scala语言。即使你对Scala不熟悉,仍然可以使用这个工具。Spark shell使得用户可以和Spark集群交互,提交查询,这便于调试,也便于初学者使用Spark。
感受到Spark shell是如此的方便,因为它很大程度上基于Scala REPL(Scala 交互式shell,即Scala解释器),并继承了Scala REPL(读取-求值-打印-循环)(Read-Evaluate-Print-Loop)的所有功能。
Sprk Shell虽然强大,但多数时候你还是会运行编译后的代码,而不是使用REPL环境,即API。
这里啊,首次使用spark一般都是从执行spark-shell开始的。当在键盘上敲入spark-shell并回车时,[b]我用源码来分析。[/b]
这里是个知识点。若没有对spark进行安装集群部署,直接将spark的压缩包,解压,然后执行spark-shell,默认是local模式。
关于spark的安装部署方式,我这里不多赘述。请移步
Spark运行模式概述
而,我们这一句将spark进行了集群安装(Jdk、Scala、Hadoop、Spark)等。执行spark-shell,则是,集群模式。
想清晰的学习,请移步
[b]Spark Standalone与Spark on YARN的几种提交方式[/b]
[b]spark-shell的脚本[/b]
export SPARK_SUBMIT_OPTS "$FWDIR"/bin/spark-submit --class org.apache.spark.repl.Main --name "Spark shell" "$@"
[b] spark-submit的脚本[/b]
exec "$SPARK_HOME"/bin/spark-class org.apache.spark.deploy.SparkSubmit "$@"
[b] spark-class的脚本[/b]
# Find the java binary if [ -n "${JAVA_HOME}" ]; then RUNNER="${JAVA_HOME}/bin/java" else if [ `command -v java` ]; then RUNNER="java" else echo "JAVA_HOME is not set" >&2 exit 1 fi fi exec "$RUNNER" -cp "$LAUNCH_CLASSPATH" org.apache.spark.launcher.Main "$@"
[b]总结:[/b]
1、运行spark-shell,则会运行spark-submit。
[b]2、spark-shell其实是对spark-submit的一层封装!!![/b]
3、在某些情况下,可能需要对环境变量及JVM启动参数做修改,还可能涉及ulimit中的某些配置项,那么可以将这些指令添加到sparl-class中。
4、SparkSbumit当中定义了mian函数,在它的处理中会将Spark Repl运行起来,Spark Repl能够接收用户的输入,通过编译与运行,返回结果给用户。
这就是Spark具有交互处理能力的原因所在。
调用顺序: SparkSbumit -> repl.Main -> SparkILoop
欢迎大家,加入我的微信公众号:大数据躺过的坑 免费给分享
同时,大家可以关注我的个人博客:
http://www.cnblogs.com/zlslch/ 和 http://www.cnblogs.com/lchzls/
人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获
以及对应本平台的QQ群:161156071(大数据躺过的坑)
相关文章推荐
- 利用shell删除数据表中指定信息和字段对应的文件
- Shell_Linux bash shell 逐行读取文件的三种方法
- shell写入文件,后面会覆盖前面
- shell 文件复制之cp命令
- shell脚本输出文件夹下所有目录的绝对路径
- shell出错test_path: command not found
- shell脚本添加选项菜单demo
- /bin/bash^M: 坏的解释器: 没有那个文件或目录
- Powershell获取并导出指定日期EventLog
- bashd的基本特性及文本操作命令
- shell中的特殊符号
- webshell
- Shell脚本编程(3)
- shell脚本注释模版
- Shell需注意的语法问题
- Shell循环输入符合条件为止
- 通过shell脚本进行数据库操作
- Shell命令部分缩写由来
- bash编程之 ~制作Mini Linux系统~
- 公告:请访问我Blog新站——酷壳 CoolShell.cn