Spark

一.实验目的
1. 了解Spark SQL所能实现的功能;

2. 能够使用Spark SQL执行一些sql语句。

二.实验要求
1. 能在实验结束之后完成建立数据库,建立数据表的数据结构;

2. 建立数据表之后能在Spark SQL中执行SQL语句进行查询;

3. 练习怎么向Spark SQL中导入数据。

三.实验原理
Spark SQL用于以交互式方式编写并执行Spark SQL,且书写语法为类SQL,同Spark Shell一样,启动时写明“–master spark://master:7077”则进入集群模式,否则默认进入单机模式。由于默认安装的Spark已经包含了Spark SQL,故无需安装其它组件,直接执行即可。

Spark SQL使得运行SQL和HiveQL查询十分简单。Spark SQL能够轻易地定位相应的表和元数据。Spark SQL为Spark提供了查询结构化数据的能力,查询时既可以使用SQL也可以使用人们熟知的DataFrame API(RDD)。Spark SQL支持多语言编程包括Java、Scala、Python及R,开发人员可以根据自身喜好进行选择。

DataFrame是Spark SQL的核心,它将数据保存为行构成的集合,行对应列有相应的列名。使用DataFrames可以非常方便地查询数据、给数据绘图及进行数据过滤。

DataFrames也可以用于数据的输入与输出,例如利用Spark SQL中的DataFrames,可以轻易地将下列数据格式加载为表并进行相应的查询操作:

1. RDD;

2. JSON;

3. Hive;

4. Parquet;

5. MySQL;

6. HDFS;

7. S3;

8. JDBC;

9. 其它 。

数据一旦被读取,借助于DataFrames便可以很方便地进行数据过滤、列查询、计数、求平均值及将不同数据源的数据进行整合。

如果你正计划通过读取和写数据来进行分析,Spark SQL可以轻易地帮你实现并将整个过程自动化。

四. 实验步骤
登录大数据实验一体机,启动实验十七,并点击右上方的一键搭建按钮,等待搭建完成。如图17-1所示:

图17-1 自动搭建集群

在master机上建立一个数据文件weather.dat。
在这里插入图片描述

在master机上启动Spark SQL。
在这里插入图片描述

确认当前Spark SQL中是否已经存在我们需要建立的数据库。
在这里插入图片描述

Spark SQL> show databases;
确认在当前的Spark SQL中不存在数据库名为db的数据库时进行操作。

Spark SQL> create database db;
在这里插入图片描述
切换当前数据库。
在这里插入图片描述
Spark SQL> use db;
建表操作。
在这里插入图片描述

执行命令检查是否建表成功
在这里插入图片描述

通过上述命令能在结果中发现weather表。

导入数据

在这里插入图片描述
执行查询命令。
在这里插入图片描述

通过查询命令可以正确得到刚才导入的数据就代表导入数据成功。

删除表;
在这里插入图片描述
上述命令可以通过查看数据库中存在的表检查weather表是否删除。

五.实验结果
建立数据库成功后show database 结果中能看到以下内容,如图17-2所示。

图17-2

建表成功之后show tables 结果能能看到的以下内容,如图17-3所示。

图17-3

执行查询命令成功,如图17-4所示。

select * from weather;

图17-4

执行过滤结果如图17-5所示。

select * from weather where temperature > 10.0

图17-5

实验操作:
步骤1:搭建Spark集群

配置Spark集群(独立模式):

1.前提:

配置各节点之间的免密登录,并在/etc/hosts中写好hostname与IP的对应,这样方便配置文件的相互拷贝。2、因为下面实验涉及Spark集群使用HDFS,所以按照之前的实验预先部署好HDFS。

在master机上操作:确定存在spark。

在这里插入图片描述
在master机上操作:进入/usr/cstor目录中。
在这里插入图片描述
进入配置文件目录/usr/cstor/spark/conf, 先拷贝并修改slave.templae为slave。

在这里插入图片描述
然后用vim命令编辑器编辑slaves文件

在这里插入图片描述
编辑slaves文件将下述内容添加到slaves文件中。
在这里插入图片描述
上述内容表示当前的Spark集群共有三台slave机,这三台机器的机器名称分别是slave1~3。

在spark-conf.sh中加入JAVA_HOME。
在这里插入图片描述
加入以下内容

export JAVA_HOME=/usr/local/jdk1.7.0_79
将配置好的Spark拷贝至slaveX、client。(machines在目录/root/data/2下,如果不存在则自己新建一个)

使用for循环语句完成多机拷贝。
在这里插入图片描述
在master机上操作:启动Spark集群。
在这里插入图片描述

2.配置HDFS

配置Spark集群使用HDFS:

首先关闭集群(在master上执行)

将Spark环境变量模板复制成环境变量文件。

[root@master ~]# cd /usr/cstor/spark/conf
[root@master conf]# cp spark-env.sh.template spark-env.sh
修改Spark环境变量配置文件spark-env.sh

[root@master conf]$ vim spark-env.sh
在sprak-env.sh配置文件中添加下列内容。

export HADOOP_CONF_DIR=/usr/cstor/hadoop/etc/hadoop
重新启动spark

步骤2:进入spark-sql

步骤3:spark-sql建库

步骤4:spark-sql建表

查看创建的表show tables;

步骤5:spark-sql导入数据

步骤6:spark-sql条件查询

步骤7:spark-sql删表

验证是否删除
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值