搭建hive环境,并解决后启动hive命令报 hive: command not found的问题

一、问题解决

1、问题复现

2、解决问题

查阅资料得知该问题大部分是环境变量配置出了问题,我就输入以下命令进入配置文件检查自己的环境变量配置:

bash 复制代码
[root@node03 ~]# vi /etc/profile

检查发现自己的hive配置没有问题 ,于是我就退出,然后更新了配置文件,更新命令如下

bash 复制代码
[root@node03 ~]# source /etc/profile

再次启动hive命令,成功运行,那么问题原因找到了:修改环境变量配置文件后没有进行更新。

重要的事情说N遍: 修改环境变量配置后记得执行更新命令

二、搭建hive环境流程梳理

以下操作需要在linux上已经完成ZooKeeper,HaDoop-HDFS,Hadoop-Yarn三项的搭建,我这里在linux上准备了三个节点node01,node02,node03,并且三个节点都已经完成上述三项的搭建。

仅作流程梳理,不进行细节展开 。

2、官网地址

2.1、官网: https://hive.apache.org/

2.2、Hive 3.1.2 安装包下载: https://dlcdn.apache.org/hive/hive-3.1.2/

3、安装

3.1、将下载好的安装包上传

上传至node01:/root/目录,执行以下命令

bash 复制代码
# 本命令是解压该压缩安装包解压至指定的/opt/wjx/目录下
[root@node01 ~]# tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/wjx/
# 该命令是删除压缩包
[root@node01 ~]# rm apache-hive-3.1.2-bin.tar.gz -rf

3.2、 修改配置文件

3.2.1 、hive-env.sh

输入以下命令进入文件:

bash 复制代码
# hive-env.sh是hive-env.sh.template复制后的文件名
[root@node01 ~]# cd /opt/wjx/apache-hive-3.1.2-bin/conf/
[root@node01 conf]# cp hive-env.sh.template hive-env.sh
[root@node01 conf]# vim hive-env.sh

进入文件后末尾添加以下配置信息:

bash 复制代码
HADOOP_HOME=/opt/wjx/hadoop-3.3.4/
export HIVE_CONF_DIR=/opt/wjx/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/opt/wjx/apache-hive-3.1.2-bin/lib

3.2.2 、改hive-site.xml

bash 复制代码
# 以下命令进入文件
[root@node01 conf]# cp hive-default.xml.template hive-site.xml
[root@node01 conf]# vim hive-site.xml

将原先<configuration> </configuration> 的内容删除,删除技巧:先按ESC,退出编辑模式,然后按G到最后一行,再敲击显示行号命令

bash 复制代码
:set nu

然后查看</configuration>标签所在行号:假如是6720,再返回到最初 <configuration>地方,快速返回某一行命令:

bash 复制代码
:19(数字是想返回的行号)

然后光标点在第19行,键盘敲6701dd,就删除了6701行数据。

删除原代码后在<configuration> </configuration>里面添加以下代码

bash 复制代码
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node01:3306/hive?createDatabaseIfNotExist=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>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/hive/warehouse</value>
</property>
<property>
<name>hive.server2.webui.host</name>
<value>node01</value>
</property>
<property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://node01:9083</value>
</property>

3.2.3 、改core-site.xml

bash 复制代码
[root@node01 conf]# vim /opt/wjx/hadoop-3.3.4/etc/hadoop/core-site.xml

在<configuration> </configuration>里面添加以下代码

bash 复制代码
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<!-- 通过 httpfs 接口访问的用户获得的群组身份 -->
<!-- 配置允许通过 httpfs 方式访问的客户端的用户组 -->
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

3.3 、配置日志组件

3.3.1、创建日志目录

bash 复制代码
[root@node01 conf]# mkdir /opt/wjx/apache-hive-3.1.2-bin/logs
[root@node01 conf]# cp hive-log4j2.properties.template hive-log4j2.properties
[root@node01 conf]# vim hive-log4j2.properties

3.3.2、进入hive-log4j2.properties文件修改代码:

将这行代码------property.hive.log.dir = {sys:java.io.tmpdir}/{sys:user.name} 替换为:

bash 复制代码
property.hive.log.dir = /opt/wjx/apache-hive-3.1.2-bin/logs

3.4、添加驱动包

就是把这个mysql-connector-java-8.0.18.jar放在node01节点下pache-hive-3.1.2-bin/lib/目录下

3.5、资源拷贝

bash 复制代码
[root@node02 ~]# scp -r root@node01:/opt/wjx/apache-hive-3.1.2-bin /opt/wjx/
[root@node03 ~]# scp -r root@node01:/opt/wjx/apache-hive-3.1.2-bin /opt/wjx/ 
[root@node01 ~]# scp /opt/wjx/hadoop-3.3.4/etc/hadoop/core-site.xml root@node02:/opt/wjx/hadoop-
3.3.4/etc/hadoop/
[root@node01 ~]# scp /opt/wjx/hadoop-3.3.4/etc/hadoop/core-site.xml root@node03:/opt/wjx/hadoop-
3.3.4/etc/hadoop/

3.6 、配置环境变量

(这一步的操作需要在三个节点都进行一次)

bash 复制代码
[root@node01 ~]# vim /etc/profile
[root@node02 ~]# vim /etc/profile
[root@node03 ~]# vim /etc/profile

3.6.1、执行命令后三个节点都添加以下内容

bash 复制代码
export HIVE_HOME=/opt/wjx/apache-hive-3.1.2-bin
export PATH=$HIVE_HOME/bin:$PATH

3.6.2、执行命令后三个节点都保存退出并执行以下更新命令

bash 复制代码
[root@node01 ~]# source /etc/profile
[root@node02 ~]# source /etc/profile
[root@node03 ~]# source /etc/profile
相关推荐
tsyjjOvO2 天前
SpringMVC 从入门到精通
数据仓库·hive·hadoop
Francek Chen3 天前
【大数据存储与管理】分布式数据库HBase:05 HBase运行机制
大数据·数据库·hadoop·分布式·hdfs·hbase
zzzzzwbetter3 天前
Hadoop完全分布式部署-Master的NameNode以及Slaver2的DataNode未启动
大数据·hadoop·分布式
weixin_449310843 天前
ETL转换和数据写入小满OKKICRM的技术细节
数据仓库·php·etl
IvanCodes3 天前
Hive IDE连接及UDF实战
ide·hive·hadoop
yumgpkpm3 天前
华为昇腾910B 开源软件GPUStack的介绍(Cloudera CDH、CDP)
人工智能·hadoop·elasticsearch·flink·kafka·企业微信·big data
lifewange4 天前
Hive数据库
数据库·hive·hadoop
五月天的尾巴5 天前
hive数据库模糊查询表名
hive·查询表名
蓝魔Y5 天前
hive—1.1、执行优化
hive
快乐非自愿5 天前
OpenClaw 生态适配:Hadoop/Hive 技能现状与企业级集成方案
大数据·hive·hadoop·分布式·openclaw