提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
HIVE是基于HDFS的数据仓库,要首先搭建好HADOOP的集群才可以正常使用HIVE,HADOOP集运搭建详见Hadoop集群搭建,首先在hadoop1上面搭建hive数据仓库。
提取码: ybts
资源下载
一、内嵌模式
第一种是内嵌模式,利用HIVE自带的derby数据库存储数据
#创建hive安装目录
tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /export/servers/
#重命名hive目录
mv /export/servers/apache-hive-3.1.3-bin/ /export/servers/hive-3.1.3
#同步hadoop和hive的jar包,两者jar包版本不一样
cp /export/servers/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar /export/servers/hive-3.1.3/lib/
#删除hive自带的jar包
rm -rf /export/servers/hive-3.1.3/lib/guava-19.0.jar
#修改环境变量
vi /etc/profile
export HIVE_HOME=/export/servers/hive-3.1.3
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
#初始化derby数据库
schematool -initSchema -dbType derby
#进入数据仓库hive的命令行
hive
show databases;
显示这个说明derby初始化成功
连接hive的命令行,能正常显示hive>就说明hive内嵌模式搭建成功了。
显示hive默认的数据库名称
二、本地模式
搭建本地模式,首先需要把derby数据库替换为mysql的数据库,通过wget来下载数据库
#下载wget服务
yum -y install wget
获取mysql安装包并安装
wget http://dev.mysql.com/get/mysql180-community-release-e19-1.noarch.rpm
yum -y install mysql84-community-release-el9-1.noarch.rpm
yum install mysql-community-server -y
启动MySQL服务
systemctl start mysqld
通过systemctl status mysqld查看当前mysql服务是否正常运行,显示active则说明正常运行
mysql安装好后会自动生产临时密码,每个人产生的临时密码不一样,通过grep来查找
#查找临时密码
grep 'temporary password' /var/log/mysqld.log
#登录数据库
mysql -uroot -p5<kQWFzF_Q?=
#更改数据库用户名和密码
alter user 'root'@'localhost' identified by 'Itcast@123';
#刷新权限
FLUSH PRIVILEGES;
#修改hive的核心配置文件
上传mysql的驱动包mysql-connector-java-8.0.30到hive的lib目录里,这个驱动包资源下载里面有
vi /export/servers/hive-3.1.3/conf/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.ConnectionURL</name>
<value>jdbc:mysql://localhost: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>Itcast@123</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_local/warehouse</value>
</property>
</configuration>
#初始化mysql数据库
schematool -initSchema -dbType mysql
#进入hive的命令行
hive
三、远程模式
远程模式需要hadoop1启动metastore和hiveserver2两个服务,启动后界面会一直运行,需新建一个窗口执行指令
hive --service metastore
hive --service hiveserver2
把hive安装包拷贝到hadoop2,修改hadoop2的hive-site.xml文件
vi /export/servers/hive-3.1.3/conf/hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop1:9083</value>
</property>
</configuration>
通过hadoop2的beeline连接hadoop1正在运行的hive进程
beeline -u jdbc:hive2://hadoop1:10000 -n root
正常运行后的效果图