使用Spark shell

简介: 使用Spark shell

1. 实验室名称:

大数据实验教学系统

2. 实验项目名称:

使用Spark shell

3. 实验学时:

4. 实验原理:

spark-shell命令及其常用的参数如下: ./bin/spark-shell [options]

 Spark的运行模式取决于传递给SparkContext的Master URL的值。

• 参数选项–master:这个参数表示当前的Spark Shell要连接到哪个master,如果是local[*],就是使用本地模式启动spark-shell,其中,中括号内的星号表示需要使用几个CPU核心(core),也就是启动几个线程模拟Spark集群。可选地,默认为local。

• 要查看完整的参数选项列表,可以执行“spark-shell —help”命令,如下:

0.   $ spark-shell --help

Master URL(即—master参数)的值如下表所示:


6de01b819db64948ad107e92885be3da.png


5. 实验目的:

掌握Spark Shell帮助命令的使用。

 掌握Spark Shell的启动和关闭。


6. 实验内容:

1、查看Spark Shell帮助命令。

 2、两种模式(local和standalone)启动Spark Shell。

 3、常用Spark Shell命令。


7. 实验器材(设备、虚拟机名称):

硬件:x86_64 ubuntu 16.04服务器

 软件:JDK1.8,Spark-2.3.2

 在本实验环境中,Spark安装包位于以下位置:/data/software/spark-2.3.2-bin-hadoop2.7.tgz

 在本实验环境中,JDK已安装在以下位置:/opt/jdk

 在本实验环境中,Hadoop已安装在以下位置:/opt/hadoop器


8. 实验步骤:

8.1 启动Spark Shell方式一:local模式

1、在终端窗口中,键入以下命令,启动spark-shell:

1.  $ spark-shell

执行过程如下图所示:

508bd0dd00374d7e870b39f953f5991d.png


从上图中可以看出,Spark Shell在启动时,已经帮我们创建好了SparkContext对象的实例sc和SparkSession对象的实例spark,我们可以在Spark Shell中直接使用sc和spark这两个对象。另外,默认情况下,启动的Spark Shell采用local部署模式。

 2、在spark-shell中,键入以下命令,退出Spark Shell:

1.  :quit

508bd0dd00374d7e870b39f953f5991d.png8.2 启动Spark Shell方式二:standalone集群模式

1、先要确保启动了Spark集群。在终端窗口下,执行以下命令:


$ cd /opt/spark

$ ./sbin/start-all.sh

 2、然后启动spark-shell。在启动spark-shell时,要指定—master参数,如下所示(注意:请将以下命令中的localhost替换为虚拟机实际的主机名):

1.  $ spark-shell --master spark://localhost:7077

执行过程如下图所示:

02e842fbfc6249dfb07905ad7fc4db45.png


8.3 Spark Shell常用命令

1、可以在Spark Shell里面输入Spark代码进行开发调试。

  例如,在一个启动了的spark-shell窗口下,执行如下图所示的代码:

2967d8afda0b47e3ba7095d349e367ac.png


2、可以Spark Shell中键入以下命令,查看Spark Shell常用的命令:

1.  :help

输出如下图所示:

081beaa7d6594d7d9569a97bcd191f0e.png


3、测试:paste命令。在Spark Shell中,键入以下命令,进入paster模式:

1.  :paste
2.  val r = 5
3.  val pi = 3.14
4.  val area = pi * r * r
5.  println("面积为:" + area)

同时按下Shift+Enter,执行以上代码,输出内容如下:

面积为:78.5

执行过程如下图所示:

6309980e827943f88723a83b9109e552.png


9. 实验结果及分析:

实验结果运行准确,无误


10. 实验结论:

经过本节实验的学习,通过学习Spark集群环境搭建(standalone模式),进一步巩固了我们的Spark基础。


11. 总结及心得体会:

Spark Shell支持Scala和Python语言。

 Spark Shell在启动时,已经帮我们创建好了SparkContext对象的实例sc和SparkSession对象的实例spark,我们可以在Spark Shell中直接使用sc和spark这两个对象。

 Spark Shell本身就是一个Driver程序,里面已经包含了main方法。(一个Driver程序就包括main方法和分布式数据集。)

 —master:这个参数表示当前的Spark Shell要连接到哪个master。默认情况下是使用local模式。。


12、实验知识测试

1.1 Spark 的 master 和 worker 通过什么方式进行通信的? ( D )

• A.http

• B.nio

• C.netty

• D.Akka

扩展资料

AKKA把并发操作的各种复杂的东西都统一的做了封装.我们主要关心的是业务逻辑的实现,只需要少量的关心Actor模型的串联即可构建出高可用,高性能,高扩展的应用.

由于AKKA是使用Scala编写的,而Scala是一种基于JVM的语言,因此JAVA对AKKA的支持也是很不错的.Akka自身又是采用微内核的方式来实现的,这就意味着能很容易的在自己的项目中应用AKKA,只需要引入几个akka的Lib包即可。

Akka是一个由Scala编写的,能兼容Sacala和JAVA的,用于编写高可用和高伸缩性的Actor模型框架,它基于了事件驱动的并发处理模式,性能非常的高,并且有很高的可用性,大大的简化了我们在应用系统中开发并发处理的过程。它在各个领域都有很好的表现。

4fce0a6bf4cf48a79b674b54daf63f91.png

相关文章
|
5月前
|
Java Shell 分布式数据库
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
87 0
|
5月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
280 0
|
分布式计算 Java Shell
Spark Shell入门教程(上)
Spark Shell入门教程(上)
782 0
Spark Shell入门教程(上)
|
存储 SQL 分布式计算
Spark Shell笔记
Spark Shell笔记
135 0
Spark Shell笔记
|
分布式计算 监控 安全
【墨菲安全实验室】Spark(3.1.2, 3.2.1, 3.3.0版本)shell命令注入漏洞
【墨菲安全实验室】Spark(3.1.2, 3.2.1, 3.3.0版本)shell命令注入漏洞
【墨菲安全实验室】Spark(3.1.2, 3.2.1, 3.3.0版本)shell命令注入漏洞
|
分布式计算 监控 Java
日志分析实战之清洗日志小实例3:如何在spark shell中导入自定义包
日志分析实战之清洗日志小实例3:如何在spark shell中导入自定义包
147 0
日志分析实战之清洗日志小实例3:如何在spark shell中导入自定义包
|
分布式计算 Hadoop 大数据
Spark 入门_Spark Shell 本地文件读取|学习笔记
快速学习 Spark 入门_Spark Shell 本地文件读取
504 0
Spark 入门_Spark Shell 本地文件读取|学习笔记
|
分布式计算 Shell 编译器
Spark Shell入门教程(下)
Spark Shell入门教程(下)
139 0
Spark Shell入门教程(下)
|
SQL 分布式计算 Hadoop
用spark shell执行操作hive
用spark shell执行操作hive
343 0
|
分布式计算 Java Shell
Spark源码分析之Spark Shell(上)
终于开始看Spark源码了,先从最常用的spark-shell脚本开始吧。不要觉得一个启动脚本有什么东东,其实里面还是有很多知识点的。另外,从启动脚本入手,是寻找代码入口最简单的方法,很多开源框架,其实都可以通过这种方式来寻找源码入口。
902 0