Hive3.2.1安装配置 linux

Hive 安装前需要安装好MySQL.

本机环境:

Linux version : Ubuntu 20.04 LTS (GNU/Linux 5.4.0-40-generic x86_64)
MySQL version : 8.0.20-0ubuntu0.20.04.1 (Ubuntu)
Hive version: 3.1.2

下载安装

$ wget mirrors.aliyun.com/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
$ sudo tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C /usr/local   # 解压到/usr/local中
$ cd /sudo mv apache-hive-3.1.2-bin hive # 将文件夹名改为hive
$ sudo chown -R dblab:dblab hive # 修改文件权限

配置环境变量

和配置Java环境变量类似

$ sudo vim /etc/profile
文件尾部增加
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
# 按键盘上的“ESC”键退出vim编辑状态,再输入:wq,保存并退出vim编辑器。
$ source /etc/profile #使配置生效

修改/usr/local/hive/conf下的hive-site.xml

# 将hive-default.xml.template重命名为hive-default.xml;
$ mv hive-default.xml.template hive-default.xml

新建一个配置文件hive-site.xml

$ cd /usr/local/hive/conf
$ vim hive-site.xml

增加配置内容

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
  <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>   		
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
    <description>password to use against metastore database</description>
  </property>
</configuration>	

按键盘上的“ESC”键退出vim编辑状态,再输入:wq,保存并退出vim编辑器。

在MySQL中配置Hive

# 进入mysql
$ mysql -u root -p
# 新建hive数据库,这个数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据
> create database hive;
# 配置mysql允许hive接入,将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码
> grant all on *.* to hive@localhost identified by 'hive';
#刷新mysql系统权限关系表
> flush privileges; 

启动Hive

# 启动hive之前,请先启动hadoop集群
$ start-hdfs.sh
# 启动hive
$ hive

Hive启动中的错误

  1. java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument

    原因:

    com.google.common.base.Preconditions.checkArgument 这是因为hive内依赖的guava.jar和hadoop内的版本不一致造成的。

    解决:

    1.查看hadoop安装目录下$HADOOP_HOME/share/hadoop/common/lib内guava.jar版本
    2.查看hive安装目录下$HIVE_HOME/lib内guava.jar的版本 如果两者不一致,删除版本低的,并拷贝高版本的 问题解决!

  2. org.datanucleus.store.rdbms.exceptions.MissingTableException: Required table missing : “VERSION” in Catalog “” Schema “”. DataNucleus requires this table to perform its persistence operations.

    解决:

    进入hive安装目录(比如/usr/local/hive),执行如下命令:./bin/schematool -dbType mysql -initSchema

    2.1 (“com.mysql.cj.jdbc.Driver”) was not found in the CLASSPATH

    原因:

    在配置hive-site.xml文件时配置了mysql驱动,而$HIVE_HOME/lib目录下没有mysql驱动包。

    解决:

    a.查看MySQL 版本,Linux版本 ,在官网下载MySQL 驱动

    b.解压得到驱动 mysql-connector-java-8.0.20.jar 放到 $HIVE_HOME/lib中

    2.2 Underlying cause: java.sql.SQLException : Access denied for user ‘hive’@‘localhost’ (using password: YES)

    解决:

    a.确认MySQL中已经添加本地用户hive,并且密码为hive

    进入 mysql, 运行命令

    > use user,host from mysql.user;
    # 输出 
    +------------------+-----------+
    | user             | host      |
    +------------------+-----------+
    | debian-sys-maint | localhost |
    | hive             | localhost |
    ...
    

    b. 如果不确定hive用户密码则修改密码:

    >ALTER USER 'hive'@'localhost' IDENTIFIED WITH mysql_native_password BY 'hive';
    

参考:
Hive3.2.1安装指南

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值