2019独角兽企业重金招聘Python工程师标准>>> hot3.png

#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>

转载于:https://my.oschina.net/kingwjb/blog/326741

hive-metastore相关推荐

  1. Hive metastore三种配置方式

    Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储.远端存储比较适合生产环境.Hive官方wiki详细介绍了这三种方式,链接为:Hive Metastore. 一.本地d ...

  2. Hive Metastore 连接报错

    背景 项目中需要通过一些自定义的组件来操控hive的元数据,于是使用了remote方式来存储hive元数据,使用一个服务后台作为gateway,由它来控制hive元数据. 现象 在windows上连接 ...

  3. hivemetastore java,hive启动报错 hive.metastore.HiveMetaStoreClient

    之前用的是hive-0.90 ,想与hbase整合下,所以更换hive为0.13.1版本,因为偷懒将原来的conf配置文件拷贝, 结果出现如下错误,hive.metastore.local,hive. ...

  4. Hive MetaStore 在快手遇到的挑战与优化

    分享嘉宾:王磊@快手 编辑整理:Frank 导读:快手基于Hive构建数据仓库,并把Hive的元数据信息存储在MySql中,随着业务发展和数据增长,一方面对于计算引擎提出了更高的要求,同时也给Hive ...

  5. 报错:org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.

    报错环境: CDH中集成的hive服务,启动报错,所以初始化一下元数据. 配置文件:/etc/hive/conf hive-site.xml 命令目录:/opt/cloudera/parcels/CD ...

  6. org.apache.hadoop.hive.metastore.api.SerDeInfo; local class incompatible

    完整報錯如下: org.apache.flink.runtime.JobException: Recovery is suppressed by NoRestartBackoffTimeStrateg ...

  7. 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 ...

  8. 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 ...

  9. org.apache.hadoop.hive.metastore.api.InvalidObjectException: Role public already exists.

    启动metastore(调试模式)的时候碰到这个异常: org.apache.hadoop.hive.metastore.api.InvalidObjectException: Role public ...

  10. WARN HiveConf: HiveConf of name hive.metastore.local does not exist注意事项

    WARN HiveConf: HiveConf of name hive.metastore.local does not exist 解决方案是: <property> <name ...

最新文章

  1. 实现对学生表的删除操作
  2. Hadoop中RPC协议小例子报错java.lang.reflect.UndeclaredThrowableException解决方法
  3. oracle client中对 TNSNAMES.ORA的研究
  4. progressdialog的setProgress没反应
  5. 拉取远程分支到本地分支_保险公司在本地没有分支机构可以投保吗?异地投保会影响理赔吗?...
  6. java鼠标左键按下后拖动实现多选_鼠标拖拽多选功能
  7. python的2种字符串格式化输出
  8. mysql视频教程特密码_分享一个MySQL 密码增强插件
  9. CocoaChina2013开发者大会演讲稿-主会场-陈昊芝
  10. bat 调用class文件_Logback 配置文件这么写,TPS 提高 10 倍!
  11. halcon常用代码(持续更新)
  12. python正则表达式re模块_详解Python正则表达式re模块
  13. Linux之centos7 VMware安装教程
  14. LPC2478时钟模块详解
  15. 魔兽世界暴雪隐藏密集
  16. Spring 整合Hibernate 开发实例
  17. 2013蓝桥杯 CC++程序设计本科B组 第39级台阶
  18. HTML+CSS实现网易云音乐首页(手机版)
  19. 勇者斗恶龙(The Dragon of Loowater, UVa 11292)
  20. 什么是广告广告联盟?

热门文章

  1. python如何调用阿里云接口_阿里云 API调用实践(python语言)
  2. android确定工作日,如何确定某个月的最后一个工作日?
  3. mysql 左表为null_sql left join count 左表为空表的时候出现空行
  4. oracle查询属主下对象,SQL优化
  5. 快速解决Git最常见问题
  6. 计算机vfp程序设计题,2012年计算机级VFP程序设计基础习题及答案.doc
  7. 中煤 php面试,中煤总部笔试面试经验
  8. signature=2d36ad490c0d9e19a6dc808d43a34033,Matemàtica discreta : problemes resolts
  9. php select where,PHP where语句
  10. orcale建表,创建字段id使其自增