概述
前言:
看看需要那些东西
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.解压所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复