Spark---Spark连接Hive

这篇具有很好参考价值的文章主要介绍了Spark---Spark连接Hive。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spark连接Hive



Hive

Apache Hive 是 Hadoop 上的 SQL 引擎,Spark SQL 编译时可以包含 Hive 支持,也可以不包含。包含 Hive 支持的 Spark SQL 可以支持 Hive 表访问、UDF (用户自定义函数)以及 Hive 查询语言(HiveQL/HQL)等。需要强调的一点是,如果要在Spark SQL 中包含Hive 的库,并不需要事先安装 Hive。一般来说,最好还是在编译 Spark SQL 时引入 Hive支持,这样就可以使用这些特性了。如果你下载的是二进制版本的 Spark,它应该已经在编译时添加了 Hive 支持。
若要把 Spark SQL 连接到一个部署好的 Hive 上,你必须把 hive-site.xml 复制到Spark 的配置文件目录中($SPARK_HOME/conf)。即使没有部署好 Hive,Spark SQL 也可以运行。 需要注意的是,如果你没有部署好 Hive,Spark SQL 会在当前的工作目录中创建出自己的 Hive 元数据仓库,叫作 metastore_db。此外,如果你尝试使用 HiveQL 中的CREATE TABLE (并非 CREATE EXTERNAL TABLE)语句来创建表,这些表会被放在你默认的文件系统中的 /user/hive/warehouse 目录中(如果你的 classpath 中有配好的hdfs-site.xml,默认的文件系统就是 HDFS,否则就是本地文件系统)。
spark-shell 默认是 Hive 支持的;代码中是默认不支持的,需要手动指定(加一个参数即可)

配置

将hive下面的hive-site.xml拷贝到spark的conf目录下
并且添加配置,如果有请忽略

hive-site.xml

  <property>
     <name>hive.metastore.uris</name>
     <value>thrift://192.168.95.150:9083</value>
  </property>

spark连接hive unsupported hive metastore version (2.3.9). please set spark.s,Spark,hive,spark,大数据
将hive下面的jar包拷贝到spark的conf目录下

cp /opt/soft/hive312/lib/mysql-connector-java-8.0.29.jar ./
cp /opt/soft/hive312/lib/hive-beeline-3.1.2.jar ./
cp /opt/soft/hive312/lib/hive-cli-3.1.2.jar ./
cp /opt/soft/hive312/lib/hive-exec-3.1.2.jar ./
cp /opt/soft/hive312/lib/hive-jdbc-3.1.2.jar ./
cp /opt/soft/hive312/lib/hive-metastore-3.1.2.jar ./

启动hadoop

start-all.sh

启动hive

nohup hive --service metastore &
nohup hive --service hiveserver2 &

spark连接hive

添加依赖

 <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql_2.12</artifactId>
      <version>3.1.2</version>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-hive_2.12</artifactId>
      <version>3.1.2</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.29</version>
    </dependency>

代码

def main(args: Array[String]): Unit = {
    //环境配置
    val spark: SparkSession = SparkSession.builder().appName("sparkhive")
      .master("local[*]")
      .config("hive.metastore.uris", "thrift://192.168.95.150:9083")
      .enableHiveSupport()
      .getOrCreate()
    spark.sql("show databases").show()

    println("----------------------")
    val ecd: DataFrame = spark.table("shopping.ext_customer_details")
    //ecd.printSchema()
    ecd.show()
    import spark.implicits._
    import org.apache.spark.sql.functions._
    //统计每个国家有多少人
    val ecd2: Dataset[Row] = ecd.filter($"customer_id" =!= "customer_id")
    val usernumDF: DataFrame = ecd2.groupBy("country").agg(count("customer_id").as("num"))
    usernumDF.show()

    //保存到hive中名字为username,以追加方式
    usernumDF.write.mode(SaveMode.Append).saveAsTable("shopping.usernum")
    spark.close()
  }

spark连接hive unsupported hive metastore version (2.3.9). please set spark.s,Spark,hive,spark,大数据
spark连接hive unsupported hive metastore version (2.3.9). please set spark.s,Spark,hive,spark,大数据
spark连接hive unsupported hive metastore version (2.3.9). please set spark.s,Spark,hive,spark,大数据文章来源地址https://www.toymoban.com/news/detail-772918.html

到了这里,关于Spark---Spark连接Hive的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hive 架构及 metastore 功能简单介绍

    这两天在调研用 java 怎么能通过 hive metastore 将 hive 表中的数据读出来(不能用 hive2),最好是能直接支持 sql 查询。各种查跟尝试,最终确定这条路走不通。期间研究了下 hive 的内部架构,其实就是看了一遍官方文档。记录下怕忘了。 hive 中主要有两个组件 hive server2 和 hiv

    2024年02月11日
    浏览(39)
  • Hive的Metastore三种配置方式

    metastore 是 Hive 元数据的集中存放地。metastore 元数据存储主要体现在两个方面:服务和后台数据的存储。元数据包含用 Hive 创建的 database、table 等的元信息。元数据存储在关系型数据库中。如 Derby、MySQL 等。 客户端连接 metastore 服务,metastore 再去连接 MySQL 数据库来存取元数据

    2024年02月09日
    浏览(40)
  • hive 配置metastore hiveserver2服务开启

    hive-site.xml: hive-site.xml: hive-site.xml: 重启MetaStore服务: 启动hive服务: 启动后需要等待一段时间,jdbc才能连接上hive服务 使用beeline客户端验证是否可以连接:

    2024年02月03日
    浏览(39)
  • Spark-SQL连接Hive的五种方法

    若使用Spark内嵌的Hive,直接使用即可,什么都不需要做(在实际生产活动中,很少会使用这一模式) 步骤: 将Hive中conf/下的hive-site.xml拷贝到Spark的conf/目录下; 把Mysql的驱动copy到jars/目录下; 如果访问不到hdfs,则将core-site.xml和hdfs-site.xml拷贝到conf/目录下; 重启spark-shell;

    2024年02月16日
    浏览(41)
  • MySQL到TiDB:Hive Metastore横向扩展之路

    作者:vivo 互联网大数据团队 - Wang Zhiwen 本文介绍了vivo在大数据元数据服务横向扩展道路上的探索历程,由实际面临的问题出发,对当前主流的横向扩展方案进行了调研及对比测试,通过多方面对比数据择优选择TiDB方案。其次分享了整个扩展方案流程、实施遇到的问题及解决

    2024年02月07日
    浏览(39)
  • 访问 Hive 的元数据存储(MetaStore)的API方式

    访问 Hive 的元数据存储(MetaStore)的API方式 访问 Hive 的元数据存储(MetaStore)是通过 Hive 的 Thrift API 来实现的。Thrift 是一个跨语言的远程服务调用框架,它可以让不同编程语言之间进行跨语言的远程过程调用(RPC)。Hive 的元数据存储的 Thrift API 允许你通过编程语言(如 J

    2024年02月14日
    浏览(42)
  • 【运维】hive 高可用详解: Hive MetaStore HA、hive server HA原理详解;hive高可用实现

    Hive元数据存储在MetaStore中,包括表的定义、分区、表的属性等信息。 hive metastore 配置多台,可以避免单节点故障导致整个集群的hive client不可用。 原理如下: Active-active mode is not supported for Hive Metastore. Hence, there is one active instance of the Hive Metastore service at any given point in time.

    2024年02月02日
    浏览(39)
  • 关于Java连接Hive,Spark等服务的Kerberos工具类封装

    idea 本地配置,连接服务器;进行kerberos认证,连接hive、HDFS、Spark等服务注意事项: 本地idea连接Hadoop,需要在本地安装Hadoop的window工具 hadoop-3.1.1-winutils-master ,配置环境变量 配置hosts主机名映射 kerberos认证需要在idea工作目录所在的磁盘的根目录下创建对应的文件夹把keytab放

    2024年02月13日
    浏览(60)
  • Hive初始化异常:org.apache.hadoop.hive.metastore.HiveMetaException: 加载驱动程序大数据失败

    近年来,随着大数据技术的快速发展,越来越多的企业开始关注和运用大数据处理和分析。然而,在使用Hive进行大数据处理时,有时会遇到一些问题,比如在初始化过程中出现了加载驱动程序大数据失败的异常。本文将介绍这个异常的原因和解决方法,并提供相应的源代码示

    2024年02月04日
    浏览(39)
  • Hive初始化遇到的问题:org.apache.hadoop.hive.metastore.HiveMetaException: 失败加载驱动程序

    Hive初始化遇到的问题:org.apache.hadoop.hive.metastore.HiveMetaException: 失败加载驱动程序 在大数据领域,Hive是一个常用的数据仓库工具,它构建在Hadoop之上,提供了一种类似于SQL的查询语言,用于处理大规模的数据集。然而,有时在Hive的初始化过程中,可能会遇到一些错误。其中

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包