Hive metastore三种配置方式

本文转载至:http://blog.csdn.net/reesun/article/details/8556078

目录(?)[-]

  1. 一本地derby
  2. 二本地mysql
  3. 三远端mysql
    1. 1服务端配置文件
    2. 2客户端配置文件

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

一、本地derby

这种方式是最简单的存储方式,只需要在hive-site.xml做如下配置便可

[html] view plaincopyprint?

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <property>
  5. <name>javax.jdo.option.ConnectionURL</name>
  6. <value>jdbc:derby:;databaseName=metastore_db;create=true</value>
  7. </property>
  8. <property>
  9. <name>javax.jdo.option.ConnectionDriverName</name>
  10. <value>org.apache.derby.jdbc.EmbeddedDriver</value>
  11. </property>
  12. <property>
  13. <name>hive.metastore.local</name>
  14. <value>true</value>
  15. </property>
  16. <property>
  17. <name>hive.metastore.warehouse.dir</name>
  18. <value>/user/hive/warehouse</value>
  19. </property>
  20. <property>
  21. <name>hive.metastore.warehouse.dir</name>
  22. <value>/user/hive/warehouse</value>
  23. </property>
  24. </configuration>

注:使用derby存储方式时,运行hive会在当前目录生成一个derby文件和一个metastore_db目录。这种存储方式的弊端是在同一个目录下同时只能有一个hive客户端能使用数据库,否则会提示如下错误

[html] view plaincopyprint?

  1. hive> show tables;
  2. FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to start database ‘metastore_db‘, see the next exception for details.
  3. NestedThrowables:
  4. java.sql.SQLException: Failed to start database ‘metastore_db‘, see the next exception for details.
  5. FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

二、本地mysql

这种存储方式需要在本地运行一个mysql服务器,并作如下配置(下面两种使用mysql的方式,需要将mysql的jar包拷贝到$HIVE_HOME/lib目录下)。

[html] view plaincopyprint?

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <property>
  5. <name>hive.metastore.warehouse.dir</name>
  6. <value>/user/hive_remote/warehouse</value>
  7. </property>
  8. <property>
  9. <name>hive.metastore.local</name>
  10. <value>true</value>
  11. </property>
  12. <property>
  13. <name>javax.jdo.option.ConnectionURL</name>
  14. <value>jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true</value>
  15. </property>
  16. <property>
  17. <name>javax.jdo.option.ConnectionDriverName</name>
  18. <value>com.mysql.jdbc.Driver</value>
  19. </property>
  20. <property>
  21. <name>javax.jdo.option.ConnectionUserName</name>
  22. <value>hive</value>
  23. </property>
  24. <property>
  25. <name>javax.jdo.option.ConnectionPassword</name>
  26. <value>password</value>
  27. </property>
  28. </configuration>

三、远端mysql

这种存储方式需要在远端服务器运行一个mysql服务器,并且需要在Hive服务器启动meta服务。

这里用mysql的测试服务器,ip位192.168.1.214,新建hive_remote数据库,字符集位latine1

[html] view plaincopyprint?

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <property>
  5. <name>hive.metastore.warehouse.dir</name>
  6. <value>/user/hive/warehouse</value>
  7. </property>
  8. <property>
  9. <name>javax.jdo.option.ConnectionURL</name>
  10. <value>jdbc:mysql://192.168.1.214:3306/hive_remote?createDatabaseIfNotExist=true</value>
  11. </property>
  12. <property>
  13. <name>javax.jdo.option.ConnectionDriverName</name>
  14. <value>com.mysql.jdbc.Driver</value>
  15. </property>
  16. <property>
  17. <name>javax.jdo.option.ConnectionUserName</name>
  18. <value>hive</value>
  19. </property>
  20. <property>
  21. <name>javax.jdo.option.ConnectionPassword</name>
  22. <value>password</value>
  23. </property>
  24. <property>
  25. <name>hive.metastore.local</name>
  26. <value>false</value>
  27. </property>
  28. <property>
  29. <name>hive.metastore.uris</name>
  30. <value>thrift://192.168.1.188:9083</value>
  31. </property>
  32. </configuration>

注:这里把hive的服务端和客户端都放在同一台服务器上了。服务端和客户端可以拆开,将hive-site.xml配置文件拆为如下两部分

1)、服务端配置文件

[html] view plaincopyprint?

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <property>
  5. <name>hive.metastore.warehouse.dir</name>
  6. <value>/user/hive/warehouse</value>
  7. </property>
  8. <property>
  9. <name>javax.jdo.option.ConnectionURL</name>
  10. <value>jdbc:mysql://192.168.1.214:3306/hive_remote?createDatabaseIfNotExist=true</value>
  11. </property>
  12. <property>
  13. <name>javax.jdo.option.ConnectionDriverName</name>
  14. <value>com.mysql.jdbc.Driver</value>
  15. </property>
  16. <property>
  17. <name>javax.jdo.option.ConnectionUserName</name>
  18. <value>root</value>
  19. </property>
  20. <property>
  21. <name>javax.jdo.option.ConnectionPassword</name>
  22. <value>test1234</value>
  23. </property>
  24. </configuration>
2)、客户端配置文件

[html] view plaincopyprint?

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <property>
  5. <name>hive.metastore.warehouse.dir</name>
  6. <value>/user/hive/warehouse</value>
  7. </property>
  8. <property>
  9. <name>hive.metastore.local</name>
  10. <value>false</value>
  11. </property>
  12. <property>
  13. <name>hive.metastore.uris</name>
  14. <value>thrift://192.168.1.188:9083</value>
  15. </property>
  16. </configuration>

启动hive服务端程序

[plain] view plaincopyprint?

  1. $ hive --service metastore

客户端直接使用hive命令即可

[plain] view plaincopyprint?

  1. [email protected]:~$ hive
  2. Hive history file=/tmp/root/hive_job_log_root_201301301416_955801255.txt
  3. hive> show tables;
  4. OK
  5. test_hive
  6. Time taken: 0.736 seconds
  7. hive>
时间: 2024-12-18 10:03:29

Hive metastore三种配置方式的相关文章

IIS下PHP的三种配置方式比较

在Windows IIS 6.0下配置PHP,通常有CGI.ISAPI和FastCGI三种配置方式,这三种模式都可以在IIS 6.0下成功运行,下面我就讲一下这三种方式配置的区别和性能上的差异. 1.CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求.这样,当用户请求数量非常多时,会大量占用系统的资源,如内存.CPU时间等,造成效能低下. 2.ISAPI(Inte

Hive的三种安装方式(内嵌模式,本地模式远程模式)

一.安装模式介绍:     Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景.     1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错)     2.本地模式(本地安装mysql 替代derby存储元数据)     3.远程模式(远程安装mysql 替代derby存储元数据) 二.安装环境以及前提说明:     首先,Hive是依赖于hadoop系统的,因此在运行Hive之前需要保证已经搭建好hadoop集群环境.     本文中使用的

MyEclipse中web服务器的三种配置方式

初学Javaweb开发的人们都会遇到一个问题,就是服务器环境的搭建配置问题.下面介绍三种服务器的搭建方式. 直接修改server.xml文件 当你写了一个web应用程序(jsp/servlet),想通过浏览器直接去访问这个页面,需要在Tomcat中配置相关路径: 找到Tomcat下conf目录,你会看到有个server.xml,即服务器配置文件.用文本编译器打开,拉到Host标签,在它结束前加上我们的应用程序路径: <Context path="/HelloWeb" docBas

c3p0三种配置方式(automaticTestTable)

c3p0的配置方式分为三种,分别是http://my.oschina.net/lyzg/blog/551331.setters一个个地设置各个配置项2.类路径下提供一个c3p0.properties文件3.类路径下提供一个c3p0-config.xml文件 1.setters一个个地设置各个配置项这种方式最繁琐,形式一般是这样: Properties props = new Properties(); InputStream in = ConnectionManager.class.getRes

tomcat下jndi的三种配置方式

jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API. 第一种:全局配置. 1)在tomcat的conf文件夹下的context.xml配置文件中加入: <Resource name="jndi/mybatis" auth="Container" type="javax.sql.DataSource" driverClassName=&qu

struts2简单入门-Action的三种配置方式

普通的配置方式 优点:可读性高 缺点:重复的配置太多. 使用情况 一个actian只有一个方法,只需要处理一种请求. 代码演示 1 <action name="voteResult" class="com.vot.action.VoteResultAction"> 2 <result name="success">VoteResult.jsp</result> 3 </action> 动态方法调用D

apache虚拟主机三种配置方式

直奔主题!!! 使用虚拟主机必须要注释掉httpd的主机模块,即修改httd.conf的主配置文件,找到<DirectoryROOT " XXXXXX">,将这段内容注释掉就可以了. apche的虚拟主机配置一共有三种,即基于IP.基于port.以及基于域名的.为了后面试验,需要配置两个IP地址(我主机现在的IP地址是10.10.50.100),命令如下: #ip addr add 10.10.50.101/16 dev eth0 #ip addr add 10.10.50

不同vlan间通信的三种配置方式

1.单臂路由(图) 环境:一台路由器,一台二层交换机,两台pc机 二层交换机的配置 1 //创建vlan 10 和 vlan 20: 2 Switch(config)#vlan 10 3 Switch(config-vlan)#vlan 20 4 Switch(config-vlan)# exit 5 6 //进入接口配置模式,把0/1变成trunk口(默认是access口) 7 Switch(config)#interface fastEthernet 0/1 8 Switch(config-

Nhibernate 三种配置方式

1 App.config 的配置: <?xml version="1.0" encoding="utf-8" ?><configuration><configSections>    <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate" r