零、资源准备
- 虚拟机相关: - VMware workstation 16:虚拟机 > vmware_177981.zip- CentOS Stream 9:虚拟机 > CentOS-Stream-9-latest-x86_64-dvd1.iso
- JDK - jdk1.8:JDK > jdk-8u261-linux-x64.tar.gz
- Hadoop - Hadoop 3.3.6:Hadoop > Hadoop 3.3.6.tar.gz
- Hive - Hive 3.1.3: Hive > apache-hive-3.1.3-bin.tar.gz
- JDBC - JDBC连接器:JDBC->mysql-connector-java-8.0.30.jar
- 辅助工具 - MobaXterm:tools > MobaXterm_Portable_v24.0.zip
本文相关资源可以在文末提供的百度网盘资源中下载,除了vmware(你懂的…),以上资源均来源于官网,MobaXterm是便捷式软件,无需安装。
约定:所有安装包存放于
/software
, 安装目录为
/opt
。
一、安装准备
1. 安装Hadoop 3.x
参见:搭建Hadoop3.x完全分布式集群(CentOS 9)
2. 安装MySQL
将MySQL安装在虚拟机Hadoop3。
1) 下载MySQL的源文件
可以通过 wget 工具下载 MySQL 源文件。
mkdir /software
cd /software
yum -yinstallwgetwget http://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
2)安装MySQL源
安装下载的MySQL源文件,在MySQL源文件所在目录执行如下命令。
yum localinstall mysql80-community-release-el9-1.noarch.rpm
3) 安装MySQL
yum install mysql-community-server -y
如果出现
Error: GPG check FAILED
错误,是Mysql的GPG升级的缘故
解决办法:
(1)获取GPG:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
(2)重新配置GPG:
vi /etc/yum.repos.d/mysql-community.repo
(3) 运行
yum install mysql-community-server -y
重新安装MySQL
如果还是不能解决,可以参考官方安装指南: https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en
4)启动MySQL服务
启动MySQL服务,在虚拟机Hadoop3上执行如下命令。
systemctl start mysqld
可以使用命令
systemctl status mysqld
检查服务状态
MySQL安装完成后,默认为root用户提供了初始密码,查看该初始密码的命令如下所示。
5)查看MySQL初始密码
MySQL安装完成后,默认为root用户提供了初始密码,查看该初始密码的命令如下所示。
grep 'temporary password'/var/log/mysqld.log
6)修改密码
通过root用户,以及MySQL为root用户提供的初始密码登陆MySQL,具体命令如下。
mysql –uroot -p
MySQL默认为root提供的密码较为复杂不便使用,这里将root用户的密码修改为
Abc@2024
,刷新MySQL配置,使修改root用户密码的操作生效,具体命令如下。
mysql>alteruser'root'@'localhost' identified by'Abc@2024';
mysql> FLUSH PRIVILEGES;
7)配置远程访问
修改Mysql配置文件
vi /etc/my.cnf
, 在[mysqld]选项下添加如下配置:
bind-address=0.0.0.0
授权帐号可以远程登录,介绍两种方法,任选其一:
方法一:改表法
mysql>use mysql;
mysql>update user sethost='%' where user ='root';
mysql>select host, user from user;
方法二:授权法
mysql>GRANTALLPRIVILEGESON*.*TO'root'@'%' IDENTIFIED BY'Abc@2024'WITHGRANTOPTION;
mysql>FLUSH PRIVILEGES;
最后重启Mysqld服务
systemctl restart mysqld
二、本地模式
这里将Hive安装在Hadoop1虚拟机上
1. 安装Hive
1)上传Hive安装包
通过Hive官网或者文末提供的百度网盘链接下载Hive的安装包apache-hive-3.1.3-bin.tar.gz,使用相关工具(比如xftp、winscp、MobaXterm等)上传安装包到
/software
目录。
这里介绍如何
点击ok后输入密码,左边是本机的目录,右边是虚拟机的目录,找到相应目录和文件,将安装包拖至右窗口即可。
2) 安装Hive
以解压方式安装Hive,将Hive安装到目录/opt,将Hive安装目录重命名为hive-3.1.3,在虚拟机Hadoop1上执行如下命令即可。
tar-zxvf /software/apache-hive-3.1.3-bin.tar.gz –C /opt
cd /opt
mv apache-hive-3.1.3-bin/ hive-3.1.3
3) 同步guava包
将Hive中的guava-19.0.jar替换为Hadoop中的guava-27.0-jre.jar,具体操作执行如下命令。
cd /opt/hadoop-3.3.6/share/hadoop/common/lib
cp guava-27.0-jre.jar /opt/hive-3.1.3/lib/
rm-fr /opt/hive-3.1.3/lib/guava-19.0.jar
4)配置Hive系统环境变量
在虚拟机执行
vi /etc/profile
命令配置系统环境变量文件profile,在该文件的底部添加如下内容。
exportHIVE_HOME=/opt/hive-3.1.3
exportPATH=$PATH:$HIVE_HOME/bin
执行
source /etc/profile
命令初始化系统环境变量使添加的Hive系统环境变量生效。
2. 配置Hive
在Hive安装目录的conf下执行
vi hive-site.xml
命令创建Hive配置文件hive-site.xml,在该文件中添加如下内容。
<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop3:3306/hive?createDatabaseIfNotExist=true </value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>Abc@2024</value></property><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><property><name>hive.server2.thrift.port</name><value>10000</value></property><property><name>hive.server2.thrift.bind.host</name><value>hadoop1</value></property></configuration>
常用参数介绍如下:
属性名称类型默认值****描述hive.metastore.warehouse.dirURI/user/hive/warehouse配置Hive数据存储在HDFS上的目录,托管表就存储在这里hive.server2.thrift.portINT默认10000配置hiveserver2的端口hive.server2.thrift.bind.hostStringlocalhost配置hiveserver2的主机hive.metastore.uris逗号分隔的URI未设定如果未设置(默认值),则使用当前的metastore,否则连接到由URI列表指定要连接的远程metastore服务器。如果有多个远程服务器,则客户端便以轮询方式连接javax.jdo.option.ConnectionURLURIjdbc:derby:;databaseName=metastore_db;create=true配置JDBC连接地址, mysql示例: jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=truejavax.jdo.option.ConnectionDriverNameStringorg.apache.derby.jdbc.EmbeddedDriver配置JDBC驱动, mysql示例: com.mysql.jdbc.Driverjavax.jdo.option.ConnectionUserNameStringAPP配置连接MySQL的用户名javax.jdo.option.ConnectionPasswordStringmine配置连接MySQL的密码
3. 元数据初始化
1)上传MySQL驱动包
在官网或者文末网盘链接下载MySQL驱动包mysql-connector-java-8.0.30.jar,将上传到在虚拟机Hadoop1的
/opt/hive-3.1.3/lib
目录。
2)初始化MySQL
在操作本地模式部署的Hive之前,需要执行初始化MySQL的操作,具体命令如下。
schematool -initSchema-dbType mysql
4. 测试
1)启动Hadoop
在虚拟机hadoop1中,使用命令
start-all.sh
启动hadoop集群。
2)CLI测试
hive命令后不跟参数时,默认启动
cli
,即下面命令可以省略
--service cli
参数
hive --service cli
hive> show databases;
3) beeline测试
Beeline是Hive 0.11版本引入的Hive客户端工具,它通过JDBC的方式连接HiveServer2服务。所以在使用beeline客户端,需要启动hiveserver2服务(HS2),在Hadoop1上运行如下命令。
nohup hive --service hiveserver2 &
提示,在启动一些后台守护进程时经常搭配使用
nohup
和
&
:
nohup <程序名> &
- 使用nohup运行程序使用Ctrl +C 发送SIGINT信号,程序关闭;关闭session发送SIGHUP信号,程序免疫
- 使用&后台运行使用Ctrl +C 发送SIGINT信号,程序免疫;关闭session发送SIGHUP信号,程序关闭
运行如下命令测试环境。
#启动beeline
beeline
#在交互界面输入连接信息:!connect jdbc:hive2://hadoop1:10000
#输入用户名和密码,注意,输入的用户名root和密码123456是虚拟机Hadoop1的用户名和密码#查看所有数据库
show databases;
在运行beeline命令时,也可以使用下面命令指定连接的服务地址和用户名。
beeline -u jdbc:hive2://hadoop1:10000 -n root
- 参数-u:用于指定HiveServer2服务的地址。
- hadoop1:表示启动HiveServer2服务的服务器主机名。
- 10000:是HiveServer2服务默认使用的端口。
- 参数-n:用于指定连接HiveServer2服务时加载的用户名,该用户名必须具有操作HDFS的权限。
三、远程模式
将MetaStore服务部署在虚拟机hadoop2上。
网络拓扑:
服务****虚拟机MetaStorehadoop2HiveServer2hadoop1
1. 修改Hive配置
进入虚拟机Hadoop1中Hive安装目录下的conf目录,在该目录下执行
vi hive-site.xml
命令创建Hive配置文件hive-site.xml,在该文件中添加如下内容。
<property><name>hive.metastore.uris</name><value>thrift://hadoop2:9083</value></property>
hive.metastore.uris
用于指定MetaStore服务器的地址,如有多个地址,使用逗号隔开。如果未设置(默认值),则使用当前的MetaStore,否则连接到由URI列表指定要连接的远程MetaStore服务器。如果有多个远程服务器,则客户端便以轮询方式连接。
2. 同步Hive
将Hadoop1的Hive环境同步到Hadoop2, 在Hadoop1上执行一下命令:
scp-r /opt/hive-3.1.3 root@hadoop2:/opt
scp /etc/profile root@hadoop2:/etc
3. 启动服务
在Hadoop2主机上启动MetaStore服务
nohup hive --service metastore &
在Hadoop1主机上启动HiveServer2服务
nohup hive --service hiveserver2 &
注意,在本地模式步骤中已经启动了Hiveserver2服务,可以使用
ps -ef | grep hive
命令查看进程ID,使用
kill -9 进程ID
结束指定进程。
4. 测试
同前。
附、网盘资源
链接:https://pan.baidu.com/s/1MSUdwbPArIAglQTDRhOjrg?pwd=jiau
提取码:jiau
版权归原作者 JJustRight 所有, 如有侵权,请联系我们删除。