hive-metastore
2019独角兽企业重金招聘Python工程师标准>>>
#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>< </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://< host name>/< 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>< password< </td> <td>连接到MySQL服务器的密码</td> </tr> <tr> <td>hive.metastore.uris</td> <td>本地metastore不需要设置</td> <td>< </td> </tr> <tr> <td>hive.metastore.local</td> <td>true</td> <td>这里是本地存储</td> </tr> <tr> <td>hive.metastore.warehouse.dir</td> <td>< base hdfs path>< </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://< host name>/< 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>< password< </td> <td>连接到MySQL服务器的密码</td> </tr> <tr> <td>hive.metastore.warehouse.dir</td> <td>< base hdfs path>< </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://<hostname>:<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>< base hdfs path>< </td> <td>Hive表的默认位置</td> </tr> </tbody> </table>
如果你使用MySQL作为metadata的datastore,在启动Hive 客户端或者HiveMetaStore服务之前将MySQL client 包将在HIVE_HOME/lib下。
要改变metastore的端口,使用下面的hive命令:
<pre> hive --service metastore -p < port_num> </pre>
转载于:https://my.oschina.net/kingwjb/blog/326741
hive-metastore相关推荐
- Hive metastore三种配置方式
Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储.远端存储比较适合生产环境.Hive官方wiki详细介绍了这三种方式,链接为:Hive Metastore. 一.本地d ...
- Hive Metastore 连接报错
背景 项目中需要通过一些自定义的组件来操控hive的元数据,于是使用了remote方式来存储hive元数据,使用一个服务后台作为gateway,由它来控制hive元数据. 现象 在windows上连接 ...
- hivemetastore java,hive启动报错 hive.metastore.HiveMetaStoreClient
之前用的是hive-0.90 ,想与hbase整合下,所以更换hive为0.13.1版本,因为偷懒将原来的conf配置文件拷贝, 结果出现如下错误,hive.metastore.local,hive. ...
- Hive MetaStore 在快手遇到的挑战与优化
分享嘉宾:王磊@快手 编辑整理:Frank 导读:快手基于Hive构建数据仓库,并把Hive的元数据信息存储在MySql中,随着业务发展和数据增长,一方面对于计算引擎提出了更高的要求,同时也给Hive ...
- 报错:org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
报错环境: CDH中集成的hive服务,启动报错,所以初始化一下元数据. 配置文件:/etc/hive/conf hive-site.xml 命令目录:/opt/cloudera/parcels/CD ...
- org.apache.hadoop.hive.metastore.api.SerDeInfo; local class incompatible
完整報錯如下: org.apache.flink.runtime.JobException: Recovery is suppressed by NoRestartBackoffTimeStrateg ...
- org.apache.flink.table.catalog.exceptions.CatalogException: Failed to create Hive Metastore client
复现: $FLINK_HOME/bin/sql-client.sh embedded -d $FLINK_HOME/conf/flink-hive.yaml 完整报错如下: Exception in ...
- org.apache.hadoop.hive.metastore.api.MetaException: Get request failed :xxxx
报错复现如下: Flink SQL> create database testdb; [ERROR] Could not execute SQL statement. Reason: org.a ...
- org.apache.hadoop.hive.metastore.api.InvalidObjectException: Role public already exists.
启动metastore(调试模式)的时候碰到这个异常: org.apache.hadoop.hive.metastore.api.InvalidObjectException: Role public ...
- WARN HiveConf: HiveConf of name hive.metastore.local does not exist注意事项
WARN HiveConf: HiveConf of name hive.metastore.local does not exist 解决方案是: <property> <name ...
最新文章
- 实现对学生表的删除操作
- Hadoop中RPC协议小例子报错java.lang.reflect.UndeclaredThrowableException解决方法
- oracle client中对 TNSNAMES.ORA的研究
- progressdialog的setProgress没反应
- 拉取远程分支到本地分支_保险公司在本地没有分支机构可以投保吗?异地投保会影响理赔吗?...
- java鼠标左键按下后拖动实现多选_鼠标拖拽多选功能
- python的2种字符串格式化输出
- mysql视频教程特密码_分享一个MySQL 密码增强插件
- CocoaChina2013开发者大会演讲稿-主会场-陈昊芝
- bat 调用class文件_Logback 配置文件这么写,TPS 提高 10 倍!
- halcon常用代码(持续更新)
- python正则表达式re模块_详解Python正则表达式re模块
- Linux之centos7 VMware安装教程
- LPC2478时钟模块详解
- 魔兽世界暴雪隐藏密集
- Spring 整合Hibernate 开发实例
- 2013蓝桥杯 CC++程序设计本科B组 第39级台阶
- HTML+CSS实现网易云音乐首页(手机版)
- 勇者斗恶龙(The Dragon of Loowater, UVa 11292)
- 什么是广告广告联盟?
热门文章
- python如何调用阿里云接口_阿里云 API调用实践(python语言)
- android确定工作日,如何确定某个月的最后一个工作日?
- mysql 左表为null_sql left join count 左表为空表的时候出现空行
- oracle查询属主下对象,SQL优化
- 快速解决Git最常见问题
- 计算机vfp程序设计题,2012年计算机级VFP程序设计基础习题及答案.doc
- 中煤 php面试,中煤总部笔试面试经验
- signature=2d36ad490c0d9e19a6dc808d43a34033,Matemàtica discreta : problemes resolts
- php select where,PHP where语句
- orcale建表,创建字段id使其自增