文档章节

hive-metastore

十一月不远
 十一月不远
发布于 2014/10/11 11:55
字数 690
阅读 125
收藏 0

#Embedded Metastore#

嵌入式metastore主要用于单元测试。同一时刻只有一个进程可以连接到metastore,所以它不是一个事实上的解决方案,但是可以很好的用于单元测试。

Derby是嵌入式metastore默认的数据库。

<table border="1"> <thead> <tr> <td>Config Param</td> <td>Config Value</td> <td>Comment</td> </tr> </thead> <tbody> <tr> <td>javax.jdo.option.ConnectionURL</td> <td>jdbc:derby:;databaseName=../build/test/junit_metastore_db;create=true</td> <td>Derby数据库位置在hive/trunk/build...</td> </tr> <tr> <td>javax.jdo.option.ConnectionDriverName</td> <td>org.apache.derby.jdbc.EmbeddedDriver</td> <td>Derby嵌入式JDBC驱动类</td> </tr> <tr> <td>hive.metastore.uris</td> <td>本地metastore不需要设置</td> <td>&lt; </td> </tr> <tr> <td>hive.metastore.local</td> <td>true</td> <td>嵌入式是本地的</td> </tr> <tr> <td>hive.metastore.warehouse.dir</td> <td>file://${user.dir}/../build/ql/test/data/warehouse</td> <td>单元测试数据在你本地磁盘上的这个位置</td> </tr> </tbody> </table>

If you want to run Derby as a network server so the metastore can be accessed from multiple nodes, see Hive Using Derby in Server Mode.

#Local Metastore#

在本地metastore设置中,每一个Hive客户端将会打开一个到datastore的连接并且在其上执行SQL查询。下面的配置将在一个MySQL服务器建立一个metastore。Make sure that the server is accessible from the machines where Hive queries are executed since this is a local store,并且确保JDBC客户端包在Hive客户端的classpath下。

<table border="1"> <thead> <tr> <td>Config Param</td> <td>Config Value</td> <td>Comment</td> </tr> </thead> <tbody> <tr> <td>javax.jdo.option.ConnectionURL</td> <td>jdbc:mysql://&lt; host name>/&lt; database name>?createDatabaseIfNotExist=true</td> <td>metastore存储在MySQL服务器</td> </tr> <tr> <td>javax.jdo.option.ConnectionDriverName</td> <td>com.mysql.jdbc.Driver</td> <td>MySQL JDBC驱动类</td> </tr> <tr> <td>javax.jdo.option.ConnectionUserName</td> <td>user name</td> <td>连接MySQL服务器的用户名</td> </tr> <tr> <td>javax.jdo.option.ConnectionPassword</td> <td>&lt; password&lt; </td> <td>连接到MySQL服务器的密码</td> </tr> <tr> <td>hive.metastore.uris</td> <td>本地metastore不需要设置</td> <td>&lt; </td> </tr> <tr> <td>hive.metastore.local</td> <td>true</td> <td>这里是本地存储</td> </tr> <tr> <td>hive.metastore.warehouse.dir</td> <td>&lt; base hdfs path>&lt; </td> <td>Hive表的默认位置</td> </tr> </tbody> </table>

#Remote Metastore#

在远程metastore设置中,所有Hive客户端将创建一个到metastore服务器的连接,他们轮流查询datastore(例子中是MySQL)得到metastore。Metastore服务器和客户端通过Thrift协议通信。从Hive0.5.0开始,你可以通过执行下面的命令启动一个Thrift服务:

<pre> hive --service metastore </pre>

在Hive 0.5.0之前的版本中,反而需要通过直接执行Java来运行一个Thrift服务。

<pre> $JAVA_HOME/bin/java -Xmx1024m -Dlog4j.configuration=file://$HIVE_HOME/conf/hms-log4j.properties -Djava.library.path=$HADOOP_HOME/lib/native/Linux-amd64-64/ -cp $CLASSPATH org.apache.hadoop.hive.metastore.HiveMetaStore </pre>

如果你直接执行Java ,JAVA_HOME,HIVE_HOME,HADOOP_HOME 必须设置正确,CLASSPATH必须包括Hadoop,Hive(lib and auxlib)和Java jars。

##服务端配置参数##

<table border="1"> <thead> <tr> <td>Config Param</td> <td>Config Value</td> <td>Comment</td> </tr> </thead> <tbody> <tr> <td>javax.jdo.option.ConnectionURL</td> <td>jdbc:mysql://&lt; host name>/&lt; database name>?createDatabaseIfNotExist=true</td> <td>metastore存储在MySQL服务器</td> </tr> <tr> <td>javax.jdo.option.ConnectionDriverName</td> <td>com.mysql.jdbc.Driver</td> <td>MySQL JDBC驱动类</td> </tr> <tr> <td>javax.jdo.option.ConnectionUserName</td> <td>user name</td> <td>连接MySQL服务器的用户名</td> </tr> <tr> <td>javax.jdo.option.ConnectionPassword</td> <td>&lt; password&lt; </td> <td>连接到MySQL服务器的密码</td> </tr> <tr> <td>hive.metastore.warehouse.dir</td> <td>&lt; base hdfs path>&lt; </td> <td>Hive表的默认位置</td> </tr> </tbody> </table>

##客户端配置参数##

<table border="1"> <thead> <tr> <td>Config Param</td> <td>Config Value</td> <td>Comment</td> </tr> </thead> <tbody> <tr> <td>hive.metastore.uris</td> <td>thrift://&lt;hostname>:&lt;port></td> <td>Thrift metastore 服务的host和port </td> </tr> <tr> <td>hive.metastore.local</td> <td>false</td> <td>This is local store. Note: This is no longer needed as of Hive 0.10. Setting hive.metastore.uris is sufficient.</td> </tr> <tr> <td>hive.metastore.warehouse.dir</td> <td>&lt; base hdfs path>&lt; </td> <td>Hive表的默认位置</td> </tr> </tbody> </table>

如果你使用MySQL作为metadata的datastore,在启动Hive 客户端或者HiveMetaStore服务之前将MySQL client 包将在HIVE_HOME/lib下。

要改变metastore的端口,使用下面的hive命令:

<pre> hive --service metastore -p &lt; port_num> </pre>

© 著作权归作者所有

十一月不远

十一月不远

粉丝 39
博文 78
码字总数 61436
作品 1
海淀
程序员
私信 提问
Hive MetaStore的启动debug命令

终于可以debug MetaStore了。 debug的命令如下: jdb org.apache.hadoop.hive.metastore.HiveMetaStore stop in org.apache.hadoop.hive.metastore.HiveMetaStore.main stop in org.apache.......

强子哥哥
2016/03/17
297
0
Hive Server的启动debug命令

CLI到了这一步就需要去连接Hive Server了,所以现在开始转向研究Hive Server的启动过程。 ======================================================= 先看shell里怎么启动Hive Server 那么启...

强子哥哥
2016/03/15
360
0
Hive远程模式安装(1.00)

hiveserver2和metastore分离部署,元数据存储采用mysql,mysql与metastore分离部署。 mysql: 部署在ctrl节点 hiveserver2: 部署在ctrl和data01节点 metastore: 部署在data02和data03节点 be...

phacks
2016/09/11
46
0
Hive MetaStore 配置

官方介绍一:https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin metastore的ER图:https://issues.apache.org/jira/secure/attachment/12471108/HiveMetaStore......

枯藤KT
2016/09/20
60
0
hive系列之懵懂

大数据时代的技术hive:hive介绍  首先我们要知道hive到底是做什么的。下面这几段文字很好的描述了hive的特性:   1.hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一...

空_明
2013/12/04
249
0

没有更多内容

加载失败,请刷新页面

加载更多

spring-boot-maven-plugin not found的解决方案。

通过IDE创建一个springboot项目, <plugin> <groupId>org.springframework.boot</groupId>//这行红色 <artifactId>spring-boot-maven-plugin</artifactId>//这行红色</plugin> 提示sprin......

一片云里的天空
今天
52
0
OSChina 周三乱弹 —— 我可能是个憨憨

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @宇辰OSC :分享Hare Je的单曲《Alan Walker-Faded(Hare Je remix)》: #今日歌曲推荐# 可以放松大脑的一首纯音乐 《Alan Walker-Faded(Har...

小小编辑
今天
99
0
搞定SpringBoot多数据源(3):参数化变更源

春节将至,今天放假了,在此祝小伙伴们新春大吉,身体健康,思路清晰,永远无BUG! 一句话概括:参数化变更源意思是根据参数动态添加数据源以及切换数据源,解决不确定数据源的问题。 1. 引言...

mason技术记录
昨天
99
0
sql 基础知识

sql 基础知识 不要极至最求一条sql语句搞定一切,可合理拆分为多条语句 1. sql 变量定义与赋值 Sql 语句中,直接在SELECT使用@定义一个变量,如:[@a](https://my.oschina.net/a8856225a)。 ...

DrChenXX
昨天
57
0
MacOSX 安装 TensorFlow

TensorFlow是一个端到端开源机器学习平台。它拥有一个包含各种工具、库和社区资源的全面灵活生态系统,可以让研究人员推动机器学习领域的先进技术的。 准备 安装 Anaconda TensorFlow 安装的...

叉叉敌
昨天
79
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部