欢迎光临
Hive在虚拟机中的部署
   

Hive在虚拟机中的部署

安装Mysql数据库

# 更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 安装Mysql yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
# yum安装Mysql
yum -y install mysql-community-server
# 启动Mysql设置开机启动
systemctl start mysqld
systemctl enable mysqld
# 检查Mysql服务状态
systemctl status mysqld
# 在日志文件中查看密码
cat /var/log/mysqld.log | grep 'password'
# 登录mysql
mysql -uroot -p
# 设置密码策略较宽松
set global validate_password_policy=LOW;
# 指定密码的最小长度要求
set global validate_password_length=4;
# 修改密码
alter user 'root'@'localhost' identified by '123456';
# 授予远程主机密码
grant all privileges on *.* to root@'%' identified by '123456' with grant option;
# 刷新权限
flush privileges;

在这里记录一下关于前三步我的疑惑,前三步是否存在一定的依赖关系:

  1. 更新密钥:
    • rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022:这个命令用于导入 MySQL 的 GPG 密钥,以确保后续安装过程中可以验证软件包的真实性和完整性。这是为了防止安装恶意软件包或被篡改的软件包。
    • 安装 MySQL Yum 存储库:
      • rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm:这个命令用于安装 MySQL 的 Yum 存储库,以便从存储库中获取 MySQL 软件包进行安装。在安装 MySQL 之前,需要先配置好正确的软件源,这样才能通过 yum 获取并安装 MySQL 软件包。
      • 使用 yum 安装 MySQL:
        • yum -y install mysql-community-service:这个命令用于使用 yum 安装 MySQL 社区版的服务软件包。在安装前两个步骤完成后,才能通过 yum 从配置好的存储库中获取并安装 MySQL 服务软件包。

因此,这三个步骤之间是有依赖关系的。首先需要导入 MySQL 的 GPG 密钥,然后安装 MySQL 的 Yum 存储库,最后才能使用 yum 安装 MySQL 服务软件包。这样的顺序可以确保安装过程中所需的软件源和验证机制都得到了正确配置,从而顺利地安装 MySQL。

配置Hadoop

    
    
        hadoop.proxyuser.hadoop.hosts
        *
    
    
    
        hadoop.proxyuser.hadoop.groups
        *
    

下载解压Hive

官网下载地址:https://archive.apache.org/dist/hive/

下载真的太慢了,来这里下载吧。https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/

同时,还需要下载数据库驱动。https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar将驱动放置在hive下的lib包中。

配置Hive

配置环境变量

[atguigu@hadoop102 conf]$ cat hive-env.sh 
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export HIVE_CONF_DIR=/opt/module/hive-3.1.2/
export HIVE_AUX_JARS_PATH = /opt/module/hive-3.1.2/lib

配置hive-site.xml

[atguigu@hadoop102 conf]$ cat hive-site.xml 

	
		javax.jdo.option.ConnectionURL
		jdbc:mysql://hadoop102:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8
	
	
		javax.jdo.option.ConnectionDriverName
		com.mysql.jdbc.Driver
	
	
		javax.jdo.option.ConnectionUserName
		root
	
	
		javax.jdo.option.ConnectionPassword
		123456
	
	
		hive.server2.thrift.bind.host
		hadoop102
	
	
		hive.metastore.uris
		thrift://hadoop102:9083
	
	
		hive.metastore.event.db.notification.api.auth
		false
	

到目前位置,Hive的配置已经完成,现在在启动Hive前,需要先初始化Hive所需的元数据库。

初始化元数据库

hive:小兄弟,没想到吧,咱可不是随便的人。😄

[atguigu@hadoop102 bin]$ ./schematool -initSchema -dbType mysql -verbos
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/module/hive-3.1.2/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

错误原因:系统找不到这个类所在的jar包或者jar包的版本不一样系统不知道使用哪个。hive启动报错的原因是后者。

解决办法:

1、com.google.common.base.Preconditions.checkArgument这个类所在的jar包为:guava.jar

2、hadoop-3.2.1(路径:hadoop\share\hadoop\common\lib)中该jar包为 guava-27.0-jre.jar;而hive-3.1.2(路径:hive/lib)中该jar包为guava-19.0.1.jar

3、将jar包变成一致的版本:删除hive中低版本jar包,将hadoop中高版本的复制到hive的lib中。

启动Hive

后台启动:nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &

查看日志:tail -f metastore.log

启动客户端,Hive Shell方式(可以直接写SQL):bin/hive

对hive的操作,具体看看这位博主的博客,很全呢。

 
 营口莱茵河畔  雷切尔  鲁的拼音  刚买的金钱树叶子发黄怎么办  九月三号  百合代表是什么意思 
打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Hive在虚拟机中的部署》
文章链接:https://goodmancom.com/wl/176027.html

相关推荐