beeline执行sql文件_【SparkSQL】介绍、与Hive整合、Spark的th/beeline/jdbc/thriftserve2、shell方式使用SQL...
目录
一、Spark SQL介绍
SQL on Hadoop框架:
1)Spark SQL
2)Hive
3)Impala
4)Phoenix
Spark SQL是用来处理离线数据的,他的编程模型是DF/DS
Spark SQL的特点:
1)集成:可以和各种复杂SQL:spark.sql("")
2)统一的数据访问:连接Hive, Avro, Parquet, ORC, JSON, and JDBC外部数据源统一的方式:spark.read.format("").load("")
3)与Hive的集成:由于共享元数据库的存在,表、UDF都可以共享。impala、Hive、Spark SQL都是共享metastore元数据的
4)jdbc方式:需要启动服务,比如Hive的hiveserver2、mysql。
Spark的SQL框架:
1)Spark分支: Spark SQL
2)Hive:Hive on Spark
交互Spark SQL的方式:SQL、DF/DS
DataFrame 是1.3版本出来的,DataSet1.6出现的。
DataFrame=RDD+schema
DataFrame=Dataset[Row]
DF支持使用Scala, Java, Python, and R进行开发。但是DS只支持Scala and Java. Python暂时不支持,所以使用Python是有局限性的。
二、Spark和Hive的整合
只需要两步:
1)将Hive元数据的配置文件放到Spark/conf下:
cd $SPARK_HOME
cd conf
cp /home/hadoop/app/hive-1.1.0-cdh5.7.0/conf/hive-site.xml .(hive-site.xml中配置了元数据的连接)
2)在Spark中加入mysql的driver驱动包(因为Hive元数据是存储在MySQL上)。有多种方式添加jar包:
1)方式1:加在spark-shell或者spark-submit后:
启动的时候通过--jars加入,但是有的时候并不能传到driver端,所以还需要再使用--driver-class-path:
spark-shell \
--jars /home/hadoop/lib/mysql-connector-java-5.1.43-bin.jar \
--driver-class-path /home/hadoop/lib/mysql-connector-java-5.1.43-bin.jar
如果包多的时候使用--package。
2)方式2:cp包进SPARK_HOME/jars
3)方式3:把jar包配置在spark-default.conf下:
多包的时候使用:
spark.executor.extraClassPath=/home/hadoop/wzq_workspace/lib/*
spark.driver.extraClassPath=/home/hadoop/wzq_workspace/lib/*
单个包的时候使用(本人):
spark.executor.extraClassPath=/home/hadoop/lib/mysql-connector-java-5.1.43-bin.jar
spark.driver.extraClassPath=/home/hadoop/lib/mysql-connector-java-5.1.43-bin.jar
注意:
1)Hive底层是HDFS,一定要保证HDFS进程是开启的。
2)mysql的服务需要是开启的。
3)想要使用Spark整合Hive,在编译Spark的时候需要在编译指令中加入-Phive -Phive-thriftserver。
4)因为Spark配置中加入了hive-site.xml,所以默认的文件系统就是 HDFS。
否则就是本地文件系统,create table的时候就会在本地创建/user/hive/warehouse目录 。
SparkSession是Spark SQL程序的入口。在Spark Shell中SparkSession的别名是spark。
三、Spark的thriftserve2/beeline/jdbc
hive有hiveServer2,spark中也有类似的thriftserve2。
位置:spark/sbin
步骤:
1)将${HIVE_HOME}/conf/hive-site.xml 拷贝到${SPARK_HOME}/conf下。
2)添加mysql驱动。
启动thriftserver服务:
sbin$ ./start-thriftserver.sh --jars ~/software/XXX/mysql-connector-java-5.1.27-bin.jar
会提示日志文件的位置,通过`tail -f XX.log`可以查看这个server是否启动成功。
占用的端口是10000。
启动beeline客户端:
bin$ ./beeline -u jdbc:hive2://localhost:10000 -n hadoop #通过过JDBC连接hive
jdbc:hive2://localhost:10000> #成功连接
jdbc:hive2://localhost:10000> show tables;
jdbc:hive2://localhost:10000> select * from emp;
注意:
要在`$SPARK_HOME/bin`下通过`./beeline`启动start-thriftserver.sh对应的客户端,否则启动启动成hive的客户端,因为环境变量中配置了`HIVE_HOME/bin`,也配置了`SPARK_HOME/bin` ,所以要明确位置进行使用。
开启server之后,也可以在windows上的IDEA中使用JDBC进行连接服务。同样不需要写用户名和密码。
观察Spark UI界面:
1)应用的名称是Thrift JDBC/ODBC Server
2)页面上多了一个JDBC/ODBC Server的页签,并且展示SQL的很多信息和SQL的执行计划。
四、shell方式使用SQL
实际上就是访问操作Hive表。
shell方式使用SQL有两种方式:
1)spark-shell进入:
scala> spark.sql("show databases").show(false)
scala> spark.sql("use hive")
scala> spark.sql("show tables").show(false)
scala> spark.sql("select * from test").show(false)
2)spark-sql进入:
bin$ ./spark-sql --jars
spark-sql(default)> show tables;
spark-sql(default)> select * from emp;
spark-sql (default)> show databases; #直接写SQL,用;符号结束
用exit;退出spark-sql
spark-sql 底层调用的也是spark-submit。
beeline执行sql文件_【SparkSQL】介绍、与Hive整合、Spark的th/beeline/jdbc/thriftserve2、shell方式使用SQL...相关推荐
- 用JDBC直连方式访问SQL Server 2005详解
用JDBC直连方式访问SQL Server 2005详解 1.安装JDK,配置其环境变量:(笔者所用版本为1.6版) (1)从官方网http://java.sun.com/jdk下载安装文件. (2) ...
- java执行sql文件_面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...
- java执行sql文件_面试官:MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...
- sqlplus 执行sql文件_详解sqlplus设定行大小、页大小、字符列格式、数字列格式、清屏...
概述 sqlplus虽然是DBA们最为经常使用的Oracle客户端工具,但是它在输出结果格式化上不是很好,如折行.分页不好等,所以一般启动sqlplus后多少都要做些设置,如linesize.page ...
- pg数据库执行sql文件_在linux中Postgresql数据库如何执行脚本文件
在linux中Postgresql数据库如何恢复数据库?执行sql脚本文件呢?具体步骤如下: 一.恢复数据库备份文件 1.将数据库备份文件xxx.backup用连接工具拷贝到/opt下,这个不固定,位 ...
- mysql客户端能运行sql文件_通过mysql客户端执行sql文件的方法
选择要执行sql文件,点击"打开"按钮,如图 方法/步骤 点击"ok"按钮,如图: 下面是学习啦小编为大家整理的关于通过mysql客户端执行sql文件的方法,一 ...
- mysql workbench 执行sql文件_向mysql workbench中导入.sql文件
mysql workbench用的不多,前段时间装了一下,然后用了一下,感觉操作比dbdesigner4要更人性化一点.其中二个方面做了改进,让我觉得很爽. 第一,就是端口可以修改了,以前就是定死33 ...
- mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)
站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...
- 转储sql文件_在Linux上SQL Server中更改SQL转储文件位置
转储sql文件 In this article, we will talk about SQL Dump files and the process to change the dump direct ...
最新文章
- 合肥师范学院计算机毕设选老师,计算机毕设被导师要求反复修改?
- html5 Canvas画图教程(5)—canvas里画曲线之arc方法
- springboot打包时加入本地jar打包
- oracle 48小时内_缺血性脑梗死后48小时内使用阿替普酶能够降低脑损伤程度
- POE供电交换机技术分析及工作过程详解
- raptor累乘流程图_Markdown快速上手指南
- 为什么代码正确却没有爬虫的信息_一位一年多工作经验的程序员问我,为什么545行代码没有执行到?...
- input file reader
- Pixazza把每张图片自动变成广告赚钱
- 浏览器输入网址回车发生的事情?--
- JIT 编译器 是什么
- 新东方的全套英语资料,相当权威版!!!
- hugo搭建个人博客
- Spark 3.0 - 6.ML 自定义 Transformer 踩坑大全
- pd.read_excel出现xlrd.biffh.XLRDError: Excel xlsx file; not supported解决方案
- 小半斤拔凉 支付Java 相关参考
- SpringCloud( H版 alibaba )框架开发教程(中级)
- CentOS桌面安装
- Java API文档的使用详解
- Matlab 里 premnmx tramnmx postmnmx 分别表示什么
热门文章
- 引入对抗训练的对比学习
- Embedding 技术在推荐系统中的应用实践
- php中 s=,PHP错误表中的所有值=’s’
- 修改个人信息 python_python函数练习——个人信息修改
- sklearn学习 5.降维算法PCA和SVD
- 那些年让我们头疼的CSS3动画
- java连接数据库 oracle,Oracle数据库之一分钟教你学会用java连接Oracle数据库
- mysql找不到sys_解决方法:①MySQL 闪退 ②服务列表里找不到MySQL ③MySQL服务无法启动...
- Navicat安装(图文教程)
- [ExtJS 6]Grid分页工具栏无效问题解决