mac中搭建hive环境

1. 安装

安装Hive之前先要安装Hadoop,请参考 Mac Hadoop安装
brew install hive #此命令会下载最新版本,我的是3.1.2,hadoop是3.2.1
注:若之前没提前安装hadoop,此命令会帮忙下载hadoop,但不会进行hadoop的配置和启动,会导致hive客户端能打开,但执行命令会报错。

2. 配置环境变量

export HIVE_HOME=/usr/local/Cellar/hive/3.1.2 export PATH=$HIVE_HOME/bin:$PATH

3. 在命令行中输入hive命令

在命令行中输入hive直接回车,正常情况下会出现hive >表示成功,但很可能会报错:
  • Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V 此问题是应为Hadoop中的guava-xxx.jar和Hive中的guava-xxx.jar版本不一致造成的,解决办法就是看Hadoop和Hive中的那个guava-xxx.jar版本号高,将高版本的覆盖掉低版本的,让Hadoop和Hive的版本完全一致。版本号统一之后重新启动Hadoop。
注:guava-xxx.jar包所在路径:hive:/usr/local/Cellar/hive/3.1.2/libexec/lib;hadoop:/usr/local/Cellar/hadoop/3.2.1/libexec/share/hadoop/common/lib
  • Exception in thread “main” java.lang.ClassCastException: java.base/jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to java.base/java.net.URLClassLoader 这个是JDK版本的问题,不要使用jdk1.9+, 解决办法是配置hadoop中使用jdk1.8版本,需要在libexec/etc/hadoop/hadoop-env.sh 中配置JAVA_HOME export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home配置完需要重启Hadoop。

4. 创建数据库

在MySQL中创建hive数据库, 可以通过终端、Navicat等数据库客户端来创建一个数据库。
mysql> create database hive; # 可以创建一个用户也可以直接使用root账号,此步骤可以省略 mysql> create user 'hive'@'localhost' identified by 'hive'; mysql> grant select,insert,update,delete,alter,create,index,references on hive.* to 'hive'@'localhost'; mysql> flush privileges;

5. 下载MySQL驱动包

打开MySQL官网选择 Platform Independent --> Download -> 解压 -> 将mysql-connector-java-8.0.19.jar放入到/usr/local/Cellar/hive/3.1.2/libexec/lib目录下
0

6. 配置 hive-site.xml

在/usr/local/Cellar/hive/3.1.2/libexec/conf目录下创建hive-site.xml文件(注意该文件并不存在,需要手动创建)。
<configuration>   <property> <name>hive.metastore.localname> <value>truevalue> property> <property> <name>javax.jdo.option.ConnectionURLname> <value>jdbc:mysql://localhost:3306/hivevalue> property> <property> <name>javax.jdo.option.ConnectionDriverNamename> <value>com.mysql.cj.jdbc.Drivervalue> property>    <property> <name>javax.jdo.option.ConnectionUserNamename> <value>rootvalue> property>      <property> <name>javax.jdo.option.ConnectionPasswordname> <value>root123value> property> <property> <name>hive.exec.local.scratchdirname> <value>/tmp/hivevalue> property> <property> <name>hive.downloaded.resources.dirname> <value>/tmp/hivevalue> property> <property> <name>hive.metastore.warehouse.dirname> <value>/user/hive/warehousevalue> property> <property> <name>hive.server2.logging.operation.log.locationname> <value>/tmp/hivevalue> property> configuration>

7. 初始化hive数据库

数据库初始化之后会生成很多张表。
cd /usr/local/Cellar/hive/3.1.2/libexec/bin schematool -initSchema -dbType mysql
0

8. 运行hive

有些hql是需要启动metastore服务的,所以最好先启动metastore服务。
./hive --service metastore &
在终端中直接输入hive命令
hive> show databases; OK default Time taken: 1.098 seconds, Fetched: 1 row(s)
0
 
梦想随心,天地随行
原文地址:https://www.cnblogs.com/geogre123/p/14486136.html