SparkSQL整合Hive与启动HiveServer2

本文介绍了如何将SparkSQL与Hive整合,包括SparkSQL兼容Hive的特性、启动模式要求及整合步骤。此外,文章还详细阐述了如何启动HiveServer2,以及在过程中遇到的问题和解决办法,以便通过beeline或其他JDBC工具进行连接。
摘要由CSDN通过智能技术生成

一、Spark整合Hive:

①SparkSQL兼容Hive的源数据库、兼容Hive的自定义函数、兼容Hive的序列化和反序列化。

②可以用SparkSQL替代Hive或者将Hive的引擎由MapReduce换成SparkSQL。

③启动SparkSQL必须是client模式,不能是cluster模式;

启动SparkSQL时可以指定启动模式,错误示例如下:

bin/spark-sql --deploy-mode cluster --master spark://linux02:7077 --driver-class-path /jars/mysql-connector-java-5.1.49.jar

上面这么些会报错,如下:

Cluster deploy mode is not applicable to Spark SQL shell.

整合步骤如下:

1.安装MySQL并创建一个普通用户,并且授权:

(1)CREATE USER ‘hive’@’%’ IDENTIFIED BY ‘123456’;

注:

①%代表可以在任意ip地址访问,如果需要设置网段,%的位置换成192.168.xxx的样式即可。

②’hive’代表用户名是hive,也可以是任意名称(做到见名知意)

注意:

直接写会报下面的错误:(密码太简单)

	ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

(2)修改Mysql的密码安全级别和长度(生产环境不用修改):

	set global validate_password_policy=LOW;
	set global validate_password_length=6;

(3)指定用户spark对hivedb下的表有操作权限(对其他database没有权限)

	GRANT ALL PRIVILEGES ON hivedb.* TO 'hive'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
	FLUSH PRIVILEGES;

2.添加hive-site.xml配置文件

注:配置文件放在spark安装目录下的conf文件夹中。

配置文件如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for<
您可以按照以下步骤将 Hive 的配置文件 `hive-site.xml` 导入 SparkSQL : 1. 将 `hive-site.xml` 文件复制到 Spark 的配置目录下。默认情况下,Spark 的配置目录是 `$SPARK_HOME/conf`,其 `$SPARK_HOME` 是 Spark 的安装路径。 2. 在 SparkSQL 创建一个 `SparkSession` 对象,并在创建之前设置一些相关的配置项。可以参考下面的示例代码: ```scala import org.apache.spark.sql.SparkSession val spark = SparkSession .builder() .appName("SparkSQL with Hive integration") .config("spark.sql.warehouse.dir", "/user/hive/warehouse") // 设置 Hive 仓库目录 .config("hive.metastore.uris", "thrift://localhost:9083") // 设置 Hive Metastore 的连接地址 .enableHiveSupport() // 启用 Hive 支持 .getOrCreate() ``` 在上面的示例,您需要根据您的实际环境修改 `spark.sql.warehouse.dir` 和 `hive.metastore.uris` 的值。`spark.sql.warehouse.dir` 是 Hive 仓库目录的路径,`hive.metastore.uris` 是 Hive Metastore 的连接地址。 3. 使用 `spark.sql` 对象执行 Hive 相关的操作。例如,您可以执行 SQL 查询、创建表等。下面是一个简单的示例: ```scala spark.sql("SELECT * FROM my_table").show() ``` 上述代码将执行一条查询语句,从名为 `my_table` 的 Hive检索数据,并将结果显示在控制台上。 请注意,您还需要确保 SparkHive 的版本兼容,并且 Hive Metastore 服务正在运行。另外,如果您的 Spark 集群和 Hive Metastore 服务部署在不同的机器上,您需要相应地修改 `hive.metastore.uris` 的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值