安装Hive数据库以及疑难记录

环境:

VMware虚拟机15版本、CENTOS7.4 、hadoop3.2.0,mysql元数据库

一、安装HIVE&配置HIVE

1 下载HIVE包、解压、配置

[root@localhost opt]# tar -zxvf apache-hive-3.1.2-bin.tar.gz 
[root@localhost opt]# sudo vim /etc/profile  #增加HIVE环境变量的配置

#hive
export HIVE_HOME=/opt/apache-hive-3.1.2-bin
export PATH=$HIVE_HOME/bin:$PATH
[root@localhost conf]# source /etc/profile   #更改完记得source一下

2 创建hdfs目录并赋予权限

[root@localhost opt]# hdfs dfs -mkdir -p /usr/hive/warehouse
[root@localhost opt]# hdfs dfs -mkdir -p /usr/hive/tmp
[root@localhost opt]# hdfs dfs -mkdir -p /usr/hive/log
[root@localhost opt]# hdfs dfs -chmod g+w /usr/hive/warehouse
[root@localhost opt]# hdfs dfs -chmod g+w /usr/hive/tmp
[root@localhost opt]# hdfs dfs -chmod g+w /usr/hive/log

3 hive-env.sh配置

#刚刚解压hive配置文件均以.template命名,复制一份进行配置并且使用
[root@localhost apache-hive-3.1.2-bin]# cd conf/
[root@localhost conf]# cp hive-env.sh.template hive-env.shvim hive-env.sh

#在hive中添加JAVA\HADOOP\HIVE等配置,让HIVE可以使用
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk/
export HADOOP_HOME=/usr/hadoop/hadoop-3.2.0
export HIVE_HOME=/opt/apache-hive-3.1.2-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib/*

4 hive-site.xml配置:

#和上边同目录,同样复制一份进行配置
[root@localhost conf]# cp -r hive-default.xml.template hive-site.xml
[root@localhost conf]# vi hive-site.xml

#在文件开头添加如下内容:
<configuration>
  <property>
        <name>system:java.io.tmpdir</name>
        <value>/tmp/hive/java</value>
  </property>
  <property>
        <name>system:user.name</name>
        <value>${user.name}</value>
  </property>
</configuration>
 
 
#修改以下属性的value值 
<configuration>
  <!-- WARNING!!! This file is auto generated for documentation purposes ONLY! -->
  <!-- WARNING!!! Any changes you make to this file will be ignored by Hive.   -->
  <!-- WARNING!!! You must make your changes in hive-site.xml instead.         -->
  <!-- Hive Execution Parameters -->
 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://192.168.32.128:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
  </property>
</configuration>

5 使用schemaTool初始化mysql数据库

[root@localhost conf]# schematool -dbType mysql -initSchema 

6 启动hive测试

# hive

二、疑难杂症

1、未找到schematool命令:

这一步是利用HIVE自带的SHCEMATOOL进行第一步初始化,简单创建实例,或者说相关字典什么的。由于我更改/etc/profile之后忘记了source一下,导致配置未生效,重新source一下即可。
在这里插入图片描述

2、Exception in thread “main” java.lang.RuntimeException: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ‘=’

Schematool初始化时候,由于配置文件不认真,混入了非正经字符,这个不难,根据报错位置修改就好。在这里插入图片描述

3、org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver Underlying cause: java.lang.ClassNotFoundException : com.mysql.jdbc.Driver

在这里插入图片描述

3.1同样schematool初始化过程中,由于缺少驱动导致无法连接。这里是我遇到的第一个大坑,由于对各种环境不熟悉,只能根据度娘进行各种尝试。这种情况,猜测是缺少jdbc驱动,于是添加jdbc驱动到相应的包下面。报的错中提示了lib路径,添加一下即可。
mysql-connector-java-8.0.15.jar添加到hive的lib:
[root@localhost 下载]# cp mysql-connector-java-8.0.15.jar /opt/apache-hive-3.1.2-bin/lib/
至于这个jar,可从官网下载,然后提取,可从网友那里获取资源。官网网址:https://dev.mysql.com/downloads/connector/j/
3.2 驱动版本问题
为了找一个正经的驱动程序,废了半天时间。首先是oracle官网目前支持不登陆下载,由于鄙人不熟悉各个系统环境,找了半天才确认hive链接所需的驱动在这个网页下载,并且我的centos7.4其实就是Redhat嘛,所以选择如下版本。不过mysql\jdk\hadoop等其实是有版本依赖的,这点也很好理解,如果我用最低版本JDK,也无法支持最新版hadoop嘛。找到了一个JDBC mysql的版本的参考。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.Underlying cause: java.sql.SQLException : Access denied for user ‘lee’@‘192.168.1.105’ (using password: YES)

这个简单更改一下权限就好了
在这里插入图片描述

UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;

5. java.lang.RuntimeException: The dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxr-xr-x

命令行启动HVIE实例的时候,由于hdfs权限问题导致的无法读取目录,从而报错,赋权即可。
在这里插入图片描述

[root@localhost ~]# hadoop fs -chmod -R 777 /tmp/hive 
[root@localhost ~]# hadoop fs -ls /tmp 

6. FAILED: Hive Internal Error: java.net.UnknownHostException(bogon: bogon: 未知的名称或服务)

经过度娘搜索,这貌似是一个虚拟机通病,主机名偶发性变为bogon,无论之前你设置的是什么。但是bogon这个名字各服务各机器不认识bogon,所以会报错。解决办法就是告诉各位,bogon就是localhost。
在这里插入图片描述
在hosts文件中增加这一行(你主机的IP)192.168.196.3 localhost
[root@localhost conf]# vi /etc/hosts

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值