mac安装hive 2.3.9

前言:

看看需要那些东西
mac安装hive 2.3.9_第1张图片
hive是基于Hadoop的一个数据仓库工具,所以要安装并使用hive,需要现在装Hadoop,具体的安装方式可以参考之前写的博客《mac安装Hadoop》。

1.下载

我选择手动安装,由于我的hadoop安装的是3.2.4,最新的4.0.0这个alpha版(内部测试版),所以我选择下载3.1.3 hive

mac安装hive 2.3.9_第2张图片

下载hive3.1.3,选这个如下图:

mac安装hive 2.3.9_第3张图片

2.解压

$ tar -zxvf apache-hive-3.1.2-bin.tar.gz 

1.配置环境变量

编辑用户环境变量 vim ~/.bash_profile

#Hive 3.1.3
export HIVE_HOME=/Users/chenl/Library/JavaSoft/Middleware/Hive/apache-hive-3.1.3-bin
export PATH=$HIVE_HOME/bin:$PATH

刷新 source ~/.bash_profile

2.执行hive --version查看版本

结果输出了一坨,发现hive的log4j-slf4j-impl-2.17.1.jar和hadoop的slf4j-reload4j-1.7.35.jar,这两个jar包因为都有/org/slf4j/impl/StaticLoggerBinder.class这个类,所有冲突了
在这里插入图片描述

解决方案:

1.hive降到2.3.9

这种情况大多数因为版本不兼容,所以我打算把hive降级,重复上述安装配置操作,
3.1.2不行,估计是大版本跨越,直接降到2.3.9然后果然好了。。。
在这里插入图片描述

2.直接删除hive里面的这个冲突的jar包,也可以

$ rm -rf log4j-slf4j-impl-2.17.1.jar

mac安装hive 2.3.9_第4张图片

3.本地配置Hive Metastore

3.1 Hive 配置元数据库metastore有3种分别为内嵌配置、本地配置和远程配置,简单说一下:
(1)内嵌配置:

Hive的元数据默认保存在了内嵌的derby数据库( Hive 自带的数据库)里,默认即为内嵌模式

(2)本地配置:

本地安装 MySQL替代 derby 存储元数据, 不再使用内嵌的 derby 作为元数据的存储,而是使用其他数据库比如 MySQL 来存储元数据
Hive 服务和 metastore 服务运行在同一个进程中, MySQL 是单独的进程, 可以同一台机器, 也可以在远程机器上

(3)远程配置:

Hive 服务和 metastore 在不同的进程内, 可能是不同的机器, 该模式需要将 hive.metastore.uris设置为 metastore 服务器URL

3.2下面来讲本地模式配置:

本地安装 MySQL(我的是5.7.23 MySQL),并启动 MySQL 服务
创建数据库hive

create database hive;

需要将 mysql-connector-java-x.x.x.jar (MySQL驱动包)拷贝到 $HIVE_HOME/lib目录下
获取方式:
(1)百度云

链接: mysql-connector-java-8.0.16.jar
密码: wajj

(2)也可以下载到lib目录下:

curl -O https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar

注意:MySQL数据库的版本不能大于MySQL驱动包的版本

配置hive
进入到hive的conf目录下,创建vim hive-site.xml

 $ cd $HIVE_HOME
 $ cd conf/
 $ vim hive-site.xml

然后把下面配置复制到vim 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.jdbc.Drivervalue>
    property>
  
    <property>
        <name>javax.jdo.option.ConnectionUserNamename>
        <value>rootvalue>
    property>
  
  <property>
        <name>javax.jdo.option.ConnectionPasswordname>
        <value>rootvalue>
    property>
	
	
	
configuration>

4.运行Hive

运行Hive之前,要确保MySQL和Hadoop两个服务都已经启动了

初始化hive(从 Hive 2.1 版本开始, 在第一次运行hive之前,需要先运行schematool命令来执行初始化操作。)

schematool -dbType mysql -initSchema

初始化之后然后运行

hive

如图运行成功:
mac安装hive 2.3.9_第5张图片

我遇到的运行报错解决方法:
hadoop和hive的两个guava.jar版本不一致
报错如下:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V at org.apache.hadoop.conf.Configuration.set(Configuration.java:1380) ... at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
解决方法:找到两个jar包的位置,分别位于

  • $HIVE_HOME/lib/
  • $HADOOP_HOME/share/hadoop/common/lib/
    删除低版本的jar包,将高版本的jar包复制到原来低版本的位置即可
    其他报错请参考:
    启动和运行hive时遇到的报错(已解决)

你可能感兴趣的:(大数据,hive,macos,hadoop)