返回顶部
首页 > 资讯 > 数据库 > spark-sql-04-on_hive
  • 129
分享到

spark-sql-04-on_hive

摘要

      设置metastore 机器: ke01、ke02、ke03、ke04 ke03 为元数据库 ke01、ke02、ke04 连接到元数据库 、 Hive-metastore搭建 ke03: hiv


	spark-sql-04-on_hive
[数据库教程]

技术图片

 

 

 

设置metastore

机器: ke01、ke02、ke03、ke04

Hive-metastore搭建

ke03:




        hive.metastore.warehouse.dir
        /user/hive/warehouse


        javax.jdo.option.ConnectionURL
        jdbc:Mysql://ke01:3306/hive?createDatabaseIfNotExist=true


        javax.jdo.option.ConnectionDriverName
        com.mysql.jdbc.Driver


        javax.jdo.option.ConnectionUserName
        root


        javax.jdo.option.ConnectionPassWord
        aa123456


    hive.metastore.schema.verification
    false
 

    datanucleus.schema.autoCreateAll
    true
 




ke01.02.04:

 
        hive.metastore.uris
        thrift://ke03:9083
 

 

启动

ke03:

hive --help // 技巧
hive --service --help //技巧
启动
hive --service metastore


ke04: hive = hive --service cli 连接hive   
// CLI指的是 command-line interface






测试:
create table test01( name string );


原理: ke04 通过command-line interfacesql写进去,动用元数据,将建表语句通知ke03:metastore 最终存入mysql
mysql -> hive.TBL 有刚创建的表:test01

 

 

启动可能遇到的异常

MetaException(message:Version infORMation not found in metastore. )



配置:

    hive.metastore.schema.verification
    false
 

    datanucleus.schema.autoCreateAll
    true
 

 

 

一般公司可能禁止使用命令行方式直接操作hive,使用hiveservice2, 只要能和ke03这台机器tcp通信,hiveservice2就可以连接

ke02: hive --service hiveserver2
beeline 
!connect jdbc:hive2://ke02:10000
root  密码随机

测试: show databases

 

总结

连接hive方式
1. hive --service cli 需要本地配置hive.metastore.uris
2. beeline  !connect jdbc:hive2://ke02:10000  只要能和hiveserver2通讯即可

 

 

 

spark连接 hive-metastore 配置:

.config("hive.metastore.uris", "thrift://ke03:9083")
   val session = SparkSession.builder()
      .master("local")
      .appName("spark on hive")
      .config("hive.metastore.uris", "thrift://ke03:9083")
      .enableHiveSupport() // 开启hive支持
      .getOrCreate()

    val sc = session.sparkContext
    sc.setLogLevel("ERROR")
    session.catalog.listTables().show()
    


    val dataFrame = session.sql("show tables ")
    dataFrame.show()

    

   // session.sql("create table test02(id int)")
    // 数据存入hdfs,配置文件需要加入HDFS地址,resources目录下加入core-site.xml hdfs-site.xml
    session.sql("insert into test02 values (3),(4),(5)")


      import session.implicits._
    val df = List(
      "小柯",
      "张三",
      "lisi").toDF("name")
    df.createTempView("test03")


    

    session.catalog.listTables().show()
    session.sql("show tables ").show()

    

    
    // test03写入到了hdfs中,临时表变成了持久表
    df.write.saveAsTable("test03")

 

注意

  • spark数据写入到HDFS,需要配置写入HDFS地址
  • core-site.xml  -->  hdfs://mycluster  --> hdfs-site.xml --> dfs.ha.namenodes.mycluster -->  nn1,nn2  -->  dfs.namenode.rpc-address.mycluster.nn1 / nn2  --> ke01:8020 / ke02:802  --> dfs.namenode.http-address.mycluster.nn1 / nn2  -->  ke01:50070 /ke02:50070

表test03写入到了HDFS:

技术图片

 

spark-sql-04-on_hive

原文地址:https://www.cnblogs.com/bigdata-familyMeals/p/14521231.html

您可能感兴趣的文档:

--结束END--

本文标题: spark-sql-04-on_hive

本文链接: https://lsjlt.com/news/8135.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作