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 中的数据

相关推荐
小小龙学IT9 分钟前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
NineData21 分钟前
DTCC 2026 预告|NineData CEO& 创始人叶正盛:面向 AI Agent 的数据库 DevOps 与数据复制实践
数据库·人工智能·数据库开发·devops·ninedata·数据库技术·dtcc
circuitsosk33 分钟前
跨境电商智能化实战:AI如何赋能客服自动回复、广告智能投放与供应链预测
大数据·人工智能·python·langchain·智能客服
J_bean1 小时前
MySQL 事务是否必须手动开启?
数据库·mysql·数据库事务·自动提交·手动提交
J_bean1 小时前
MySQL InnoDB 如何检测死锁、判定死锁、处理死锁
数据库·mysql·死锁·死锁检测·处理死锁·死锁判定
数智化管理手记2 小时前
海量数据如何沉淀有效数据资产?数据标准化治理方案如何搭建?
java·大数据·人工智能
浪子明X2 小时前
从 MongoDB 文档到关系模型:构建可重跑、可对账的数据迁移流水线
数据库·mongodb·oracle
杜子不疼.2 小时前
国产数据库撑起固井软件自主化:金仓 × 中海油服「海恒 Cemsol」落地解析
数据库
隔窗听雨眠2 小时前
GBase 8s并发控制深度解析:封锁机制、隔离级别与死锁处理全攻略
服务器·数据库·oracle
刀客Doc2 小时前
即时零售不只是多一个渠道,品牌开始重做终端生意
大数据·数据库