Hive 安装

目录

[Hive 安装](#Hive 安装)

[Hive 安装地址](#Hive 安装地址)

[Hive 安装部署](#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

  1. apache-hive-3.1.3-bin.tar.gz 上传到 Linux 的 /opt/software 目录下

  2. 解压 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/
    
  3. 修改 apache-hive-3.1.3-bin.tar.gz 的名称为 hive

    [lzl@hadoop12 software]$ mv /opt/module/apache-hive-3.1.3-bin/ /opt/module/hive
    
  4. 修改 /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
    
  5. 初始化元数据库(默认是 Derby 数据库)

    [lzl@hadoop12 hive]$ bin/schematool -dbType derby -initSchema
    

启动并使用 Hive

  1. 启动 Hive

    [lzl@hadoop12 hive]$ bin/hive
    
  2. 使用 Hive

    sql 复制代码
    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 中是文件。
  3. 在 XShell 窗口中开启另一个窗口开启 Hive,在 /tmp/lzl 目录下监控 hive.log 文件

    sql 复制代码
    [lzl@hadoop12 lzl]$ tail -f hive.log
    sql 复制代码
    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 支持多客户端同时访问。

  4. 首先退出 Hive 客户端。然后在 Hive 的安装目录下将 derby.logmetastore_db 删除,顺便将 HDFS 上目录删除

    sql 复制代码
    hive> quit;
    sql 复制代码
    [lzl@hadoop12 hive]$ rm -rf derby.log metastore_db
    [lzl@hadoop12 hive]$ hadoop fs -rm -r /user
  5. 删除 HDFS 中 /user/hive/warehouse/stu 中的数据

相关推荐
夜泉_ly2 小时前
MySQL -安装与初识
数据库·mysql
qq_529835353 小时前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New5 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6755 小时前
数据库基础1
数据库
我爱松子鱼5 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo6 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser6 小时前
【SQL】多表查询案例
数据库·sql
Galeoto7 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)7 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231117 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql