目录

一、前期准备

1. hive 及相关配置文件下载

1. hadoop集群

2. 安装mysql

二、安装hive

1. 解压并安装 Hive 使用下面的命令,解压 Hive 安装包:

 2. 配置 MySQL

 3 .配置 Hive

5.启动 Hive

6. 配置hive下的mysql数据库

 7.   验证 Hive 安装是否成功

 三、遇到问题及解决

在启动hive时出现如下问题:

原因:

 解决过程:


 

一、前期准备

信息

版本

存放位置

用户

主机名

hadoop集群

hadoop3.3

/home/hadoop/software/

hadoop

HadoopMaster

mysql

mysql5.7

/home

root

HadoopMaster

hive

hive3.1.2

/home/hadoop/software/

hadoop

HadoopMaster

注:

  • 在安装过程中如果有要写HadoopMster的地方,请换成自己的主机名
  • 在有/home/hadoop/software/路径时,请对应换成自己相应存放hive的路径
  • 配置hive是在hadoop集群的master主机下配置的

1. hive 及相关配置文件下载

http://链接:https://pan.baidu.com/s/1YdQ-93Rpls7rM_i375K85w?pwd=ukdz

hive 安装ranger 插件 hive下载安装_java

注:这三个都要下载 ,之后配置会用到

1. hadoop集群

该部分的安装需要在 Hadoop 已经成功安装的基础上,并且要求

Hadoop 已经正常启动。

2. 安装mysql

二、安装hive

1. 解压并安装 Hive 使用下面的命令,解压 Hive 安装包:

cd /home/hadoop/software/ 
tar -zxvf apache-hive-3.1.2-bin.tar.gz

hive 安装ranger 插件 hive下载安装_hadoop_02

mv apache-hive-3.1.2-bin hive3.1.2   #重命名

 

hive 安装ranger 插件 hive下载安装_java_03

cd hive3.1.2

执行一下 ls -l 命令会看到下面的图片所示内容,这些内容是 Hive 包含的文件:

hive 安装ranger 插件 hive下载安装_java_04

 2. 配置 MySQL

mysql -u root -p 
#然后创建 myhive 用户: 
grant all on *.* to myhive@'%' identified by '123456'; 
grant all on *.* to myhive@'localhost' identified by '123456'; 
grant all on *.* to myhive@'HadoopMaster' identified by '123456'; 
flush privileges;   #刷新
注意:这里的HadoopMaster要对于改为自己hadoop集群中master节点的主机名
创建数据库: 
create database hive01;

 

hive 安装ranger 插件 hive下载安装_hive 安装ranger 插件_05

 

hive 安装ranger 插件 hive下载安装_linux_06

 3 .配置 Hive

(1)进入 hive 安装目录下的配置目录,然后修改配置文件:

      注:如果主机名和我的不一样的要把配置文件中的HadoopMaster 对应换成自己的主机名

  • cd /home/hadoop/software/hive3.1.2/conf
  • 在windows上先打开一个txt文件,然后在文件中添加如下内容
<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
    <property> 
        <name>hive.metastore.local</name> 
        <value>true</value> 
    </property> 
    <property> 
        <name>javax.jdo.option.ConnectionURL</name> 
         <value>jdbc:mysql://HadoopMaster:3306/hive01?characterEncoding=UTF-8</value> 
    </property> 
    <property> 
        <name>javax.jdo.option.ConnectionDriverName</name> 
        <value>com.mysql.jdbc.Driver</value> 
    </property> 
    <property> 
        <name>javax.jdo.option.ConnectionUserName</name> 
        <value>myhive</value> 
    </property> 
    <property> 
        <name>javax.jdo.option.ConnectionPassword</name> 
        <value>123456</value> 
    </property> 
</configuration>
  • 然后将文件另存为 hive-site.xml 文件,注意这里的后缀是xml
  • 写好之后,将hive-site.xml 文件上传到/home/hadoop/software/hive3.1.2/conf

目录下,上传好之后ll即可看到。

 

hive 安装ranger 插件 hive下载安装_hive_07

 (2)将 mysql 的 java connector 复制到依赖库中

  • ps -ef | grep mysql   #查看mysql是否启动,如下所示即为启动
  •      如果没有启动的则先启动mysql ( /home/mysql5.7/support-files/mysql.server  start)
  • mysql -u root -p  #登录mysql用户

 (3)将文件 mysql-connector-java.jar 上传到hive的lib目录下

hive 安装ranger 插件 hive下载安装_hadoop_08

 (4) 使用下面的命令打开配置:

vi /home/hadoop/.bash_profile  #在文件中添加如下内容
export HIVE_HOME=/home/hadoop/software/hive3.1.2 
export PATH=$HIVE_HOME/bin:$PATH 
#这里的/home/hadoop/software/hive3.1.2 是自己存放hive的路径

hive 安装ranger 插件 hive下载安装_linux_09

  • 添加好之后保存退出,输入:source ~/.bash_pofile 

5.启动 Hive

输入:hive

hive 安装ranger 插件 hive下载安装_hive_10

提醒:如果这里启动hive的时候出现错误,请直接跳到后面遇到问题及解决办法

 注:到了这里hive的下的mysql数据库还不能正常使用,要先初始化hive下的mysql数据库

6. 配置hive下的mysql数据库

/home/hadoop/software/hive3.1.2/bin
schematool  -dbType mysql --initSchema   #初始化mysql数据库

hive 安装ranger 插件 hive下载安装_hive_11

 初始化之后等待完成,出现 schemaTool completed就可以了。

hive 安装ranger 插件 hive下载安装_hive 安装ranger 插件_12

 7.   验证 Hive 安装是否成功

hive
show databases;

hive 安装ranger 插件 hive下载安装_hive_13

 三、遇到问题及解决

在启动hive时出现如下问题:

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.conf.Configuration.set(Configuration.java:1361)
        at org.apache.hadoop.mapred.JobConf.setJar(JobConf.java:536)
        at org.apache.hadoop.mapred.JobConf.setJarByClass(JobConf.java:554)
        at org.apache.hadoop.mapred.JobConf.<init>(JobConf.java:448)
        at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5141)
        at org.apache.hadoop.hive.conf.HiveConf.<init>(HiveConf.java:5099)
        at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:97)        at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:81)        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:699)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:236)

原因:

这是因为hadoop下的java剖出来的异常,因为版本不一样

hive 安装ranger 插件 hive下载安装_java_14

 解决过程:

  • 进入hadoop的/hadoop-3.3.0/share/hadoop/common/lib  路径下
  • ll | grep guav 筛选查询以guva 开头的jar包
  • 进入 hive3.1.2/lib 路径下
  • ll | grep guav 筛选查询以guva 开头的jar包  
  • 可以看到在hadoop下的guava-27.0-jre.jar包是27版本的,而在hive下的    guava-19.0.jar 是19版本

 

hive 安装ranger 插件 hive下载安装_hive 安装ranger 插件_15

  • 将hive 下的包删除guava-19.0.jar
  • 进入到hadoop的路径下
  •  cp  guava-27.0-jre.jar /home/hadoop/software//hive3.1.2/lib/  #将guava-27.0-jre.jar复制到hive的lib目录下
  • 从新启动hive就可以了