Spark

    xiaoxiao2023-11-23  153

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