Hive 安装
Hive 安装地址
1)Hive 官网地址
Apache Hivehttp://hive.apache.org/
2)文档查看地址
GettingStarted - Apache Hive - Apache Software Foundationhttps://cwiki.apache.org/confluence/display/Hive/GettingStarted
3)下载地址
Index of /dist/hivehttp://archive.apache.org/dist/hive/
4)GitHub 地址
https://github.com/apache/hivehttps://github.com/apache/hive
Hive 安装部署
安装 Hive
- 把
apache-hive-3.1.3-bin.tar.gz
上传到 Linux 的/opt/software
目录下 - 解压
apache-hive-3.1.3-bin.tar.gz
到/opt/module/
目录下面[lzl@hadoop12 software]$ tar -zxvf /opt/software/apache-hive-3.1.3-bin.tar.gz -C /opt/module/
- 修改
apache-hive-3.1.3-bin.tar.gz
的名称为hive
[lzl@hadoop12 software]$ mv /opt/module/apache-hive-3.1.3-bin/ /opt/module/hive
- 修改
/etc/profile.d/my_env.sh
,添加环境变量[lzl@hadoop12 software]$ sudo vim /etc/profile.d/my_env.sh
(1)添加内容# HIVE_HOMEexport HIVE_HOME=/opt/module/hiveexport PATH=$PATH:$HIVE_HOME/bin
(2)source 一下[lzl@hadoop12 hive]$ source /etc/profile.d/my_env.sh
- 初始化元数据库(默认是 Derby 数据库)
[lzl@hadoop12 hive]$ bin/schematool -dbType derby -initSchema
启动并使用 Hive
- 启动 Hive
[lzl@hadoop12 hive]$ bin/hive
- 使用 Hive
hive> show databases;hive> show tables;hive> create table stu(id int, name string);hive> insert into stu values(1,"ss");hive> select * from stu;
观察 HDFS 的路径/user/hive/warehouse/stu
,体会 Hive 与 Hadoop 之间的关系。- Hive 中的表在 Hadoop 中是目录;- Hive 中的数据在 Hadoop 中是文件。 - 在 XShell 窗口中开启另一个窗口开启 Hive,在
/tmp/lzl
目录下监控hive.log
文件[lzl@hadoop12 lzl]$ tail -f hive.log``````Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /opt/module/hive/metastore_db.at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.privGetJBMSLockOnDB(Unknown Source)at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.run(Unknown Source)...
原因在于 Hive 默认使用的元数据库为 Derby。Derby 数据库的特点是同一时间只允许一个客户端访问。如果多个 Hive 客户端同时访问,就会报错。由于在企业开发中,都是多人协作开发,需要多客户端同时访问 Hive,怎么解决呢?我们可以将 Hive 的元数据改为用 MySQL 存储,MySQL 支持多客户端同时访问。 - 首先退出 Hive 客户端。然后在 Hive 的安装目录下将
derby.log
和metastore_db
删除,顺便将 HDFS 上目录删除hive> quit;``````[lzl@hadoop12 hive]$ rm -rf derby.log metastore_db[lzl@hadoop12 hive]$ hadoop fs -rm -r /user
- 删除 HDFS 中
/user/hive/warehouse/stu
中的数据
版权归原作者 大数据深度洞察 所有, 如有侵权,请联系我们删除。