- 浏览: 466108 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (111)
- 数据库 (8)
- java (24)
- BI (1)
- tomcat (3)
- javascript/css (8)
- 服务架构 (1)
- mule (6)
- cas (4)
- mondrian (4)
- webservice (1)
- SOA (3)
- Lucene/HibernateSearch (2)
- Linux (15)
- 操作系统 (3)
- hibernate (2)
- jbpm (1)
- apache (1)
- phpstudy (1)
- hadoop (27)
- hive (7)
- hbase (8)
- svn (1)
- eclipse (3)
- mahout (1)
- mail (1)
- oracle (1)
- mysql (4)
- axis2 (1)
- python (2)
- kafka (1)
- lucene (1)
- nutch (1)
- spark (2)
- idea (2)
- flume (0)
- ubuntu (1)
- pheonix (2)
- drill (2)
- tez (4)
- pig (1)
- tensorflow (1)
最新评论
-
zhangyou1010:
zhangyou1010 写道请教,我执行mount -t n ...
NFS挂载hdfs到本地 -
zhangyou1010:
请教,我执行mount -t nfs -o vers=3,pr ...
NFS挂载hdfs到本地 -
hengfengyiyingdong:
为什么我查出来的hbase数据都是base64编码的? 我保存 ...
apache drill 0.8.0 单机/分布式安装测试 -
107x:
不错,谢谢!
Hive metastore三种存储方式 -
duguyiren3476:
确实不怎么快,httpfs的上传你可以理解为普通的httpup ...
hadoop2.5.2配置httpfs服务
测试环境下Hive总出问题,metastore的配置有问题。抽了点时间,把Hive的meta数据几种存储方式都配置了下。Hive的meta 数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储。远端存储比较适合生产环境。Hive官方wiki详细介绍了这三种方式,链接为:Hive Metastore 。
一、使用derby数据库存储元数据。
这种方式是最简单的存储方式,只需要在hive-default.xml或hive-site.xml做如下配置便可。
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<
property
>
<
name
>javax.jdo.option.ConnectionURL</
name
>
<
value
>jdbc:derby:;databaseName=metastore_db;create=true</
value
>
</
property
>
<
property
>
<
name
>javax.jdo.option.ConnectionDriverName</
name
>
<
value
>org.apache.derby.jdbc.EmbeddedDriver</
value
>
</
property
>
<
property
>
<
name
>hive.metastore.local</
name
>
<
value
>true</
value
>
</
property
>
<
property
>
<
name
>hive.metastore.warehouse.dir</
name
>
<
value
>/user/hive/warehouse</
value
>
</
property
>
<
property
>
<
name
>hive.metastore.warehouse.dir</
name
>
<
value
>/user/hive/warehouse</
value
>
</
property
>
|
使用derby存储方式时,运行hive会在当前目录生成一个derby文件和一个metastore_db目录。这种存储方式的弊端是在同一个目录下同时只能有一个hive客户端能使用数据库,否则会提示如下错误(这是一个很常见的错误)。
1
2
3
4
5
|
hive> show tables;
FAILED:
Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to
start database 'metastore_db', see the next exception for details.
NestedThrowables:
java.sql.SQLException: Failed to start database 'metastore_db', see the next exception for details.
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
|
二、使用本机mysql服务器存储元数据。这种存储方式需要在本地运行一个mysql服务器,并作如下配置(下面两种使用mysql的方式,需要将mysql的jar包拷贝到$HIVE_HOME/lib目录下)。
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<
property
>
<
name
>hive.metastore.warehouse.dir</
name
>
<
value
>/user/hive_remote/warehouse</
value
>
</
property
>
<
property
>
<
name
>hive.metastore.local</
name
>
<
value
>true</
value
>
</
property
>
<
property
>
<
name
>javax.jdo.option.ConnectionURL</
name
>
<
value
>jdbc:mysql://localhost/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
>root</
value
>
</
property
>
<
property
>
<
name
>javax.jdo.option.ConnectionPassword</
name
>
<
value
>dandan</
value
>
</
property
>
|
三、使用远端mysql服务器存储元数据。这种存储方式需要在远端服务器运行一个mysql服务器,并且需要在Hive服务器启动meta服务。
1)Hive服务器端配置如下。
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<
property
>
<
name
>hive.metastore.warehouse.dir</
name
>
<
value
>/user/hive_remote/warehouse</
value
>
</
property
>
<
name
>javax.jdo.option.ConnectionURL</
name
>
<
value
>jdbc:mysql://localhost/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
>root</
value
>
</
property
>
<
property
>
<
name
>javax.jdo.option.ConnectionPassword</
name
>
<
value
>dandan</
value
>
</
property
>
|
2)Hive客户端配置如下。
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
<
property
>
<
name
>hive.metastore.warehouse.dir</
name
>
<
value
>/user/hive_remote/warehouse</
value
>
</
property
>
<
property
>
<
name
>hive.metastore.local</
name
>
<
value
>false</
value
>
</
property
>
<
property
>
<
name
>hive.metastore.uris</
name
>
<
value
>thrift://localhost:9083</
value
>
</
property
>
|
3)服务进程启动如下,默认监听的端口是9083(Hive版本低于0.5的才这样启动)。
1
|
henshao@henshao-desktop:~/hive-0.3.99.1/conf$
$JAVA_HOME/bin/java -Xmx1024m
-Dlog4j.configuration=file://$HIVE_HOME/conf/hive-log4j.properties
-Djava.library.path=$HADOOP_HOME/lib/native/Linux-amd64-64/ -cp
$CLASSPATH:$HADOOP_HOME/hadoop-0.19.2-core.jar
org.apache.hadoop.hive.metastore.HiveMetaStore
|
这里配置classpath太麻烦了,要把hadoop和hive的jar包都加到classpath上,手动加容易导致依赖错误。我写了一个简单的脚本,把$HIVE_HOME/lib下的jar全部连起来,用冒号分隔开。脚本代码如下。
01
02
03
04
05
06
07
08
09
10
11
12
13
|
#!/bin/bash
CLASSPATH=.
for
dir
in
$*
do
for
file
in
`
ls
$
dir
`
do
CLASSPATH=$CLASSPATH:$
dir
/$
file
done
done
echo
$CLASSPATH
|
运行时,只需要输入”./generate_classpath.sh $HIVE_HOME/lib”便可。然后将生成的字符串贴到.bashrc中,赋给CLASSPATH变量。
hive启动时有一个选项”–config”可以指定包含启动客户端用的配置文件的目录,该目录下需要有hive-default.xml或hive-site.xml文件。
1
|
hive --config conf_dir
|
根据我的实践发现,其实第二种方法也可以将Hive的元数据保存到一台远端服务器上,只要配置好javax.jdo.option.ConnectionURL这个连接串就行。
发表评论
-
spark运行在yarn上的一个异常
2017-05-03 18:08 9742主机配置内存不足,导致在yarn上运行job异常,下面是s ... -
drill1.0配置hive storage plugin及测试
2015-08-06 10:18 3187drill1.0配置hive storage plugin ... -
tez ui 安装测试
2015-08-04 17:03 4016tez ui 安装测试 标签(空格分隔): 未分类 环 ... -
编译tez 0.7
2015-07-29 16:30 2500tez自己编译0.7 版本,为了测试hadoop2.7.1 ... -
pig on tez测试
2015-06-02 14:16 1545pig on tez测试 pig tez had ... -
hive 小记
2015-06-02 11:41 1092hive 小记 hive hadoop hdf ... -
ambari 安装配置
2015-06-02 11:28 3206测试环境 centos6.5 64bit amb ... -
hive on tez hive运行在tez之上 安装测试
2015-05-26 18:53 15859hive on tez详细配置和运行测试 ... -
hadoop2.5.2配置httpfs服务
2015-05-08 12:58 7951hadoop2.5.2配置httpfs服务 h ... -
ubuntu安装NFS及测试
2015-05-08 09:37 2126ubuntu安装NFS及测试 测试环境 ... -
NFS挂载hdfs到本地
2015-05-07 18:34 16410NFS挂载hdfs到本地 nfs hdfs n ... -
apache drill 0.8.0 单机/分布式安装测试
2015-04-16 16:57 4552apache drill 0.8.0 安装测试 ... -
测试hbase预设分区
2015-04-07 20:06 1053测试hbase预设分区 phonex-4.3 ... -
Phoenix设置时间戳
2015-04-07 19:13 9492Phoenix设置时间戳 phonex-4.3 ... -
eclipse远程连接hadoop进行开发测试
2015-03-27 18:17 8574eclipse远程连接hadoop进行开发测试 马克 ... -
hadoop2.x jobhistoryserver 配置
2015-02-11 10:28 5405hadoop2.x jobhistoryserve ... -
hadoop balancer
2015-01-14 15:38 2657hadoop balancer 设置同步带宽 ... -
hadoop second namenode异常 Inconsistent checkpoint fields
2015-01-14 15:25 2525hadoop second namenode异常 Inc ... -
Hadoop2本地库和系统库版本不一致 解决方案
2014-12-21 19:29 0Hadoop2本地库和系统库版本不一致 解决方案 在 ... -
ubuntu安装navicat及常见问题解决
2014-12-11 11:03 11419ubuntu安装navicat及常见问题解决 1.安装na ...
相关推荐
《Hive metastore 使用达梦数据库存储元数据详解》 在大数据处理领域,Hive作为一个分布式数据仓库工具,被广泛用于存储和管理大规模结构化数据。Hive的元数据是其核心组成部分,它包含了表、分区、列等信息,使得...
元数据的存储通常有两种方式:本地MySQL或远程Thrift服务器。当Hive客户端查询数据时,首先会通过Metastore获取相关的元数据信息,然后根据这些信息在HDFS上定位实际的数据。 Hive数据存储模式是理解Metastore工作...
《3-9+HiveMetaStore服务在快手的挑战与优化》 在大数据处理领域,HiveMetaStore作为Hive的核心组件,负责管理元数据,包括表、分区、列、属性等信息,是Hive查询数据的基础。在快手这样的大型互联网公司中,Hive...
在Hadoop生态系统中,Hive是一个基于HDFS的数据仓库工具,它允许用户使用SQL(HQL)查询和管理存储在Hadoop集群中的大数据集。然而,手动启动和停止Hive的服务,如HiveServer2和Metastore,可能会变得繁琐和耗时。...
`hive_metastore_client-1.0.0-py3-none-any.whl`是这个包的特定版本,表示这是针对Python 3编译的一个可安装的whl文件,whl是一种预编译的Python二进制格式,可以直接通过pip安装,无需编译源代码,从而简化了部署...
在这个配置中,我们将介绍如何配置 Hive 客户端与 Hive 服务器的连接,包括远程 MySQL 和远程存储 metastore 的配置。 Hive 客户端配置 在 Hive 客户端配置中,我们需要配置 Hive 客户端连接到远程 metastore ...
通过本文,我们了解了Hive的三种元数据存储方式——内嵌Derby方式、Local方式和Remote方式,并详细介绍了每种方式的配置步骤及注意事项。对于不同的应用场景,可以选择合适的方式来搭建Hive环境。内嵌Derby方式适用...
在HBase中查询数据可以通过`Get`和`Scan`两种方式实现。 - **使用Get**:当已知行键时,可以直接获取指定的数据。 - **使用Scan**:当需要扫描表中的一部分或全部数据时,可以使用Scan。 示例代码如下: ```java ...
这篇博客主要探讨了Hive的三种启动方式及其用途,这对于我们理解如何有效管理和操作Hive系统至关重要。 1. **独立模式(Standalone Mode)** 在独立模式下,Hive运行在本地模式,不与任何Hadoop集群交互。这种模式...
* Hive Metastore:用于存储HIVE的元数据 * Hive Query Compiler:将SQL查询转换为MapReduce任务 * Hive Execution Engine:执行MapReduce任务 * Hive Storage Handler:用于存储数据 各组件的基本功能: * Hive ...
Hive Metastore数据库是Hive的核心组件之一,它用于存储Hive的元数据。在这里,我们将使用 Derby数据库来作为Hive Metastore数据库。 二、使用Xshell6连接Hive服务器 在这里,我们将使用Xshell6工具来远程连接到...
HBase可以利用Metastore中存储的表结构信息来提供更方便的数据访问方式,而MapReduce程序在需要对Hive表进行处理时,同样可以利用Metastore中的元数据来优化任务的执行。 值得注意的是,虽然Metastore对于Hive来说...
2. **Hive Metastore**:这部分jar包用于存储Hive的元数据,包括表结构、分区信息、列类型等。元数据可以存储在本地MySQL、PostgreSQL或者远程Thrift服务器上。 3. **Hive SerDes(Serialization/Deserialization)...
2. **Hive Metastore服务**: Hive Metastore是Hive存储元数据的地方,包括表结构、分区信息等。对应的jar包提供了访问这些元数据的API,如`org.apache.hadoop.hive.metastore.HiveMetaStoreClient`。 3. **Hive ...
Hive 提供了一种 SQL 接口来访问数据,这些数据通常存储在 Hadoop 的分布式文件系统(HDFS)中。 Hive 的主要组件包括: Hive Metastore:存储元数据(如表的模式、分区信息等)。 HiveServer2:提供客户端连接和 ...
2. hive-metastore-2.1.1.jar:这是Hive元数据存储服务的实现,它存储了Hive表和分区的信息,包括它们在HDFS上的位置、列信息等。 3. hbase-protocol-1.1.1.jar 和 hbase-server-1.1.1.jar:这两个是Apache HBase的...
Hive 是一种基于 Hadoop 的数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供 SQL 查询功能,使得非编程人员也能对大数据进行分析。 Spark 2.3.1 版本包含了一系列的改进和新特性,旨在提高性能、...
3. **元数据**:Hive MetaStore存储了关于Hive表的所有元数据,如表名、列名、分区信息、表的存储位置等。这些信息由Hive Metastore服务管理,为查询解析和执行提供基础。 4. **数据存储**:Hive将数据存储在HDFS上...
1. **安装Hive**: 首先,你需要在集群上安装和配置Hive,包括设置Hive Metastore服务,存储元数据信息。 2. **配置Spark**: 在Spark的配置文件`spark-defaults.conf`中,需要设置`spark.sql.hive.metastore.uris`为...
- **HCatalog**:作为Hive的一部分,HCatalog提供了一种统一的方式来管理Hadoop上的表和存储资源,使得其他工具如Pig和MapReduce可以更方便地读写数据。 #### 示例:内部表创建与使用 创建内部表的简单示例: ```...