Spark

    xiaoxiao2022-07-02  103

    一.实验目的 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删表

    验证是否删除

    最新回复(0)