01 引言
hive
本身是没有存储功能的,数据是存储在hadoop
的hdfs
里面。所以要安装并使用hive
,需要现在装Hadoop
,具体的安装方式可以参考之前写的博客《Mac下安装Hadoop》。
接下来,本文讲解如何在Mac的环境下安装hive。
02 Hive安装
① 终端使用brew
安装:
brew install hive
② 配置hive环境变量,打开环境变量配置文件:
open ~/.bash_profile
③ 配置文件最后添加(根据安装的版本号来配置版本号):
export HIVE_HOME=/usr/local/Cellar/hive/3.1.2_3 export PATH=$HIVE_HOME/bin:$PATH
④ 保存并更新配置文件:
source ~/.bash_profile
03 配置hive元数据库
注意:hive 配置元数据库metastore有3种方式,分别为内嵌配置、本地配置和远程配置,这里讲的是本地模式,具体的配置可以参考:《Hive Metastore 的三种配置方式》
Hive
的元数据存储在MySQL
数据库,所以需要安装多一个MySQL
数据库,安装方式可以参考之前写的博客《Mac Docker 安装MySQL》。
安装好MySQL
之后,在MySQL
数据库里新建数据库metastore
;
mysql> create database metastore;
接下来需要配置Hive
关联MySQL
的元数据库了。
① 进入hive配置目录:
cd /usr/local/Cellar/hive/3.1.2_3/libexec/conf
② 新建hive-site.xml
文件:
vi hive-site.xml
③ hive-site.xml
文件里面粘贴如下内容(主要配置Hive
关联MySQL
的元数据库):
<configuration> <property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <!--mysql用户名--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <!--mysql密码--> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> <!-- hive用来存储不同阶段的map/reduce的执行计划的目录,同时也存储中间输出结果 ,默认是/tmp/<user.name>/hive,我们实际一般会按组区分,然后组内自建一个tmp目录存>储 --> <property> <name>hive.exec.local.scratchdir</name> <value>/tmp/hive</value> </property> <property> <name>hive.downloaded.resources.dir</name> <value>/tmp/hive</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> <property> <name>hive.server2.logging.operation.log.location</name> <value>/tmp/hive</value> </property> </configuration>
④ 进入hive
的lib
目录,并下载MySQL
驱动包:
cd /usr/local/Cellar/hive/3.1.2_3/libexec/lib curl -O https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar
04 验证与运行hive
4.1 运行前准备
首先确保MySQL
已经启动:
确保Hadoop
已经启动,启动命令如下:
cd /usr/local/Cellar/hadoop/3.3.1/libexec/sbin ./start-all.sh
浏览器输入如下地址,如果能正常访问,表示hadoop安装成功了:
4.2 验证与运行
命令框里输入:
hive
如果出现下图,表示hive
安装并配置成功:
再输入:
show databases;
如果提示一下异常,表示hive
的数据库MySQL
安装的时候没有初始化:
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
先退出hive
(使用命令exit;
)然后输入命令:
schematool -dbType mysql -initSchema
再次输入hive,并输入命令:
hive show databases;
如果提示如下,表示Hive
安装成功并关联了MySQL
的数据库了: