微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Hive2.3.0安装笔记

前期准备

完成hadoop的安装
完成MysqL的安装

下载Hive

wget http://mirror.bit.edu.cn/apache/hive/hive-2.3.0/apache-hive-2.3.0-bin.tar.gz
或者去官网安装

解压到指定安装目录

用xftp将安装包传到opt/hadoop中

解压:
tar -zxvf apache-hive-2.3.0-bin.tar.gz

修改文件名称
mv ./apache-hive-2.3.0-bin ./hive-2.3.0

修改环境变量

vi /etc/profile

插入

export HIVE_HOME=/opt/hadoop/hive-2.3.0
export PATH=$HIVE_HOME/bin:$PATH

使其修改立即生效
source /etc/profile

登录MysqL数据库

并创建metastore数据库关闭新主库的只读属性,为其授权(用于存储hive的初始化配置)

create database metastore;

set global read_only=0;
grant all on metastore.* to hive@'%'  identified by 'hive';
grant all on metastore.* to hive@'localhost'  identified by 'hive';

flush privileges;

在这里插入图片描述


如果不关闭数据库的只读属性,执行
grant all on metastore.* to hive@'%' identified by 'hive';时,会报错

下载jdbc connector

点击链接Connector/J 5.1.44下载至本地主机,然后再传至

/opt/hadoop/hive-2.3.0/lib

在这里插入图片描述

修改hive配置文件

cd /opt/hadoop/hive-2.3.0/conf/

重命名配置文件

cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

修改hive-env.sh文件

export JAVA_HOME=/opt/java/jdk1.8.0_201    ##Java路径,根据自己jdk安装的路径配置
export HADOOP_HOME=/opt/hadoop/hadoop-2.8.0   ##Hadoop安装路径
export HIVE_HOME=/opt/hadoop/hive-2.3.0    ##Hive安装路径
export HIVE_CONF_DIR=/opt/hadoop/hive-2.3.0/conf   ##Hive配置文件路径

hadoop   fs   -mkdir   -p   /usr/hive/warehouse
hadoop   fs   -chmod   777   /usr/hive/warehouse 
hadoop   fs   -mkdir  -p   /tmp/hive/
hadoop   fs   -chmod  777   /tmp/hive
hadoop   fs   -ls   /usr/hive/
hadoop   fs   -ls   /tmp/

修改hive-site.xml中的临时目录

将hive-site.xml文件中的${system:java.io.tmpdir}替换为hive的临时目录,例如我替换为/root/hive/tmp,该目录如果不存在则要自己手工创建,并且赋予读写权限。

将${system:user.name}都替换为root

修改hive-site.xml数据库相关的配置

搜索javax.jdo.option.ConnectionURL,将该name对应的value修改MysqL的地址,例如我修改后是:

<name>javax.jdo.option.ConnectionURL</name>  
<value>jdbc:MysqL://172.18.74.236:3306/hive?createDatabaseIfNotExist=true</value>

搜索javax.jdo.option.ConnectionDriverName,将该name对应的value修改MysqL驱动类路径,例如我的修改后是:

 <property> 
       <name>javax.jdo.option.ConnectionDriverName</name> 
       <value>com.MysqL.jdbc.Driver</value> 
</property>      

搜索javax.jdo.option.ConnectionUserName,将对应的value修改MysqL数据库登录名:

<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>

搜索javax.jdo.option.ConnectionPassword,将对应的value修改MysqL数据库登录密码

     <name>javax.jdo.option.ConnectionPassword</name>
     <value>******</value>

修改为自己的密码

搜索hive.metastore.schema.verification,将对应的value修改为false:

    <name>hive.metastore.schema.verification</name>
     <value>false</value>

启动和测试

MysqL数据库进行初始化

进入到hive的bin目录 执行命令:

schematool -initSchema -dbType MysqL

在这里插入图片描述


报出两个错:

一个

Fri Mar 30 14:55:35 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MysqL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

仔细看了看,发现是字符串中没有配置SSL这个配置项。

需要在连接字符串中加上useSSL=false/true配置。

<value>jdbc:MysqL://172.18.74.236:3306/hive?createDatabaseIfNotExist=true</value>

修改

 <value>jdbc:MysqL://172.18.74.236:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>

第二个:

在安装Hive的时候报错:

org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
Underlying cause: java.sql.sqlException : Access denied for user 'root'@'master.hadoop' (using password: YES)

解决方案:

  1. 首先登陆用root用户登录MysqL
    MysqL -u root -p

  2. 查看root下
    MysqL> select user,host from MysqL.user where user='root';

    在这里插入图片描述


    原因是’root’@'master’用户权限不足,利用root用户给该用户分配权限
    MysqL> grant all on *.* to 'root'@'master' identified by '你的数据库密码'

    在这里插入图片描述


    退出 重新初始化
    成功!

    在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐