Hive安装教程

ops/2025/2/3 11:15:06/

Hive安装教程


文章目录

  • Hive安装教程
    • 写在前面
    • 安装
      • 下载
      • 安装部署
        • 安装Hive
        • 启动并使用Hive
    • MySQL安装
      • 检查当前系统是否安装过MySQL
      • 安装
      • 初始化数据库
    • Hive元数据配置到MySQL
      • 拷贝驱动
      • 配置Metastore到MySQL
      • 再次启动Hive


写在前面

  • Linux版本:CentOS7.5
  • Hive版本:Hive-3.1.2

安装

下载

下载地址:http://archive.apache.org/dist/hive/

安装部署

安装Hive
  • 把apache-hive-3.1.2-bin.tar.gz上传到linux的/export/software目录下
  • 解压apache-hive-3.1.2-bin.tar.gz到/export/module/目录下面
[whybigdata@wbd01 software]$ tar -zxvf /export/software/apache-hive-3.1.2-bin.tar.gz -C /export/module/
  • 修改/etc/profile.d/my_env.sh,添加环境变量
[whybigdata@wbd01 software]$ sudo vim /etc/profile.d/my_env.sh

添加内容

#HIVE_HOME
export HIVE_HOME=/export/module/hive
export PATH=$PATH:$HIVE_HOME/bin
  • 解决日志Jar包冲突
[whybigdata@wbd01 software]$ mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak
  • 初始化元数据库
[whybigdata@wbd01 hive]$ bin/schematool -dbType derby -initSchema
启动并使用Hive
  • 启动Hive
[whybigdata@wbd01 hive]$ bin/hive
  • 使用Hive
hive> show databases;
hive> show tables;
hive> create table test(id int);
hive> insert into test values(1);
hive> select * from test;
  • 在CRT窗口中开启另一个窗口开启Hive,在/tmp/whybigdata目录下监控hive.log文件
Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /export/module/hive-3.1.2/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,开启Hive之后就会占用元数据库,且不与其他客户端共享数据,所以我们需要将Hive的元数据地址改为MySQL

MySQL安装

检查当前系统是否安装过MySQL

[whybigdata@wbd01 ~]$ rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64 
// TODO 如果存在通过如下命令卸载
[whybigdata @wbd01 ~]$ sudo rpm -e --nodeps  mariadb-libs

安装

  • 将MySQL安装包拷贝到/export/software目录下
[whybigdata @wbd01 software]# ll
总用量 528384
-rw-r--r--. 1 root root 609556480 321 15:41 mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
  • 解压MySQL安装包
[whybigdata @wbd01 software]# tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q3UvVlC9-1682062309665)(assets/01.png)]

  • 在安装目录下执行rpm安装
[whybigdata @wbd01 software]$ 
sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

注意:按照顺序依次执行

如果此处Linux是 最小化安装 的,在安装mysql-community-server-5.7.28-1.el7.x86_64.rpm时可能会出现如下错误

[whybigdata@wbd01 software]$ sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
警告:mysql-community-server-5.7.28-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:libaio.so.1()(64bit) 被 mysql-community-server-5.7.28-1.el7.x86_64 需要libaio.so.1(LIBAIO_0.1)(64bit) 被 mysql-community-server-5.7.28-1.el7.x86_64 需要libaio.so.1(LIBAIO_0.4)(64bit) 被 mysql-community-server-5.7.28-1.el7.x86_64 需要

通过yum安装缺少的依赖,然后重新安装mysql-community-server-5.7.28-1.el7.x86_64即可

[whybigdata@wbd01 software] yum install -y libaio

初始化数据库

  • 删除/etc/my.cnf文件中datadir指向的目录下的所有内容,如果有内容的情况下:

查看datadir的值:

[mysqld]
datadir=/var/lib/mysql

删除/var/lib/mysql目录下的所有内容:

[whybigdata @wbd01 mysql]# cd /var/lib/mysql
[whybigdata @wbd01 mysql]# sudo rm -rf ./*    //注意执行命令的位置
  • 初始化数据库
[whybigdata @wbd01 export]$ sudo mysqld --initialize --user=mysql
  • 查看临时生成的root用户的密码
[whybigdata @wbd01 export]$ sudo cat /var/log/mysqld.log

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yDV5Y9Xg-1682062309666)(assets/02.png)]

  • 启动MySQL服务
[whybigdata @wbd01 export]$ sudo systemctl start mysqld
  • 登录MySQL数据库
[whybigdata @wbd01 export]$ mysql -uroot -p
Enter password:   输入临时生成的密码登录成功.
  • 必须先修改root用户的密码,否则执行其他的操作会报错
mysql> set password = password("newPassword");
  • 修改mysql库下的user表中的root用户允许任意ip连接
mysql> update mysql.user set host='%' where user='root';
mysql> flush privileges;

Hive元数据配置到MySQL

拷贝驱动

将MySQL的JDBC驱动拷贝到Hive安装目录的lib目录下

[whybigdata@wbd01 software]$ cp /export/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib

配置Metastore到MySQL

  • $HIVE_HOME/conf目录下新建 hive-site.xml 文件
[whybigdata@wbd01 software]$ vim $HIVE_HOME/conf/hive-site.xml

添加如下内容

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- jdbc连接的URL --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://wbd01:3306/metastore?useSSL=false</value></property><!-- jdbc连接的Driver--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><!-- jdbc连接的username--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- jdbc连接的password --><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- Hive元数据存储版本的验证 --><property><name>hive.metastore.schema.verification</name><value>false</value></property><!--元数据存储授权--><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property><!-- Hive默认在HDFS的工作目录 --><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property>
</configuration>
  • 登陆MySQL
[whybigdata@wbd01 software]$ mysql -uroot -p123456
  • 新建Hive元数据库
mysql> create database metastore;
mysql> quit;
  • 初始化Hive元数据库
[whybigdata@wbd01 software]$ schematool -initSchema -dbType mysql -verbose

再次启动Hive

  • 启动Hive
[whybigdata@wbd01 hive]$ bin/hive
  • 使用Hive
hive> show databases;
hive> show tables;
hive> create table test (id int);
hive> insert into test values(1);
hive> select * from test;
  • 在CRT窗口中开启另一个窗口开启Hive
hive> show databases;
hive> show tables;
hive> select * from aa;

全文结束!!!


http://www.ppmy.cn/ops/155289.html

相关文章

thinkphp6+swoole使用rabbitMq队列

安装think-swoole安装 composer require php-amqplib/php-amqplib,以支持rabbitMq使用安装rabbitMq延迟队列插件 安装 rabbitmq_delayed_message_exchange 插件&#xff0c;按照以下步骤操作&#xff1a; 下载插件&#xff1a;https://github.com/rabbitmq/rabbitmq-delayed-…

android 音视频系列引导

音视频这块的知识点自己工作中有用到&#xff0c;一直没有好好做一个总结&#xff0c;原因有客观和主观的。 客观是工作太忙&#xff0c;没有成段时间做总结。 主观自己懒。 趁着这次主动离职拿了n1的钱&#xff0c;休息一下&#xff0c;对自己的人生做一下总结&#xff0c;…

车载软件架构 --- 基于AUTOSAR软件架构的ECU开发流程小白篇

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 简单&#xff0c;单纯&#xff0c;喜欢独处&#xff0c;独来独往&#xff0c;不易合同频过着接地气的生活…

MySQL数据库环境搭建

下载MySQL 官网&#xff1a;https://downloads.mysql.com/archives/installer/ 下载社区版就行了。 安装流程 看b站大佬的视频吧&#xff1a;https://www.bilibili.com/video/BV12q4y1477i/?spm_id_from333.337.search-card.all.click&vd_source37dfd298d2133f3e1f3e3c…

操作系统和中间件的信息收集

在浏览器中收集操作系统与中间件信息时&#xff0c;主要通过客户端JavaScript&#xff08;用于操作系统/浏览器信息&#xff09;和服务器端脚本&#xff08;用于中间件信息&#xff09;实现。以下是分步指南&#xff1a; 一、客户端操作系统信息收集&#xff08;JavaScript&am…

毕业设计--具有车流量检测功能的智能交通灯设计

摘要&#xff1a; 随着21世纪机动车保有量的持续增加&#xff0c;城市交通拥堵已成为一个日益严重的问题。传统的固定绿灯时长方案导致了大量的时间浪费和交通拥堵。为解决这一问题&#xff0c;本文设计了一款智能交通灯系统&#xff0c;利用车流量检测功能和先进的算法实现了…

【人工智能学习笔记 一】 AI分层架构、基本概念分类与产品技术架构

新的一年2025要对AI以及LLM有个强化的学习&#xff0c;所以第一篇先对整体有个大概的认知&#xff0c;一直分不清LLM和AI的关系&#xff0c;在整个体系里的位置&#xff0c;以及AIGC是什么东西&#xff0c;AI AGENT类似豆包等和大语言模型的具体关系是什么&#xff0c;整个AI的…

独立开发经验谈:如何借助 AI 辅助产品 UI 设计

我在业余时间开发了一款自己的独立产品&#xff1a;升讯威在线客服与营销系统。陆陆续续开发了几年&#xff0c;从一开始的偶有用户尝试&#xff0c;到如今线上环境和私有化部署均有了越来越多的稳定用户&#xff0c;在这个过程中&#xff0c;我也积累了不少如何开发运营一款独…