hive三种元数据存储方式
hive本身不存储数据,借助hdfs存储数据,hive和关系型数据库一样是有表结构的,这些信息hive也存储在第三方软件中,如derby、mysql。
根据元数据的存储方式,hive的部署可以分为三种:
一,local模式
采用内置的derby数据库存储元数据,这种方式只能有一个客户端访问hive,多个客户访问会报错,适合开发测试。
hive服务和metastore服务运行在同一个进程中,derby服务也运行在该进程中。
配置hive-site.xml:
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:derby:;databaseName=metastore_db;create=true</value><description>JDBC connect string for a JDBC metastore</description>
</property><property><name>javax.jdo.option.ConnectionDriverName</name><value>org.apache.derby.jdbc.EmbeddedDriver</value><description>Driver class name for a JDBC metastore</description>
</property><property><name>javax.jdo.option.ConnectionUserName</name><value>APP</value><description>username to use against metastore database</description>
</property><property><name>javax.jdo.option.ConnectionPassword</name><value>mine</value><description>password to use against metastore database</description>
</property><property><name>hive.metastore.warehouse.dir</name><value>file:///Users/micmiu/tmp/hive/warehouse</value><description>unit test data goes in here on your local filesystem</description>
</property>
执行初始化命令:
schematool -dbType derby -initSchema
查看初始化后的信息:
schematool -dbType derby -info
二,本地模式
使用mysql存储元数据。
hive服务和metastore服务运行在同一个进程中,mysql是单独的进程,可以在同一台机器上,也可以在远程机器上。
该模式配置hive-site.xml如下:
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://127.0.0.1:3306/hivedb?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&useSSL=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>hive</value><description>username to use against metastore database</description>
</property><property><name>javax.jdo.option.ConnectionPassword</name><value>micmiu</value><description>password to use against metastore database</description>
</property><property><name>hive.metastore.warehouse.dir</name><!-- base hdfs path --><value>/user/hive/warehouse</value><description>location of default database for the warehouse</description>
需要把mysql的驱动包copy到目录 <HIVE_HOME>/lib 中
如果是第一次需要执行初始化命令:schematool -dbType mysql -initSchema
三,远程模式
使用mysql存储元数据,客户端不直接访问mysql,而是通过metaserver元数据服务访问MySQL,元数据服务允许并发访问,生产环境都是这种模式。
这种存储方式需要在远端服务器运行一个mysql服务器,并且需要在Hive服务器启动meta服务。
安装mysql的服务器为slave1
安装hive sevrver服务器为master
<configuration><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value>
</property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://slave1:3306/hive_remote?createDatabaseIfNotExist=true</value>
</property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value>
</property><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value>
</property><property><name>javax.jdo.option.ConnectionPassword</name><value>password</value>
</property><property><name>hive.metastore.local</name> #模式改成false,也就是使用远程模式,默认情况下是true,也就是使用本地模式<value>false</value>
</property><property><name>hive.metastore.uris</name><value>thrift://master:9083</value> #master为安装hive或者启动metastore服务的服务器地址
</property></configuration>
上面把客户端和服务端配置在一起,生产环境中,通常客户端和服务端是分开的,配置也要分开。
服务端配置:
<configuration><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value>
</property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://slave1:3306/hive_remote?createDatabaseIfNotExist=true</value>
</property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value>
</property><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value>
</property><property><name>javax.jdo.option.ConnectionPassword</name><value>password</value>
</property>
</configuration>
客户端配置:
<configuration><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value>
</property>
<property><name>hive.metastore.local</name> #模式改成false,也就是使用远程模式,默认情况下是true,也就是使用本地模式<value>false</value>
</property><property><name>hive.metastore.uris</name><value>thrift://master:9083</value> #master为安装hive或者启动metastore服务的服务器地址
</property></configuration>
需要把mysql的驱动包copy到目录 <HIVE_HOME>/lib 中
如果是第一次需要执行初始化命令:
schematool -dbType mysql -initSchema
hive metastore 服务端启动命令:
hive --service metastore -p <port_num>
如果不加端口默认启动:
hive --service metastore
,则默认监听端口是:9083 ,注意客户端中的端口配置需要和启动监听的端口一致。服务端启动正常后,客户端就可以执行hive操作了。如果要使用jdbc的方式连接,需要在服务器启动hiveserver2服务,该服务或者metastore服务都是使用thrift协议,监听10000端口。
启动hiveserver2:
hive --service hiveserver2 &
或者hiveservre2 &
或者nohup hiveserver2 1> xxx.log 2> xxx_err.log &
四,总结
远程的mysql并不能称之为“远程模式”,是否远程指的是metastore和hive服务是否在同一进程内,换句话说,“远”指的是metastore和hive服务离得“远”。
hive三种元数据存储方式相关推荐
- asp.net session 介绍一三种Session存储方式
asp.net session 介绍一三种Session存储方式 www.firnow.com 时间:2009-03-04 作者:匿名 编辑:sky 点击: 1478 [评论] 对于asp.net的程 ...
- DAS、SAN和NAS三种服务器存储方式
一.存储的分类 根据服务器类型分为:封闭系统的存储和开放系统的存储, 内置存储 外挂存储 外挂存储根据连接的方式分为: 网络接入存储(Network-Attached Storage,简称NAS) ...
- 前端三种本地存储方式+indexedDB浏览器数据库存储
1.cookie存储: 特征:1.不同的浏览器存放的cookie位置不一样,也是不能通用的.2.cookie的存储是以域名形式进行区分的,不同的域下存储的cookie是独立的.3.我们可以设置cook ...
- 数据存储方式有哪些?这3种数据存储方式了解吗?
数据存储具有很强的现实意义,只有采取合理的数据存储方式,才能够有利于数据的管理.检索等.为增进大家对数据存储方式的认识,本文将对三种数据存储方式予以介绍.如果你对数据存储方式具有兴趣,不妨继续往下阅读 ...
- Hive的三种建表方式
Hive的三种建表方式 1.直接建表法: 2.抽取(as) 建表: 3.like建表 1.直接建表法: create table movies (uid string,iid string,score ...
- lvs的调度算法有几种_LVS:三种负载均衡方式比较
1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很 ...
- LVS:三种负载均衡方式比较+另三种负载均衡方式
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- LVS:三种负载均衡方式比较
1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具 ...
- LVS:三种负载均衡方式与八种均衡算法
1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很 ...
最新文章
- 微生物样本取样及微生物基因组DNA提取建议
- 剑指offer:字符流中第一个不重复的字符
- git如何利用分支进行多人开发
- Django框架(19.Django中获取url的参数(位置参数以及关键字参数))
- 10 操作系统第二章 进程管理 死锁、死锁的处理策略 银行家算法
- 了不起的女子力:美妆消费蓝海与趋势赛道
- AOSP6.0.1 launcher3入门篇-解析DeviceProject.java及相关文件
- 微课|玩转Python轻松过二级(1.3节):编码规范与代码优化建议1
- Shell基本应用(学习笔记)
- C语言排序方法------堆排序
- MDT2010学习(八),MDT结合WDS部署Win7 x86企业版
- 程序员养猫,并不是用来撸的!
- 智慧小区智能物业管理系统综合解决方案
- 微信小程序自定义导航栏样式
- Cadence PSpice 仿真3: 电容器充放电瞬态仿真图文教程
- unity交通仿真_自动驾驶仿真该怎么玩
- Linux与数据结构 2019-2-1
- 易基因|RNA m7G甲基化测序(m7G-MeRIP-seq)
- 【红包雨】活动红包雨实现逻辑(ionic+springboot)
- ibm服务器怎么安装win7系统安装,thinkpad如何安装win7系统