使用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

相关文章
|
Java Shell 分布式数据库
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
602 0
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
1537 0
|
存储 SQL 分布式计算
Spark Shell笔记
Spark Shell笔记
410 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中导入自定义包
537 0
日志分析实战之清洗日志小实例3:如何在spark shell中导入自定义包
|
分布式计算 Hadoop 大数据
Spark 入门_Spark Shell 本地文件读取|学习笔记
快速学习 Spark 入门_Spark Shell 本地文件读取
Spark 入门_Spark Shell 本地文件读取|学习笔记
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
12月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
1013 9
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
461 60
|
12月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
1079 2