【大数据生态】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 密钥,以确保后续安装过程中可以验证软件包的真实性和完整性。这是为了防止安装恶意软件包或被篡改的软件包。
  2. 安装 MySQL Yum 存储库:
    • rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm:这个命令用于安装 MySQL 的 Yum 存储库,以便从存储库中获取 MySQL 软件包进行安装。在安装 MySQL 之前,需要先配置好正确的软件源,这样才能通过 yum 获取并安装 MySQL 软件包。
  3. 使用 yum 安装 MySQL:
    • yum -y install mysql-community-service:这个命令用于使用 yum 安装 MySQL 社区版的服务软件包。在安装前两个步骤完成后,才能通过 yum 从配置好的存储库中获取并安装 MySQL 服务软件包。

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

配置Hadoop

    <!-- 用于指定代理用户的访问权限 -->
    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
    </property>
    <!-- 用于指定代理用户的访问权限所属的用户组 -->
    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
    </property>

下载解压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 
<configuration>
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://hadoop102:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
	</property>

	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.jdbc.Driver</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.server2.thrift.bind.host</name>
		<value>hadoop102</value>
	</property>

	<property>
		<name>hive.metastore.uris</name>
		<value>thrift://hadoop102:9083</value>
	</property>

	<property>
		<name>hive.metastore.event.db.notification.api.auth</name>
		<value>false</value>
	</property>
</configuration>

到目前位置,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的操作,具体看看这位博主的博客,很全呢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值