【Hive】Linux(CentOS7)下安装Hive教程

一、实验环境

1. 节点IP

主机名 IP
feilink1 192.168.10.101
feilink2 192.168.10.102
feilink3 192.168.10.103

2. 依赖组件

  • Hadoop
  • MySQL

3. 没有特殊说明的都是在feilink1节点上的操作

4. MySQL配置

  • 用户:root

  • 密码:123456

    5. 各组件版本

    组件 版本
    CentOS 7
    Hadoop 3.3.4
    MySQL 8.0.29

    6. 用户密码

    • root(123456)
    • hadoop(hadoop)

二、配置Hadoop

bash 复制代码
vim /export/server/hadoop/etc/hadoop/core-site.xml

添加以下内容

xml 复制代码
<property>
    <!-- Hive用到的代理 -->
    <name>hadoop.proxyuser.hadoop.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.hadoop.groups</name>
    <value>*</value>
</property>

分发文件

bash 复制代码
scp /export/server/hadoop/etc/hadoop/core-site.xml feilink2:/export/server/hadoop/etc/hadoop/core-site.xml

scp /export/server/hadoop/etc/hadoop/core-site.xml feilink3:/export/server/hadoop/etc/hadoop/core-site.xml

三、下载Hive压缩包

下载地址:http://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz

四、安装Hive

1. 上传压缩包

上传到/export/server目录下

bash 复制代码
tar -zxvf apache-hive-3.1.3-bin.tar.gz

删除压缩包

bash 复制代码
rm -rf apache-hive-3.1.3-bin.tar.gz

修改目录名

bash 复制代码
mv apache-hive-3.1.3-bin/ hive

2. 下载MySQL驱动包

下载地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.29/mysql-connector-java-8.0.29.jar

将下载好的jar包放到hive文件夹的/lib目录下

3. 配置Hive

bash 复制代码
vim /export/server/hive/conf/hive-env.sh
bash 复制代码
export HADOOP_HOME=/export/server/hadoop
export HIVE_CONF_DIR=/export/server/hive/conf
export HIVE_AUX_JARS_PATH=/export/server/hive/lib
bash 复制代码
vim /export/server/hive/conf/hive-site.xml
xml 复制代码
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://feilink1:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;allowPublicKeyRetrieval=true</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>

    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>feilink1</value>
    </property>

    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://feilink1:9083</value>
    </property>

    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>

</configuration>

五、初始化元数据库

在mysql中执行

bash 复制代码
CREATE DATABASE hive CHARSET UTF8;
GRANT ALL PRIVILEGES ON hive.* TO 'root'@'%';
FLUSH PRIVILEGES;

执行元数据库初始化命令

bash 复制代码
cd /export/server/hive/
bin/schematool -initSchema -dbType mysql -verbos

初始化成功

初始化成功后,会在MySQL的hive库中新建74张元数据管理的表

sql 复制代码
use hive;
show tables;

六、启动Hive

1. 权限配置

创建日志文件夹

bash 复制代码
mkdir /export/server/hive/logs

修改权限

bash 复制代码
chown -R hadoop:hadoop /export/server/hive

切换用户

bash 复制代码
su hadoop

2. 启动Hadoop

bash 复制代码
start-all.sh

3. 启动元数据服务(二选一)

前台启动

bash 复制代码
bin/hive --service metastore

后台启动

bash 复制代码
nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &

4. 启动客户端(二选一)

Hive Shell方式(可以直接写SQL)

bash 复制代码
bin/hive

Hive ThriftServer方式(不能直接写SQL,需要配合外部客户端使用)

bash 复制代码
bin/hive --service hiveserver2
# 后台启动
nohup bin/hiveserver2 > /export/logs/hiveserver2.log 2>&1 &

5. 启动成功

相关推荐
chlk1232 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
武子康2 小时前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
舒一笑3 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件3 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
大大大大晴天4 小时前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
深紫色的三北六号13 小时前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash17 小时前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI1 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行2 天前
Linux和window共享文件夹
linux
木心月转码ing2 天前
WSL+Cpp开发环境配置
linux