- 浏览: 992642 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 948需要认识的几个问题 ------------------- ... -
Cloudera的CDH和Apache的Hadoop的区别
2017-07-26 12:49 533目前而言,不收费的Hadoop版本主要有三个(均是国外厂商) ... -
大数据、云计算系统高级架构师课程学习路线图
2017-07-24 17:10 560大数据、云计算系统高级架构师课程学习路线图 大数据 ... -
Oozie简介
2017-07-24 12:17 1003在Hadoop中执行的任务有时候需要把多个Map/Reduc ... -
清理ambari安装的hadoop集群
2017-07-24 11:29 872本文针对redhat或者centos 对于测试集群,如果通 ... -
hawk大数据基础知识总结(2)
2017-05-13 15:13 439hawk 英[hɔ:k] 美[hɔk] n. 鹰; 霍克; ... -
hawk大数据基础知识总结(1)
2017-05-13 14:41 722一、大数据概述 1.1大 ... -
ambari是什么
2017-05-11 19:52 603Apache Ambari是一种基于Web的工具,支持Apa ... -
数据仓库中的Inmon与Kimball架构之争
2017-05-11 13:40 659对于数据仓库体系结构的最佳问题,始终存在许多不同的看法,甚至 ... -
大数据要学习知识
2017-05-02 17:18 45301 技术层面 1.紧贴 ... -
Spark Streaming简介
2017-05-02 16:28 7011.1 概述 Spark Streaming 是Spark ... -
pentaho套件
2017-04-28 15:52 777有人统计过,在整个数据分析过程里,收集、整理数据的工作大致占全 ... -
Impala:新一代开源大数据分析引擎
2017-04-22 10:48 684大数据处理是云计算中非常重要的问题,自Google公司提出M ... -
Weka是什么
2017-04-10 13:17 1023Weka的全名是怀卡托智 ... -
解密Apache HAWQ ——功能强大的SQL-on-Hadoop引擎
2017-04-10 12:04 788一、HAWQ基本介绍 HAWQ ... -
Kettle的使用
2017-04-06 12:11 552Kettle是一款国外开源 ... -
clouder manager端口7180没有打开为什么
2017-03-27 10:56 1132修改 clouder-manager.repo新建内容我们需要 ... -
Impala与Hive的比较
2017-03-19 13:09 7501. Impala架构 Impala是Clo ... -
Cloudera Manager、CDH零基础入门、线路指导
2017-03-19 12:53 1223问题导读:1.什么是cloudera CM 、CDH?2.C ... -
DB、ETL、DW、OLAP、DM、BI关系结构图
2017-03-17 10:10 691DB、ETL、DW、OLAP、DM、BI关系结构图 ...
相关推荐
《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第...
Hive的数据存储模式Hive的数据存储模式Hive的数据存储模式Hive的数据存储模式
Ambari搭建hadoop环境下,hive的数据导入
hive造数据
hive数据存储模式,对理解hive有帮助
apache hive 的元数据E-R图
(1)Flume数据采集,HDFS数据储存 (2)hive数据仓库分层设计,包含ODS、DWD、ADS层 (3)sqoop数据迁移,完成HIve与MySQL数据库中的数据交互 (4)Echarts搭建动态可视化大屏 (5)SpringBoot搭建可视化后台系统,...
利用Hive进行复杂用户行为大数据分析及优化案例(全套视频+课件...14_Hive中的数据倾斜及解决方案-三种join方式 15_Hive中的数据倾斜及解决方案-group by 16_Hive中使用正则加载数据 17_Hive中使用Python脚本进行预处理
所以需要钉钉报警校验ElasticSearch和Hive数据仓库内的数据质量,注意,这个项目打包后,最好另起一个进程调用,并且开始时间为文章1或者2最大预估的结束时间后的10分钟后调用,这样可以校验两种情形: 1.ETL项目被...
hive数据加载的几种方式、数据的导出、数据简单查询
Hive.sql
可以从hive元数据生成建表语句的资源。包括表结构、分区等信息
林子雨Hive数据集下载
《Hive数据仓库案例教程》教学大纲.pdf《Hive数据仓库案例教程》教学大纲.pdf《Hive数据仓库案例教程》教学大纲.pdf《Hive数据仓库案例教程》教学大纲.pdf《Hive数据仓库案例教程》教学大纲.pdf《Hive数据仓库案例...
包含video user数据
实现elasticsearch与hive数据互通 环境 实验性单节点集群 vagrant.linux16.4.4(无doctor) hive2.3.3+beeline es6.2.2 kibana6.2.2 elasticsearch-hadoop-6.2.2.jar 没有doctor
datax数据从hive表导入mysql表,数据缺失解决
1.数据迁移的过程中,由于hive的Null值存储为"\N",Mysql存储为NULL值,二者转换时需要注意,再数据迁移json模板中,"nullFormat": "\\N", 该配置信息就是解决了数据迁移是存在的Null值。 2.如果hive中没有数值DataX...
hadoop下Hive的三种方式安装与搭建,hadoop下Hive的三种方式安装与搭建
hive练习数据和hive练习题包含了hive练习数据,hive数据的建表ddl和hive练习题,非常适合做hive练习,新手培训,快速入门等; 包含以下练习: hive的group by 和集合函数 hive的Order By/Sort By/Distribute By Join...