搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Gausst松鼠会
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
钉钉手机端调试前端H5项目流程_钉钉浏览器调试
2
FPGA学习回顾_output reg
3
8个vue前端UI框架框架值得你掌握,前端开发面试基础_vue ui框架
4
07 JS CORE 数组_core js 数组方法
5
解决VMware虚拟机更新17.5.0版本后,启动虚拟机导致电脑重启的问题。(建议收藏)_vmware 17.5
6
利用 matplotlib 库在一张独立的画布上绘制以下五个图表_matplotlib题目
7
Java 经典《Java 核心技术》上出现虚竹哥的名字,居然是因为
8
2023年7月25日 Go生态洞察:Go开发者调查分享
9
failed to get sandbox image \\\“registry.k8s.io/pause:3.6\\\“: failed to pull image \\\“registry.k8
10
建议收藏:OpenKruise入门与实践
当前位置:
article
> 正文
Hive 安装_use metastore显示database changed
作者:Gausst松鼠会 | 2024-05-27 18:52:23
赞
踩
use metastore显示database changed
从
http://archive.cloudera.com/cdh/3/
中下载hive-0.7.1-cdh3u1.tar.gz。
在安装了Hadoop的namenode上解压Hive:
Java代码
$tar zxvf hive-
0.7
.
1
-cdh3u1.tar.gz -C /home/hadoop/cdh3
修改hive安装目录下/conf/hive-env.sh.template中的HADOOP_HOME为实际的Hadoop安装目录;
添加环境变量
Java代码
$sudo gedit /etc/profile
引用
export HIVE_HOME=/home/hadoop/cdh3/hive-0.7.1-cdh3u1
export PATH=$PATH:HIVE_HOME/bin
然后启动Hive
Java代码
$hive
如果能够进入Hive的shell页面,并能浏览,则表示Hive已经可以使用了。
引用
hadoop@ubuntu:~$ hive
Hive history file=/tmp/hadoop/hive_job_log_hadoop_201110241652_1651346475.txt
hive> show tables;
OK
Time taken: 3.496 seconds
在安装过程中,第一次启动Hive没有成功,后来在网上查到原因如下,并成功解决:
错误如下:
Java代码
Exception in thread
"main"
java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:
247
)
at org.apache.hadoop.util.RunJar.main(RunJar.java:
149
)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
at java.net.URLClassLoader$
1
.run(URLClassLoader.java:
200
)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:
188
)
at java.lang.ClassLoader.loadClass(ClassLoader.java:
307
)
at java.lang.ClassLoader.loadClass(ClassLoader.java:
252
)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:
320
)
解决方法是,安装Hadoop时,修改Hadoop目录下/conf/hadoop-env.sh时,添加HADOOP_CLASSPATH变量覆盖了原有的变量,改成如下的形式即可:
HADOOP_CLASSPATH=
$HADOOP_CLASSPATH:
....
红色为添加部分。问题解决。
这样安装的元数据保持在内嵌的数据库Derby中,只能允许一个会话连接,如果要支持多用户多会话,则需要一个独立的元数据库,目前比较流行的是使用MySQL,下面进行配置。
1)安装好MySQL服务器端和MySQL客户端,并启动MySQL服务。
http://wadefall.iteye.com/admin/blogs/1209545
2)为Hive建立相应的MySQL帐号,并赋予足够的权限
进入MySQL控制台:
Java代码
mysql -uroot -p
建立hive帐号
Java代码
CREATE USER
'hive'
IDENTIFIED BY
'hive'
;
赋予权限
Java代码
GRANT ALL PRIVILEGES ON *.* TO
'hive'
@
'%'
WITH GRANT OPTION;
用hive帐号测试远程登录
Java代码
mysql -h localhost -u hive -p
3) 建立Hive专用的元数据库
Java代码
create database hive
4)在本地安装MySQL客户端
5)在Hive的conf目录下修改配置文件hive-site.xml(如果没有该文件,复制hive-default.xml并改名为hive-site.xml),配置文件修改如下,红色部分为修改内容
Xml代码
<
property
>
<
name
>
javax.jdo.option.ConnectionURL
</
name
>
<
value
>
jdbc:mysql://localhost:3306/hive?
createDatabaseIfNotExist
=
true
</
value
>
<
description
>
JDBC connect string for a JDBC metastore
</
description
>
</
property
>
<
property
>
<
name
>
javax.jdo.option.ConnectionDriverName
</
name
>
<
value
>
com.mysql.jdbc.Driver
</
value
>
<
description
>
Driver class name for a JDBC metastore
</
description
>
</
property
>
<
property
>
<
name
>
javax.jdo.option.ConnectionUserName
</
name
>
<
value
>
root
</
value
>
<
description
>
username to use against metastore database
</
description
>
</
property
>
<
property
>
<
name
>
javax.jdo.option.ConnectionPassword
</
name
>
<
value
>
root123
</
value
>
<
description
>
password to use against metastore database
</
description
>
</
property
>
6)把MySQL的JDBC驱动包(我使用的是mysql-connector-java-5.1.16-bin.jar)复制到Hive的lib目录下。
7)启动Hive shell,执行
Java代码
show tables;
如果不报错,表明基于独立元数据库的Hive已经安装成功了。
查看一下元数据的效果。
在Hive上建立数据表
Java代码
CREATE TABLE my(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY
'\t'
;
Java代码
show tables;
Java代码
select name from my;
然后我们以刚刚建立的hive帐号登录MySQL查看元数据信息。
引用
mysql> use hive
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+-----------------+
| Tables_in_hive |
+-----------------+
| BUCKETING_COLS |
| COLUMNS |
| DATABASE_PARAMS |
| DBS |
| PARTITION_KEYS |
| SDS |
| SD_PARAMS |
| SEQUENCE_TABLE |
| SERDES |
| SERDE_PARAMS |
| SORT_COLS |
| TABLE_PARAMS |
| TBLS |
+-----------------+
13 rows in set (0.00 sec)
mysql> select * from TBLS;
+--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+
| TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER | RETENTION | SD_ID | TBL_NAME | TBL_TYPE | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT |
+--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+
| 1 | 1319445990 | 1 | 0 | hadoop | 0 | 1 | my | MANAGED_TABLE | NULL | NULL |
+--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+
1 row in set (0.00 sec)
在TBLS中可以看到Hive表的元数据。
Hive web service,Hive web接口,启动方法:
https://cwiki.apache.org/confluence/display/Hive/HiveWebInterface
Java代码
export ANT_LIB=$ANT_HOME/lib
Java代码
hive --service hwi
然后打开http://ip:9999/hwi/就能看到Hive的web页面。
从
http://archive.cloudera.com/cdh/3/
中下载hive-0.7.1-cdh3u1.tar.gz。
在安装了Hadoop的namenode上解压Hive:
Java代码
$tar zxvf hive-
0.7
.
1
-cdh3u1.tar.gz -C /home/hadoop/cdh3
修改hive安装目录下/conf/hive-env.sh.template中的HADOOP_HOME为实际的Hadoop安装目录;
添加环境变量
Java代码
$sudo gedit /etc/profile
引用
export HIVE_HOME=/home/hadoop/cdh3/hive-0.7.1-cdh3u1
export PATH=$PATH:HIVE_HOME/bin
然后启动Hive
Java代码
$hive
如果能够进入Hive的shell页面,并能浏览,则表示Hive已经可以使用了。
引用
hadoop@ubuntu:~$ hive
Hive history file=/tmp/hadoop/hive_job_log_hadoop_201110241652_1651346475.txt
hive> show tables;
OK
Time taken: 3.496 seconds
在安装过程中,第一次启动Hive没有成功,后来在网上查到原因如下,并成功解决:
错误如下:
Java代码
Exception in thread
"main"
java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:
247
)
at org.apache.hadoop.util.RunJar.main(RunJar.java:
149
)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
at java.net.URLClassLoader$
1
.run(URLClassLoader.java:
200
)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:
188
)
at java.lang.ClassLoader.loadClass(ClassLoader.java:
307
)
at java.lang.ClassLoader.loadClass(ClassLoader.java:
252
)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:
320
)
解决方法是,安装Hadoop时,修改Hadoop目录下/conf/hadoop-env.sh时,添加HADOOP_CLASSPATH变量覆盖了原有的变量,改成如下的形式即可:
HADOOP_CLASSPATH=
$HADOOP_CLASSPATH:
....
红色为添加部分。问题解决。
这样安装的元数据保持在内嵌的数据库Derby中,只能允许一个会话连接,如果要支持多用户多会话,则需要一个独立的元数据库,目前比较流行的是使用MySQL,下面进行配置。
1)安装好MySQL服务器端和MySQL客户端,并启动MySQL服务。
http://wadefall.iteye.com/admin/blogs/1209545
2)为Hive建立相应的MySQL帐号,并赋予足够的权限
进入MySQL控制台:
Java代码
mysql -uroot -p
建立hive帐号
Java代码
CREATE USER
'hive'
IDENTIFIED BY
'hive'
;
赋予权限
Java代码
GRANT ALL PRIVILEGES ON *.* TO
'hive'
@
'%'
WITH GRANT OPTION;
用hive帐号测试远程登录
Java代码
mysql -h localhost -u hive -p
3) 建立Hive专用的元数据库
Java代码
create database hive
4)在本地安装MySQL客户端
5)在Hive的conf目录下修改配置文件hive-site.xml(如果没有该文件,复制hive-default.xml并改名为hive-site.xml),配置文件修改如下,红色部分为修改内容
Xml代码
<
property
>
<
name
>
javax.jdo.option.ConnectionURL
</
name
>
<
value
>
jdbc:mysql://localhost:3306/hive?
createDatabaseIfNotExist
=
true
</
value
>
<
description
>
JDBC connect string for a JDBC metastore
</
description
>
</
property
>
<
property
>
<
name
>
javax.jdo.option.ConnectionDriverName
</
name
>
<
value
>
com.mysql.jdbc.Driver
</
value
>
<
description
>
Driver class name for a JDBC metastore
</
description
>
</
property
>
<
property
>
<
name
>
javax.jdo.option.ConnectionUserName
</
name
>
<
value
>
root
</
value
>
<
description
>
username to use against metastore database
</
description
>
</
property
>
<
property
>
<
name
>
javax.jdo.option.ConnectionPassword
</
name
>
<
value
>
root123
</
value
>
<
description
>
password to use against metastore database
</
description
>
</
property
>
6)把MySQL的JDBC驱动包(我使用的是mysql-connector-java-5.1.16-bin.jar)复制到Hive的lib目录下。
7)启动Hive shell,执行
Java代码
show tables;
如果不报错,表明基于独立元数据库的Hive已经安装成功了。
查看一下元数据的效果。
在Hive上建立数据表
Java代码
CREATE TABLE my(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY
'\t'
;
Java代码
show tables;
Java代码
select name from my;
然后我们以刚刚建立的hive帐号登录MySQL查看元数据信息。
引用
mysql> use hive
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+-----------------+
| Tables_in_hive |
+-----------------+
| BUCKETING_COLS |
| COLUMNS |
| DATABASE_PARAMS |
| DBS |
| PARTITION_KEYS |
| SDS |
| SD_PARAMS |
| SEQUENCE_TABLE |
| SERDES |
| SERDE_PARAMS |
| SORT_COLS |
| TABLE_PARAMS |
| TBLS |
+-----------------+
13 rows in set (0.00 sec)
mysql> select * from TBLS;
+--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+
| TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER | RETENTION | SD_ID | TBL_NAME | TBL_TYPE | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT |
+--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+
| 1 | 1319445990 | 1 | 0 | hadoop | 0 | 1 | my | MANAGED_TABLE | NULL | NULL |
+--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+
1 row in set (0.00 sec)
在TBLS中可以看到Hive表的元数据。
Hive web service,Hive web接口,启动方法:
https://cwiki.apache.org/confluence/display/Hive/HiveWebInterface
Java代码
export ANT_LIB=$ANT_HOME/lib
Java代码
hive --service hwi
然后打开http://ip:9999/hwi/就能看到Hive的web页面。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/633502
推荐阅读
article
Hive
:
数据仓库
构建
步骤
_
hive
数据仓库
的
er图...
数据仓库
是面向主题
的
、集成
的
、不可更新
的
、随时间
的
变化而不断变化
的
,这些特点决定了
数据仓库
的
系统设计不能采用同开发传统
的
...
赞
踩
article
05、
hive
数据
仓库
介绍及搭建_
服务
hive
具备
hive
仓库
目录
的
相同值。...
Hive起源于Facebook(一个美国
的
社交
服务
网络)。Facebook有着大量
的
数据,而Hadoop是一个开源
的
Ma...
赞
踩
article
10
分布式
数据仓库
HIVE
--
HIVE
案例实战1
apache
common
日志
分析_
hive
...
1
日志
分析场景某网站的
apache
common
每天产生一个
日志
日志
文件。将每一天的
日志
文件,按照日期作为分期,导入H...
赞
踩
article
大
数据库
课程(
项目
2
结构化
数据仓库
——
Hive
)
_
结构化
数据库
...
Hive
建表语法如下。CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table
_
na...
赞
踩
article
hive
(三)
--
基础
语法
及导入
导出
_
hive
创建
数据库
语法
...
需要保证查询结果列的数目和需要插入数据表格的列数目一致.如果查询出来的数据类型和插入表格对应的列数据类型不一致,将会进行...
赞
踩
article
【
数据库
-
Hive
】
Hive
基础知识
_
hive
数据库
...
hive
基础
hive
基本命令基本类型基本数据类型:int/float/double/string/boolean/big...
赞
踩
article
Could not
open
client
trans
port with JDBC Uri
hive
...
2020/03/23 15:08:42-[INFO]-[org.apache.
hive
.
jdbc
.Utils.parse...
赞
踩
article
深入解析《企业级数据架构》:
HDFS
、
Yarn
、
Hive
、
HBase
与
Spark
的核心应用_
hdfs
...
深入解析《企业级数据架构》:
HDFS
、
Yarn
、
Hive
、
HBase
与
Spark
的核心应用_
hdfs
、
hive
、spar...
赞
踩
article
部署
hadoop
-
hive
-
hbase
_
hadoop
hbase
hive
生产
部署
...
**一、Hadoop安装配置**3.1 创建Hadoop用户如果你安装 CentOS 的时候不是用的 “
hadoop
” ...
赞
踩
article
分布式
与
集群
的区别,
一致性
hash
,
hadoop
与
HBASE
,消息,关于
分布式
系统的数据
一致性
问题(...
222013-10简单说,
分布式
是以缩短单个任务的执行时间来提升效率的,而
集群
则是通过提高单位时间内执行的任务数来提升效...
赞
踩
article
MYSQL
学习笔记三(
数据库
基本操作
)
_
select
database
()...
MYSQL
帮助
MYSQL
除了提供官网的帮助文档,为我们学习提供了帮助命令。如下图:可以通过help命令查询更多的操作命令...
赞
踩
article
Hive
运行
环境
搭建_
启动
hive
的
环境
...
Hive
运行
环境
搭建_
启动
hive
的
环境
启动
hive
的
环境
...
赞
踩
article
Hive
on
Spark
环境搭建_
hive
on
spark
配置...
Hive
引擎包括:默认 MR、tez、
spark
最底层的引擎就是MR (Mapreduce)无需配置,
Hive
运行自带...
赞
踩
article
Hive
on
spark
环境搭建_
hive
on
spark
部署...
Hive
引擎包括:默认MR、tez、
spark
Hive
on
Spark:
Hive
既作为存储元数据又负责SQL的解析优化...
赞
踩
article
(19)
Hive
——
Metastore
与
Hive
Server2
关系
_
hivemate2
...
Metastore
与
Hive
Sever2
关系
_
hivemate2
hivemate2
&nb...
赞
踩
article
【
Hive
SQL 每日一题】统计
用户
留存
率_
hive
sql
计算
留存
...
实现
用户
留存
率的需求其实很简单,这里要求在系统上线后,统计每天的
用户
留存
率,我们每次只需要算出“今天”的
用户
数量与“昨天...
赞
踩
article
【
Hive
】
Centos7
安装
单机
版
Hive
_
hive
单机
环境搭建
centos7
...
在
centos7
中
安装
hive
,
单机
版
安装
,包含
安装
mysql在内_
hive
单机
环境搭建
centos7
hive
单机
环境搭...
赞
踩
article
【
Hive
】
Apache
Hive
系列
之
Hive
简介及
环境
搭建
...
指路牌概述组成架构(运行流程)特点
Hive
和数据库的区别
Hive
安装MariaDB安装
Hive
安装配置概述
Hive
是建立...
赞
踩
article
在
windows
10
上安装
apache
-
hive
-
3.1
.3_
windows
安装
hive
3...
基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规...
赞
踩
article
Windows10
+
VirtualBox
从零搭建
Hadoop
/
Hive
环境及
Hive
入...
1. 安装
VirtualBox
官网下载最新版本
VirtualBox
并安装,此过程简单,可结合百度。笔者使用 Vir...
赞
踩
相关标签
hive
数据仓库
hadoop
数据库
架构
hdfs
hbase
分布式
集群
mysql
大数据
spark