我是靠谱客的博主 苗条大白,最近开发中收集的这篇文章主要介绍mac安装hive 2.3.91.下载2.解压,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言:

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

1.下载

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

在这里插入图片描述

下载hive3.1.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

在这里插入图片描述

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

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  
  <property>
        <name>hive.metastore.local</name>
        <value>true</value>
    </property>
	<!-- 连接数据库的url -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/hive</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>root</value>
    </property>
	
	<!-- 本地模式不需要配置 -->
	<!--
	   <property>
	  <name>hive.metastore.uris</name>
	  <value>thrift://cdh:9083</value>
	  </property>
	  -->
</configuration>

4.运行Hive

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

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

schematool -dbType mysql -initSchema

初始化之后然后运行

hive

如图运行成功:
在这里插入图片描述

我遇到的运行报错解决方法:
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时遇到的报错(已解决)

最后

以上就是苗条大白为你收集整理的mac安装hive 2.3.91.下载2.解压的全部内容,希望文章能够帮你解决mac安装hive 2.3.91.下载2.解压所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部