1.内嵌的hive
如果使用内嵌的hive,啥也不用做,解压之后进入spark-home目录。
执行bin/spark-sql或者bin/spark-shell,进入交互式命令行之后,使用SQL进行查询:spark.sql("show tables").show。
然后尝试创建表,插入数据。在退出客户端,进入spark-home的目录下,你就会发现生成了derby.log,spark-warehouse目录,以及metadata_db目录,这就是内部hive的目录结构。
此时进入spark-warehouse目录,你就会发现自己刚才创建的表以及表中数据。
2.外部的hive
如果使用外部的hive,需要做以下几步:
- 1.将hive/conf/hive-site.xml 拷贝到spark的conf目录下。
- 2.将Hive元数据库MySQL的驱动jar包拷贝到spark的jars目录下。
- 3.如果访问不到HDFS,将hdfs-site.xml,以及core-site.xml拷贝到spark的conf目录下。
- 4.启动spark-sql,然后执行select * from tablename。
3.运行Spark-SQL CLI
- 如果使用运行spark-sql cli连接方法,操作步骤如下:
- 1.将mysql的驱动放入jars/中。
- 2.将hive-site.xml文件放入conf/中。
- 3.运行bin/目录下的spark-sql.cmd 或者打开cmd在D:\spark\spark-0.0-bin-hadoop3.2\bin当中直接运行spark-sql。
4.运行Spark beeline
如果使用运行spark beeline连接方法,具体步骤如下:
1.将hive-site.xml拷贝到spark-home/conf目录下
2.元数据库MySQL驱动拷贝到对应的spark-home/jars。
3.如果访问不到HDFS,将hdfs-site.xml和core-site.xml拷贝到spark-home/conf目录下
4.启动Thrift Server
sbin/start-thriftserver.sh
5.使用beeline客户端使用jdbc的方式去连接thriftserver
Beeline -u jdbc:hive2://node01:10000 -n root
5.代码操作hive
- 导入依赖。
<**dependency**>
<**groupId**>org.apache.spark</**groupId**>
<**artifactId**>spark-hive_2.12</**artifactId**>
<**version**>3.0.0</**version**>
</**dependency**>
<**dependency**>
<**groupId**>org.apache.hive</**groupId**>
<**artifactId**>hive-exec</**artifactId**>
<**version**>2.3.3</**version**></**dependency**>
将hive-site.xml 文件拷贝到项目的 resources 目录中。
代码实现。
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("hive")
**val **spark:SparkSession = SparkSession.builder()
.enableHiveSupport()
.config(sparkConf)
.getOrCreate()
spark.sql("show databases").show()
spark.sql("create database spark_sql")
spark.sql("show databases").show()
版权归原作者 中發白白白 所有, 如有侵权,请联系我们删除。