hive搭建+问题解决

news/2025/4/3 3:52:29/文章来源:https://www.cnblogs.com/yuanfeng10/p/18229876

hive-3.1.2分布式搭建文档

谷歌浏览器下载网址:Google Chrome – Download the fast, secure browser from Google

华为云镜像站:https://mirrors.huaweicloud.com/home

1、上传解压配置环境变量

# 1、解压
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local/soft/# 2、重名名
mv apache-hive-3.1.2-bin hive-3.1.2# 3、配置环境变量
vim /etc/profile# 4、在最后增加配置
export HIVE_HOME=/usr/local/soft/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin# 5、使环境变量剩下
source /etc/profile

2、修改配置文件

1、进入hive配置文件所在目录

cd /usr/local/soft/hive-3.1.2/conf

2、创建hive-site.xml配置文件

vim hive-site.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/hive?useSSL=false&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf8&amp;useUnicode=true</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>hive.metastore.uris</name><value>thrift://master:9083</value></property><property><name>hive.server2.enable.doAs</name><value>false</value></property><property>
<name>hive.querylog.location</name>
<value/>
</property>(同上)
<property>
<name>hive.exec.local.scratchdir</name>
<value/>
</property>(同上)
<property>
<name>hive.downloaded.resources.dir</name>
<value/>
</property>
</configuration>

3、创建log4j.properties配置文件

# 将日志级别改成WARN,避免执行sql出现很多日志
log4j.rootLogger=WARN,CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n%

3、上传mysql驱动

# 将nysql驱动包上传到hive的lib目录下
mysql-connector-java-8.0.29.jar

1.3.6 将hadoop的jline-0.9.94.jar的jar替换成hive的版本。

cp /usr/local/soft/hive-3.1.2/lib/jline-2.12.jar /usr/local/soft/hadoop-3.1.1/share/hadoop/yarn/lib/

4、初始化hive元数据库

# 2、初始化hive的元数据(表结构)到mysql中
schematool -dbType mysql -initSchema

5、启动hive元数据服务

# 后台启动元数据服务
nohup hive --service metastore &

在搭建到此处时,可能会出现的问题:
1、报1130错误
可能的原因:
①mysql-connector的jar包传入到lib/目录时未解压,即导入的文件是以tar.gz结尾
解决方法:导入解压后的jar包
②在hive-site.xml的配置文件中的配置错误,如

点击查看代码
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/hive?useSSL=false&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf8&amp;useUnicode=true</value>
</property>
在输入时将createDatabaseIfNotExist中的If输成IF

这种错误是我在翻阅他人博客时看到的,只要按我上面的配置来,应该不会有这种问题
③这是我在配置过程中遇到的错误即mysql权限问题
关于这个错误,首先是在linux中mysql配置的问题,我在配置的过程中没有修改权限,导致我在使用主机名为master的主节点登陆不了mysql,只能用localhost登录,这里给出我的解决方案
1、在mysql中关闭密码复杂度验证

set global validate_password_policy=0;
set global validate_password_length=1;

2、修改权限

use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;  --修改权限
flush privileges;  --刷新权限
select host,user,authentication_string from user;

配置好后,在用master登录

mysql -uroot -p123456 -hmaster
在登录时主机名master登录就没有问题了

6、进入hive命令行

# 进入hive
hive# 测试
# 1、创建表
CREATE TABLE IF NOT EXISTS bigdata30.student_test2(id string ,`name` string ,age string  ,gender string  ,clazz string 
) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'  
location '/data/student'; # 2、执行sql查询数据
select clazz,count(1) as num from student group by clazz;

解决 log4j 兼容性问题

警告信息,不影响使用
LF4J: Class path contains multiple SLF4J bindings.

cd /usr/local/soft/hive-3.1.2/lib# hive 与 Hadoop 在运行时会出现 log4j 兼容性问题,这是因为 hive 的 log4j 版本与 Hadoop 的产生了冲突,我们这里将 hive 的 log4j 设置为备份。
mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.jar.bakhadoop的etc/hadoop/core-site.xml
<property><name>hadoop.proxyuser.root.hosts</name><value>*</value>
</property>
<property><name>hadoop.proxyuser.root.groups</name><value>*</value>
</property>

hive其它一些常见问题

1、hadoop未启动,就开始执行hive命令

image-20240408112306610

解决方案:启动hadoop

2、hadoop处于安全模式

解决方案:

1、等着,等hadoop日志和快照数据恢复完毕,自动离开安全模式

2、使用命令强制离开

3、元数据服务没开,操作不了sql语句

image-20240408112344560

解决方案:nohup hive --service metastore &

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/719492.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

e语言 获取重定向的location地址

demo本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18229890

osg使用整理(11):延迟渲染

osg使用整理(11):延迟渲染 一、基础概念前向渲染流程:顶点着色器->图元装配成点线三角形->几何着色器->裁剪剔除->光栅化(片元着色器)->透明度测试、深度测试。延迟渲染流程:顶点着色器->图元装配成点线三角形->几何着色器->裁剪剔除->光栅化…

龙哥量化:期货软件中红红绿绿的多开,空开,空平,多平,多换,空换,双开,双平,换手是什么意思?(转载的)

期货投资者在看盘时,会看到红红绿绿的"多开,空开,空平,多平,多换,空换,双开,双平,换手",以快期专业版为例,如下图1所示:图1.红绿开平数据(快期专业版) 这些数据里面的红色和绿色是什么意思呢?红色表示主动买,绿色表示主动卖吗?多开,空开,多平,双…

6.3深圳安服面试

公司概况、企业文化、自己应聘职位的特点、工作内容 业务产品、研究领域,国家专精特新小巨人 安全咨询、培训、运营三位一体的网络安全综合服务,总部广州;业务: 等保,密评,风险评估,监测、巡检、渗透、应急、培训; 提供解决方案; 安全评估:包括主机漏扫、基线检查、渗…

CTFshow-Crypto(17-25)

17EZ_avbv(easy) 18贝斯多少呢 base62穷举分段 给了段编码,hint为base62 8nCDq36gzGn8hf4M2HJUsn4aYcYRBSJwj4aE0hbgpzHb4aHcH1zzC9C3IL随波逐流和Cyberchef都没梭哈出来 看了师傅们的wp大概意思是: 分组长度固定,但是不一定是被整除为整数,只要找到从头开始截取一个长度解…

平安-瀚景家族

三个月要求概要内容学习情况备注 三讲入司前:学习陈相妤(陈红梅)《讲“三讲”,赢得高端客户认同》 入司起第3个月:对所有人都适用的三讲,1分钟以上、3分钟以内,录视频发给推荐人 …

State设计模式上篇(理论篇)

State设计模式理论篇参考了王备战老师的ppt,相当于是一次期末复习总结吧 ⭐目标:目前的需求是我所制作的OJ项目在面临代码提交结果以及运行结果时对于其中的各个状态(如:通过!编译失败等等诸多状态进行代码开发时,很容易代码一不小心就写烂了,写到连自己都无法看懂的地步,所以尝…

vscode如何添加本地python解释器、解析器 Interpreter?(Python: Select Interpreter),并在vscode运行python代码

先安装python扩展 然后点ctrl+shift+p搜索python:select,选择解析器(或者也可以直接点左下方的) 然后360报毒了,允许通过,然后选择你想要的解释器 然后就好了 20230816 文章目录在VSCode中添加本地Python解释器 Python解释器简介为什么要在VSCode中设置Python解释器如…

红日靶场2

环境搭建 配置ip,web机有两张网卡,我对nat设置为192.168.11.0网段,仅主机为192.168.52.0网段,这三台机子都要改一下ip,官方给出要恢复快照3,恢复的时候有问题,不用恢复没有影响 web机的网络情况如下就可以了在这个目录下启动weblogic服务,以管理员身份运行startWebLogic…

C133 线段树分治 CF1681F Unique Occurrences

视频链接:C133 线段树分治 CF1681F Unique Occurrences_哔哩哔哩_bilibili Unique Occurrences - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) Problem - 1681F- Codeforces// 线段树分治 O(nlognlogn) #include <iostream> #include <cstring> #include <al…

P10536 [Opoi 2024] 二十六点 题解

比较直接的做法。 当 \(P_x = 1\) 时显然可以暴力 DP,设 \(f_{x,c}\) 表示 \(x\) 的子树中以 \(c\) 开头的最长不下降子序列的长度。直接转移即可。 \(P_x \neq 1\) 的时候呢?我们发现,所谓“忽略掉这些路径中的第 \(2\) 到第 \(P_x\) 个的点”,代表的就是按照深度转移,大…