0


Spark-SQL连接Hive 的五种方法

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. 1.将hive/conf/hive-site.xml 拷贝到spark的conf目录下。
  2. 2.将Hive元数据库MySQL的驱动jar包拷贝到spark的jars目录下。
  3. 3.如果访问不到HDFS,将hdfs-site.xml,以及core-site.xml拷贝到spark的conf目录下。
  4. 4.启动spark-sql,然后执行select * from tablename。

3.运行Spark-SQL CLI

  1. 如果使用运行spark-sql cli连接方法,操作步骤如下:
  2. 1.将mysql的驱动放入jars/中。
  3. 2.将hive-site.xml文件放入conf/中。
  4. 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

  1. 导入依赖。

<**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**>
  1. 将hive-site.xml 文件拷贝到项目的 resources 目录中。

  2. 代码实现。

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()

标签: hive spark sql

本文转载自: https://blog.csdn.net/m0_73734232/article/details/128273959
版权归原作者 中發白白白 所有, 如有侵权,请联系我们删除。

“Spark-SQL连接Hive 的五种方法”的评论:

还没有评论