〇、准备

0.参考材料
Hive(一)——安装配置
Hive为什么要启用Metastore
Hive Metastore原理及配置
Hadoop2.9+Hive3.0+Mysql8.0

1.Hive知识准备
Hive是什么?
②hive的元数据库、MetaStore服务与客户端的关系
这三者的关系在上一篇参考材料中有说明,这里贴一张图略作说明:
Hive安装部署
在HDFS之上,metastore连接元数据库(自带的derby、MySQL、PostgreSQL等),metastore服务配置中会包含元数据库的访问用户名密码;对于hive客户端来说,只需要配置连接metastore服务即可,不需要知道元数据库的用户密码,而Hive的作用就是将SQL转变成类MapReduce语句。
③三种部署模式
需要说明的是:衡量部署模式的标准是hive客户端与metastore的进程关系

  • 内嵌模式(Embedded)

hive服务和metastore服务运行在同一个进程中,derby服务也运行在该进程中.内嵌模式使用的是内嵌的Derby数据库来存储元数据,也不需要额外起Metastore服务。
这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境。

  • 本地模式(Local):本地安装mysql替代derby存储元数据

不再使用内嵌的Derby作为元数据的存储介质,而是使用其他数据库比如MySQL来存储元数据。hive服务和metastore服务运行在同一个进程中,mysql是单独的进程,可以同一台机器,也可以在远程机器上。
这种方式是一个多用户的模式,运行多个用户client连接到一个数据库中。这种方式一般作为公司内部同时使用Hive。每一个用户必须要有对MySQL的访问权利,即每一个客户端使用者需要知道MySQL的用户名和密码才行。

  • 远程模式(Remote): 远程安装mysql 替代derby存储元数据

Hive服务和metastore在不同的进程内,可能是不同的机器,该模式需要将hive.metastore.local设置为false,将hive.metastore.uris设置为metastore服务器URL。
远程元存储需要单独起metastore服务,然后每个客户端都在配置文件里配置连接到该metastore服务。将metadata作为一个单独的服务进行启动。各种客户端通过beeline来连接,连接之前无需知道数据库的密码。
仅连接远程的mysql并不能称之为“远程模式”,是否远程指的是metastore和hive服务是否在同一进程内。

2.环境准备(远程模式)
①Ubuntu
②HDFS
③MySQL(或者其他元数据库)

一、部署

1.下载(清华源)
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.1/apache-hive-3.1.1-bin.tar.gz
2.解压安装

tar -zxvf apache-hive-3.1.1-bin.tar.gz -C  ../local/
mv apache-hive-3.1.1-bin/ hive-3.1.1/

3.环境变量

sudo vi ~/.bashrc #最好在/etc/profile中也做一遍
#最下面添加
export HIVE_HOME=/home/hadoop/local/hive-3.1.1
export PATH=$PATH:$HIVE_HOME/bin
#保存后编译
source ~/.bashrc

4.配置文件
①metastore服务端
hive-site.xml

cd hive-3.1.1/conf/
sudo vi hive-site.xml
<configuration>
	<property><!--数据库连接地址,使用MySQL存储元数据信息-->
    		<name>javax.jdo.option.ConnectionURL</name>
    		<value>jdbc:mysql://192.168.1.110:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</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>hadoop</value>
		<description>Username to use against metastore database</description>
	</property>
	<property><!--密码-->
		<name>javax.jdo.option.ConnectionPassword</name>
		<value>hadoop</value>
		<description>password to use against metastore database</description>
	</property>	
	<property><!--本地表的默认位置-->
		<name>hive.metastore.warehouse.dir</name>
		<value>/usr/hive/warehouse</value>
	</property>
	<property><!--这个可以不要-->
		<name>hive.metastore.uris</name><!--Hive连接到该URI请求远程元存储的元数据-->
		<value>thrift://192.168.1.108:9083</value>
	</property>
</configuration>
sudo vi hive-env.sh
# Set HADOOP_HOME to point to a specific hadoop install directory
 HADOOP_HOME=/home/hadoop/local/hadoop-3.2.0/
# Hive Configuration Directory can be controlled by:
 export HIVE_CONF_DIR=/home/hadoop/local/hive-3.1.1/conf
# Folder containing extra libraries required for hive compilation/execution can be controlled by:
 export HIVE_AUX_JARS_PATH=/home/hadoop/local/hive-3.1.1/lib

②客户端
hive-site.xml

</configuration>
<property><!--本地表的默认位置-->
		<name>hive.metastore.warehouse.dir</name>
		<value>/usr/hive/warehouse</value>
	</property>
	<property><!--这个一定要有-->
		<name>hive.metastore.uris</name><!--Hive连接到该URI请求远程元存储的元数据-->
		<value>thrift://192.168.1.108:9083</value>
	</property>
</configuration>

hive-env文件与服务端相同即可(主要是路径添加)
③其他
切换到hadoop,建立以下文件目录(需要指定的话):

hadoop fs -mkdir -p /usr/hive/tmp
hadoop fs -mkdir -p /usr/hive/logs
hadoop fs -mkdir -p /usr/hive/warehouse
hdfs dfs -chmod -R 777 /usr/hive/tmp
hdfs dfs -chmod -R 777 /usr/hive/logs
hdfs dfs -chmod -R 777 /usr/hive/warehouse

有时候还需要切换Hadoop离开安全模式:hdfs dfsadmin -safemode leave

5.connector(metastore服务端需要,客户端不需要)
可以去官网下载 https://dev.mysql.com/downloads/connector/j/
选择对应的系统版本,再解压安装后拷贝到~/local/hive-3.1.1/lib

二、验证

1.服务端启动服务

schematool -initSchema -dbType mysql  #初始化
hive --service metastore -p 9083 & #启动服务

2.客户端

cd  ~/local/hive-3.1.1/
hive
hive>show databases;

相关文章:

  • 2021-10-13
  • 2022-02-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-01
  • 2021-06-12
  • 2022-12-23
猜你喜欢
  • 2022-01-02
  • 2021-09-30
  • 2021-06-14
  • 2019-08-16
相关资源
相似解决方案