Spark实战(十一)Spark2.x集成Hive

4 篇文章 0 订阅

一、Hive配置

(一)、简介

   一般的公司都会有自己的数据仓库,而大多数都选择的Hive数据仓库,总所周知hive默认使用MapReduce来进行数据操作,MapReduce在计算过程中会涉及数量巨大的网络传输,这需要耗费大量的时间,在计算过程中会反复读写磁盘,极其耗时,因此使用spark来计算可以提高效率,但是之前有很多数据都是通过hive来操作,好在spark可以无缝集成hive,使用hive中的数据。

(二)、Hive存储Metastore的三种方式

   hive中通过使用Metastore来存储所创建的数据库表等信息,而元数据是保存在数据库中,如Mysql、derBy等
   Metastore可以作为客户端读取hive数据的桥梁,也就是客户端连接上Metastore服务,然后Metastore服务再去连接Mysql、DerBy等数据库来存取元数据,通过Metastore服务可以多个客户端同时进行连接,而且客户端可以不用知道数据库的用户名和密码,比直接获取数据库更加安全。
   Metastore有三种方式:内嵌DerBy方式、Local方式、remote方式。

1.内嵌DerBy方式

   这种方式是hive的默认方式,配置简单,但是一次只能连接一个客户端,也就是当你你启动一个hive服务会内嵌一个metastore服务,如果再去启动一个便又会内嵌一个metastore服务,并不是说你的客户端只能启动一个hive,是能启动多个,但是每个都有metastore,浪费资源。这种方式多用于测试数据,生产环境上不建议使用。

执行初始化命令:schematool -dbType derby -initSchema

查看初始化后的信息: schematool -dbType derby -info	

2.Local方式

   这种方式与内嵌的区别就是不再使用DerBy来存储介质,而是使用如Mysql数据库来保存,在这种模式下hive与Metastore服务运行在同一个进程中,mysql可以与hive在同一机器上也可以在其他机器上,这种方式可以多个用户连接到同一个数据库上,也就是用户通过Mysql用户密码来进行访问,hive-site.xml配置如下:

<property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://mini2:3306/hive?createDatabaseIfNotExist=true</value>
        <description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
        <description>Driver class name for a JDBC metastore</description>
</property>

<property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        <description>username to use against metastore database</description>
</property>

<property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456you</value>
        <description>password to use against metastore database</description>
</property>

3.remote方式

   这种方式中hive服务与metastore不在同一进程中,可以是不同机器也可以是相同机器,通过hive.metastore.uris指定metastore服务器URL,同时需要单独启动metastore服务,每个客户端在配置文件中配置连接到metastore服务,客户端通过beeline来连接,这种方式下不需要知道数据库的密码。
   如果单单是连接远程mysql不能称之为远程方式,需要单独启动metastore服务,配置如下:

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

   metastore服务启动命令如下:

	hive --service metastore &

   如果要在spark中集成hive,三种方式都需要将hive-site.xml拷贝至spark/conf目录下,如果涉及到数据库操作,还需要将数据库驱动包拷贝到lib中,或者在执行的时候同–jars指定

二、Spark服务启动

(一)、直接运行spark-sql或者spark-shell方式

   这种方式相当于每执行一次命令就会起一个spark任务,即spark-shell、spark-sql都是一个spark application

(二)、thriftserver

   thriftserver, 不管你启动多少个客户端(beeline/code),永远都是一个spark application解决了一个数据共享的问题,多个客户端可以共享数据;启动命令如下:

./start-thriftserver.sh  \
--master local[2] \
--jars ~/software/mysql-connector-java-5.1.27-bin.jar  \
--hiveconf hive.server2.thrift.port=14000 

   beeline连接指令如下,其中的端口是thriftserver指定的端口,默认为10000

beeline -u jdbc:hive2://localhost:14000 -n hadoop
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据分析职业是一个多金的职业,数据分析职位是一个金饭碗的职位,前景美好,但是要全面掌握大数据分析技术,非常困难,大部分学员的痛点是不能快速找到入门要点,精准快速上手。本课程采用项目驱动的方式,以Spark3和Clickhouse技术为突破口,带领学员快速入门Spark3+Clickhouse数据分析,促使学员成为一名高效且优秀的大数据分析人才。学员通过本课程的学习,不仅可以掌握使用Python3进行Spark3数据分析,还会掌握利用Scala/java进行Spark数据分析,多语言并进,力求全面掌握;另外通过项目驱动,掌握Spark框架的精髓,教导Spark源码查看的技巧;会学到Spark性能优化的核心要点,成为企业急缺的数据分析人才;更会通过Clickhouse和Spark搭建OLAP引擎,使学员对大数据生态圈有一个更加全面的认识和能力的综合提升。真实的数据分析项目,学完即可拿来作为自己的项目经验,增加面试谈薪筹码。课程涉及内容:Ø  Spark内核原理(RDD、DataFrame、Dataset、Structed Stream、SparkML、SparkSQL)Ø  Spark离线数据分析(千万简历数据分析、雪花模型离线数仓构建)Ø  Spark特征处理及模型预测Ø  Spark实时数据分析(Structed Stream)原理及实战Ø  Spark+Hive构建离线数据仓库(数仓概念ODS/DWD/DWS/ADS)Ø  Clickhouse核心原理及实战Ø  Clickhouse engine详解Ø  Spark向Clickhouse导入简历数据,进行数据聚合分析Ø  catboost训练房价预测机器学习模型Ø  基于Clickhouse构建机器学习模型利用SQL进行房价预测Ø  Clickhouse集群监控,Nginx反向代理Grafana+Prometheus+Clickhouse+node_exporterØ  Spark性能优化Ø  Spark工程师面试宝典       课程组件:集群监控:福利:本课程凡是消费满359的学员,一律送出价值109元的实体书籍.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值