伪分布Hadoop下安装Hive

一、下载并安装Mysql

(1)下载mysql安装包(mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar)

下载官网:MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/

(2)上传mysql安装包并解压至/usr/local/

ruby 复制代码
tar -xvf /opt/mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C /usr/local

(3)进入/usr/local/,使用rpm安装mysql解压后的其中5个包(按照以下顺序安装)

ruby 复制代码
rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm

(4)启动/关闭Mysql服务器

ruby 复制代码
#启动mysql服务
systemctl start mysqld
#查看mysql服务状态
systemctl status mysqld
#关闭mysql服务
systemctl stop mysqld
#重启mysql服务
service mysqld restart

二、查看Mysql的原始密码并登录进入mysql

(1)查看原始密码

ruby 复制代码
[root@hadoop ~]# cat /var/log/mysqld.log | grep password
2024-04-20T16:41:01.790879Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 9m/O;xQbsfTk

(2)使用原始密码登录

ruby 复制代码
[root@hadoop ~]# mysql -uroot -p'9m/O;xQbsfTk'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

(3)修改密码为Admin@123456

ruby 复制代码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123456';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123456';
Query OK, 0 rows affected (0.01 sec)

三、下载并安装Hive

Hive下载官网:Index of /dist/hive (apache.org)https://archive.apache.org/dist/hive/

MySQL Connector下载地址:

MySQL :: Download MySQL Connector/J (Archived Versions)https://downloads.mysql.com/archives/c-j/

(1)上传hive安装包到/opt目录,解压至/usr/local/

ruby 复制代码
cd /opt
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local/

(2)添加环境变量

ruby 复制代码
#打开系统环境变量配置文件
vim /etc/profile
#刷新一下配置文件
source /etc/profile

(3)解决日志Jar包冲突

Hive由日志slf4j配置,但是我们yarn也有,两者会冲突。将hive安装目录下的lib目录的日志文件名修改。

ruby 复制代码
cd /usr/local/apache-hive-3.1.2-bin/lib
mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.jar.bak

四、将Hive元数据配置到MySQL

(1)将MySQL的JDBC驱动拷贝到Hive的lib目录下

MySQL Connector下载地址:

MySQL :: Download MySQL Connector/J (Archived Versions)https://downloads.mysql.com/archives/c-j/

(2)配置hive-site.xml

进入hive安装目录下的conf目录:cd /usr/local/apache-hive-3.1.2-bin/conf

在hive/conf目录下新建hive-site.xml文件:vim hive-site.xml

html 复制代码
<configuration>
   <property>
<!--Mysql的连接协议-->
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/metastore?useSSL=true</value>
    </property>
 
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
<!--mysql  数据库账号-->
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
 
    <property>
<!--mysql  数据库密码-->
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>Admin@123456</value>
    </property>
 
    <property>
<!-- Hive 存储路径(hdfs路径)-->
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
 
    <property>
<!-- Hive 元数据存储版本的验证 -->
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
 
    <property>
<!-- Hive jdbc连接端口:10000 -->
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    </property>
<!-- Hive 连接的主机 -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>localhost</value>
    </property>
<!--元数据存储授权-->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
    <!-- 后两个是配置hive提示显示当前数据库名 -->
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>
 
    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
<!-- 将hive可以设置成本地模式来执行任务,不然会namenode内存空间不够,jvm不够新job启动导致。 -->
    <property>  
      <name>hive.exec.mode.local.auto</name>  
      <value>true</value>  
    </property>
</configuration>

五、启动Hive

启动Hive之前,一定要先启动Hadoop集群。

(1)初始化客户端(进入mysql,新建Hive元数据库)

ruby 复制代码
[root@hadoop conf]# mysql -uroot -p'Admin@123456'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.26 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database metastore;
Query OK, 1 row affected (0.07 sec)

mysql> exit;
Bye
[root@hadoop conf]# 

(2)初始化Mysql服务器

在启动Hive之前,需要执行schematool -dbType mysql initSchema

(3)启动hive

如果出现以下启动错误:

解决方案:

查看该jar包在hadoop安装目录和hive的安装目录中的版本信息,将hadopp安装目录下的jar包替换hive安装目录下的jar包。

cd /usr/local/hadoop-3.1.4/share/hadoop/common/lib

cd /usr/local/apache-hive-3.1.2-bin/lib

启动hive成功的界面(一定要先启动Hadoop集群):

相关推荐
Dxy123931021617 分钟前
别再让 ES 把你拖垮!5 个实战技巧让搜索性能提升 10 倍
大数据·elasticsearch·搜索引擎
2501_943695331 小时前
大专市场调查与统计分析专业,怎么辨别企业招聘的“画饼”岗位?
大数据
七夜zippoe1 小时前
CANN Runtime跨进程通信 共享设备上下文的IPC实现
大数据·cann
威胁猎人1 小时前
【黑产大数据】2025年全球电商业务欺诈风险研究报告
大数据
十月南城1 小时前
Hadoop基础认知——HDFS、YARN、MapReduce在现代体系中的位置与价值
hadoop·hdfs·mapreduce
L543414461 小时前
告别代码堆砌匠厂架构让你的系统吞吐量翻倍提升
大数据·人工智能·架构·自动化·rpa
证榜样呀1 小时前
2026 大专计算机专业必考证书推荐什么
大数据·前端
LLWZAI2 小时前
让朱雀AI检测无法判断的AI公众号文章,当创作者开始与算法「躲猫猫」
大数据·人工智能·深度学习
難釋懷2 小时前
分布式锁的原子性问题
分布式
SickeyLee2 小时前
产品经理案例分析(五):电商产品后台设计:撑起前台体验的 “隐形支柱”
大数据