目录
Hive 安装
Hive 安装地址
Hive 安装摆设
安装 Hive
启动并使用 Hive
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_HOME
- export HIVE_HOME=/opt/module/hive
- export 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 上目录删除
- [lzl@hadoop12 hive]$ rm -rf derby.log metastore_db
- [lzl@hadoop12 hive]$ hadoop fs -rm -r /user
复制代码 - 删除 HDFS 中 /user/hive/warehouse/stu 中的数据
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |