当前位置: 首页 > news >正文

4.子任务四:Hive 安装配置

4.子任务四:Hive 安装配置

只在master节点操作
(1) 将Hive 3.1.2的安装包解压到/root/software目录下;
(2) 在“/etc/profile”文件中配置Hive环境变量HIVE_HOME和PATH的值,并让配置文件立即生效;
(3) 查看Hive版本,检测Hive环境变量是否设置成功;
(4) 切换到 $HIVE_HOME/conf 目录下,将hive-env.sh.template文件复制一份并重命名为hive-env.sh;然后,使用vim编辑器进行编辑,在文件中配置HADOOP_HOME、HIVE_CONF_DIR以及HIVE_AUX_JARS_PATH参数的值,将原有值删除并将前面的注释符#去掉;配置完成,保存退出;
(5) 将 /root/software 目 录 下 的 MySQL 驱动包mysql-connector-java-5.1.47-bin.jar 拷 贝 到HIVEHOME/lib目录下;(6)在HIVE_HOME/lib目录下; (6) 在HIVEHOME/lib目录下;(6)在HIVE_HOME/conf目录下创建一个名为hive-site.xml的文件,并使用vim编辑器进行编辑;
配置如下内容:

在这里插入图片描述
(7) 使用schematool命令,通过指定元数据库类型为“mysql”,来初始化源数据库的元数据;
(8) 使用CLI启动Hive,进入Hive客户端;在Hive默认数据库下创建一个名为student的管理表;
在这里插入图片描述
---------------------------------------------------------------------------分割线---------------------------------------
(1) 将Hive 3.1.2的安装包解压到/root/software目录下;

# 进入software文件夹下面:
cd /root/software
tar -xvf hive-name.tar.gz
# 对得到的文件重新命名:
mv 旧文件夹名字 新文件夹名字(如hive)

(2) 在“/etc/profile”文件中配置Hive环境变量HIVE_HOME和PATH的值,并让配置文件立即生效;

# 进入根目录~
cd ~
vim /etc/profile
# 新增Hive环境变量HIVE_HOME和PATH的值(下图)
export HIVE_HOME=/root/software/hive
export PATH=$PATH:$HIVE_HOME/bin
# 保存esc:wq
# 置文件立即生效
source /etc/profile

在这里插入图片描述
(3) 查看Hive版本,检测Hive环境变量是否设置成功;

hive --version

在这里插入图片描述

(4) 切换到 $HIVE_HOME/conf 目录下,将hive-env.sh.template文件复制一份并重命名为hive-env.sh;然后,使用vim编辑器进行编辑,在文件中配置HADOOP_HOME、HIVE_CONF_DIR以及HIVE_AUX_JARS_PATH参数的值,将原有值删除并将前面的注释符#去掉;配置完成,保存退出;

 # `$HIVE_HOME/conf` = root/software/hive(hive的安装目录)cd root/software/hive/confcp hive-env.sh.template hive-env.shvim hive-env.sh# 在打开的hive-env.sh文件里面增加
HADOOP_HOME=/home/luhost/app/hadoop
export HIVE_CONF_DIR=/root/software/hive/conf
export HIVE_AUX_JARS_PATH=/root/software/hive/bin
# 配置完成,保存退出

在这里插入图片描述

(5) 将 /root/software 目 录 下 的 MySQL 驱动包mysql-connector-java-5.1.47-bin.jar 拷 贝 到$HIVE_HOME/lib目录下;

cp /root/software/mysql-connector-java-5.1.47-bin.jar  root/software/hive/lib

(6) 在$HIVE_HOME/conf目录下创建一个名为hive-site.xml的文件,并使用vim编辑器进行编辑;
配置如下内容:

 cd root/software/hive/confvim 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://node1:3306/hivedb?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;allowPublicKeyRetrieval=true</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>123Mysql!</value></property><!-- Hive默认在HDFS的工作目录 --><property><name>hive.metastore.warehouse.dir</name><value>/root/software/hive/warehouse</value></property>
</configuration>

(7) 使用schematool命令,通过指定元数据库类型为“mysql”,来初始化源数据库的元数据;

# 进入hive
bin/schematool -dbType mysql -initSchema -verbose
# 成功的标志:schematool sucessfully!

(8) 使用CLI启动Hive,进入Hive客户端;在Hive默认数据库下创建一个名为student的管理表;

  1. 直接hive文件夹
#直接hive文件夹下输入hive
  1. 在 Hive CLI 中执行以下 SQL 语句,创建仅包含id和name字段的管理表:
-- 在default数据库下创建student管理表
CREATE TABLE student (id INT,         -- 学生ID(整数类型)name STRING     -- 学生姓名(字符串类型)
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';  -- 字段间用逗号分隔(可根据实际数据格式调整)
  1. 验证表创建结果
show tables;

在这里插入图片描述

问题

在(7)中出现问题Eror: Table 'CTLGS' already exists (state=42S01,code=1050),解决:

Eror: Table 'CTLGS' already exists (state=42S01,code=1050)
Closing: 0: jdbc:mysql://node1:3306/hivedb?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:594)at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:567)at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1517)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.hadoop.util.RunJar.run(RunJar.java:323)at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
Caused by: java.io.IOException: Schema script failed, errorcode 2at org.apache.hive.beeline.HiveSchemaTool.runBeeLine(HiveSchemaTool.java:1226)at org.apache.hive.beeline.HiveSchemaTool.runBeeLine(HiveSchemaTool.java:1204)at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:590)... 8 more
*** schemaTool failed ***

报错信息 Table ‘CTLGS’ already exists 表明 MySQL 元数据库(hivedb)中已经存在 Hive 元数据相关的表(如 CTLGS),再次执行 -initSchema 初始化会因表已存在而失败。这通常是因为之前已经执行过初始化操作,或元数据库中残留了旧数据。

方法:删除现有元数据库,重新初始化(推荐,适用于新环境)

如果是首次配置 Hive 且元数据库中没有重要数据,可直接删除 hivedb 数据库,重新执行初始化:

(1) 登录 MySQL:

mysql -u root -p

(2) 删除现有 hivedb 数据库(注意:会清空所有元数据,谨慎操作):

DROP DATABASE IF EXISTS hivedb;

(3) 退出 MySQL:

exit;

(4) 重新执行 Hive 元数据初始化命令:

bin/schematool -dbType mysql -upgradeSchema
http://www.dtcms.com/a/601016.html

相关文章:

  • Lua学习记录(3) --- Lua中的复杂数据类型_table
  • 郑州做定制网站的公司南宁有名的seo费用
  • 华为SRv6技术:引领IP网络进入新时代的智能导航系统
  • 视频汇聚平台EasyCVR:构建通信基站“可视、可管、可控”的智慧安防体系
  • 在云手机中云计算的作用都有哪些?
  • 绿盟防火墙机制
  • 查询数据库上所有表用到图片和视频的数据,并记录到excel表
  • MUVERA:让RAG系统中的多向量检索像单向量一样高效
  • 数据分析笔记02:数值方法
  • 没有网站可以做cpa广告么自己怎么做网站优化
  • Spring Boot实现多数据源连接和切换
  • 【架构设计方法论】概念架构:系统设计的指路明灯
  • 将标签格式为xml的数据集按照8:2的比例划分为训练集和验证集
  • 实战派 JMeter 指南:核心功能、并发压测实操与常见问题解决方案
  • 宁晋网站建设地址信息采集平台
  • 17网站一起做网店如何下单下载站用什么网站系统
  • VMware替代 | ZStack ZSphere虚拟化平台金融级高可用能力解析
  • Go语言编译器源码 | 深入解析Go编译器的设计与实现原理
  • Bootstrap4 文字排版
  • 第13节 93年高能所被入侵,开启中国网络安全发展进程
  • [学习笔记] An Introduction to Flow Matching and Diffusion Models
  • 从零开始的Qt开发指南:(三)信号与槽的概念与使用
  • 视频网站怎么搭建wordpress站点标题图片
  • 加强学校网站建设的要求小说网站建设教程
  • 软考 系统架构设计师历年真题集萃(199)—— 2025年11月系统架构设计师真题2
  • 零门槛部署:在AMD MI300X上极速部署运行GPT-OSS 120B全流程实践
  • 视觉学习——理清机器学习:分类、流程与技术家族的关系
  • 建设网站为什么要备案只有一个页面的网站
  • 分布式专题——54 ElasticSearch集群架构生产最佳实践
  • python+django/flask的宠物用品系统vue