搭建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
相关推荐
卡拉叽里呱啦1 天前
Apache Iceberg介绍、原理与性能优化
大数据·数据仓库
K_i1341 天前
电信大数据实战:MySQL与Hadoop高效同步
大数据·hadoop·mysql
weixin_525936332 天前
金融大数据处理与分析
hadoop·python·hdfs·金融·数据分析·spark·matplotlib
秃头菜狗2 天前
十三、格式化 HDFS 文件系统、启动伪分布式集群
大数据·hadoop·hdfs
笨蛋少年派2 天前
Hadoop简介
大数据·hadoop
Hello.Reader2 天前
Flink 高级配置发行版剖析、Scala 版本、Table 依赖与 Hadoop 集成实战
hadoop·flink·scala
IT毕设梦工厂3 天前
大数据毕业设计选题推荐-基于大数据的人口普查收入数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData
大数据·hadoop·数据分析·spark·毕业设计·源码·bigdata
计算机源码社3 天前
基于Hadoop的车辆二氧化碳排放量分析与可视化系统|基于Spark的车辆排放量实时监控与预测系统|基于数据挖掘的汽车排放源识别与减排策略系统
大数据·hadoop·机器学习·数据挖掘·spark·毕业设计·课程设计
计算机编程小央姐4 天前
大数据工程师认证项目:汽车之家数据分析系统,Hadoop分布式存储+Spark计算引擎
大数据·hadoop·分布式·数据分析·spark·汽车·课程设计
大数据CLUB4 天前
基于mapreduce的资金流入流出任务计算
大数据·hadoop·mapreduce