- 浏览: 1047719 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
测试环境下Hive总出问题,metastore的配置有问题。抽了点时间,把Hive的meta数据几种存储方式都配置了下。Hive的meta 数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储。远端存储比较适合生产环境。Hive官方wiki详细介绍了这三种方式,链接为:Hive Metastore 。
一、使用derby数据库存储元数据。
这种方式是最简单的存储方式,只需要在hive-default.xml或hive-site.xml做如下配置便可。
< 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客户端能使用数据库,否则会提示如下错误(这是一个很常见的错误)。
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目录下)。
< 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服务器端配置如下。
< 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客户端配置如下。
< 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的才这样启动)。
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全部连起来,用冒号分隔开。脚本代码如下。
#!/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文件。
hive --config conf_dir
根据我的实践发现,其实第二种方法也可以将Hive的元数据保存到一台远端服务器上,只要配置好javax.jdo.option.ConnectionURL这个连接串就行。
一、使用derby数据库存储元数据。
这种方式是最简单的存储方式,只需要在hive-default.xml或hive-site.xml做如下配置便可。
< 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客户端能使用数据库,否则会提示如下错误(这是一个很常见的错误)。
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目录下)。
< 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服务器端配置如下。
< 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客户端配置如下。
< 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的才这样启动)。
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全部连起来,用冒号分隔开。脚本代码如下。
#!/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文件。
hive --config conf_dir
根据我的实践发现,其实第二种方法也可以将Hive的元数据保存到一台远端服务器上,只要配置好javax.jdo.option.ConnectionURL这个连接串就行。
发表评论
-
CDH与原生态hadoop之间的区别
2017-07-26 12:45 992需要认识的几个问题 ------------------- ... -
Cloudera的CDH和Apache的Hadoop的区别
2017-07-26 12:49 574目前而言,不收费的Hadoop版本主要有三个(均是国外厂商) ... -
大数据、云计算系统高级架构师课程学习路线图
2017-07-24 17:10 597大数据、云计算系统高级架构师课程学习路线图 大数据 ... -
Oozie简介
2017-07-24 12:17 1058在Hadoop中执行的任务有时候需要把多个Map/Reduc ... -
清理ambari安装的hadoop集群
2017-07-24 11:29 923本文针对redhat或者centos 对于测试集群,如果通 ... -
hawk大数据基础知识总结(2)
2017-05-13 15:13 493hawk 英[hɔ:k] 美[hɔk] n. 鹰; 霍克; ... -
hawk大数据基础知识总结(1)
2017-05-13 14:41 794一、大数据概述 1.1大 ... -
ambari是什么
2017-05-11 19:52 644Apache Ambari是一种基于Web的工具,支持Apa ... -
数据仓库中的Inmon与Kimball架构之争
2017-05-11 13:40 695对于数据仓库体系结构的最佳问题,始终存在许多不同的看法,甚至 ... -
大数据要学习知识
2017-05-02 17:18 48901 技术层面 1.紧贴 ... -
Spark Streaming简介
2017-05-02 16:28 7421.1 概述 Spark Streaming 是Spark ... -
pentaho套件
2017-04-28 15:52 829有人统计过,在整个数据分析过程里,收集、整理数据的工作大致占全 ... -
Impala:新一代开源大数据分析引擎
2017-04-22 10:48 729大数据处理是云计算中非常重要的问题,自Google公司提出M ... -
Weka是什么
2017-04-10 13:17 1067Weka的全名是怀卡托智 ... -
解密Apache HAWQ ——功能强大的SQL-on-Hadoop引擎
2017-04-10 12:04 836一、HAWQ基本介绍 HAWQ ... -
Kettle的使用
2017-04-06 12:11 597Kettle是一款国外开源 ... -
clouder manager端口7180没有打开为什么
2017-03-27 10:56 1178修改 clouder-manager.repo新建内容我们需要 ... -
Impala与Hive的比较
2017-03-19 13:09 7841. Impala架构 Impala是Clo ... -
Cloudera Manager、CDH零基础入门、线路指导
2017-03-19 12:53 1265问题导读:1.什么是cloudera CM 、CDH?2.C ... -
DB、ETL、DW、OLAP、DM、BI关系结构图
2017-03-17 10:10 730DB、ETL、DW、OLAP、DM、BI关系结构图 ...
相关推荐
然而,为了适应更复杂的业务需求和更高的性能,我们可以选择将Hive元数据存储在达梦数据库中。本文将详细介绍如何配置Hive metastore以使用达梦数据库。 首先,要在达梦数据库中创建metastore所需的用户和表空间。...
- **LOCATION**:可变字符型 (VARCHAR),长度为4000,表示数据存储位置。 - **IS_COMPRESSED**:位型 (BIT),长度为1,表示数据是否被压缩。 - **NUM_BUCKETS**:整型 (INT),长度为11,表示分桶数量。 - **SERDE_ID...
6. **metastore-server/src/main/resources/META-INF**:Hive元数据存储的相关信息,元数据存储了表、分区、列等信息。 7. **serde** 和 **udf** 目录:包含了序列化/反序列化(SerDe)库和用户定义函数(UDF),...
Hive是大数据处理领域中的一...综上所述,Hive 2.3.3的JDBC驱动和Squirrel-SQL 3.8.1-standard.jar结合使用,为开发者和分析师提供了一种高效、直观的方式来操作和查询Hive数据仓库,极大地增强了对大数据的分析能力。
1. Hive 元数据与 Druid、Superset、Hue、Ranger、Oozie、Presto 组件元数据一起存储 2. 集群需要单独购买一个 Meta
它支持交互式查询、集群资源管理、作业与工作流调度等功能,结合Hive Meta,进一步优化了数据的处理效率。通过使用HBase+Solr、Phoenix(SearchIndex)、BDS(大数据存储)等组件,实现了数据的一键归档、实时写入、...
你可以通过Kafka提供的命令行工具或第三方工具(如在示例中提到的http://server1:8048/topic/meta/nifi-kafka/)来监控和验证数据是否成功发送到Kafka,并被消费者正确消费。 总结来说,Nifi与Kafka的集成为ETL...
* 对接iceberg catalog:Meta server 增加对iceberg catalog的支持,SQL SDK 增加iceberg catalog支持 * 平台开放iceberg表的管理功能支持代理用户 * 增加Table级别配置:'iceberg.user.proxy'='targetUser’ * 启用...
通过强化学习实现主动、自我完善的智能平台构建基于医疗数据的群体健康体系大数据存储和管理平台分布式文件系统HDFS表存储HIVE列存储HBASE非结构化数据存储结构化数据存储元数据Meta半结构化数据存储群体。
Hadoop之HBase从入门到精通 ...HBase是一个功能强大且高效的分布式存储系统,适合大规模结构化数据存储和处理。本文仅为HBase技术的入门级介绍,读者可以继续深入学习HBase技术,掌握更多的高级应用。
- **文件存储系统**:类似于Bigtable使用Google文件系统(GFS)作为底层存储,HBase选择Hadoop分布式文件系统(HDFS)来提供可靠的数据存储支持。 - **数据处理框架**:如同Bigtable依赖于MapReduce进行大数据处理,...
HBase是一种分布式、高可靠性且高性能的列式存储系统,它基于Hadoop生态体系构建,并且能够支持大规模的数据存储需求。HBase的设计灵感来源于Google的Bigtable论文,通过模仿Bigtable的核心架构和技术特性,HBase...
HBase是一种基于Hadoop生态系统的分布式列式存储系统,它主要设计用于处理大规模的数据存储,尤其是在廉价的PC服务器集群上构建大规模结构化数据仓库。HBase借鉴了Google Bigtable的设计理念,但它是开源的,因此...
7. **工具应用**:例如Workbench、PowerDesigner用于数据建模,Saiku用于数据展示,开放式Log、开放式SQL、开放式OLAP用于数据转换,HiveMeta作为元数据存储,而DAG(有向无环图)可能指的是数据处理流程的可视化...
HBase采用了一种独特的数据模型,主要包括以下几个关键概念: 1. **Table**(表):数据的容器。 2. **Row Key**(行键):每条记录的唯一标识符,决定了数据的物理存储顺序。 3. **Column Family**(列族):逻辑...
"医疗数据中台" 医疗数据中台是指医疗信息化的数据...此外,医疗数据中台还能够实现大数据存储和管理平台分布式文件系统HDFS表存储HIVE列存储HBASE非结构化数据存储结构化数据存储元数据Meta半结构化数据存储群体等。
- **Pig/Hive**:提供高级语言支持,简化数据分析流程。 - **Sqoop**:提供RDBMS数据导入功能,便于将传统数据库的数据迁移到HBase中。 #### 三、HBase访问接口 HBase提供了多种访问接口,包括但不限于: 1. **...
* 面向列:HBase 是一个面向列的分布式存储系统,提供了灵活的数据存储和检索能力。 HBase 访问接口 ---------------- HBase 提供了多种访问接口,包括: * Native Java API:最常规和高效的访问方式,适合 ...
HBase的设计灵感来源于Google的Bigtable,但它是开源的,旨在适应低成本的PC服务器集群,用于构建大规模结构化数据存储集群。 在Hadoop生态系统中,HBase位于结构化存储层,依赖于Hadoop的HDFS(Hadoop Distributed...