hive 2.3.9 解压启动hive报错 & 正常启动之后无法创建数据库

//20220110
本篇用于记录hadoop2.3.9解压之后无法启动 & 启动之后无法建表的问题

问题描述

问题1

  • 在官网下载hive之后,拷贝到本地,解压,进入bin目录用hive启动,此时报出如下错误

  • 出现原因:hadoop和hive 对应的guava文件版本不一致,hadoop guava文件在hadoop安装目录share/hadoop/common/lib路径下;hive此文件在hive解压目录lib目录下,如图二,两个路径下均保持高版本文件即可

    图2

  • 替换文件后可以进入hive shell界面,但是不能执行语句,会报错

  • 出现原因:hive没有初始化,需要手动指定hive将要使用的数据库,由于本次使用的是hive内嵌式数据库“derby”,所以执行如下命令

    schematool -dbType derby -initSchema 
    # derby为需要使用的数据库,如果配置了mysql并需要使用它,则把derby换成mysql
    
  • 如果执行初始化命令报出如下错误,则表示第一次启动hive生成的metastore文件没有删掉,需要删除自动生成的文件,执行成功的截图如下图二
    图1

    图2

问题2

  • 此时,再次启动hive是可以成功执行hql语句的,界面如下图,但是如果执行如“创建数据库”、“创建表”之类的语句,可能会报出“permission deny”错误,如下图二

    图2

  • 出现原因:初始化内嵌式数据库文件metastore时,使用的用户和当前用户不一致,此处截图是root初始化,hadoop用户登录,然后dfs上只有hadoop用户对文件有使用权限,所以在root用户下执行语句,会报错,而在hadoop用户下执行语句,会卡住,因为数据库从属于root,hadoop用户没有权限

  • 如何解决:此时将数据库删掉,重新执行上面的流程即可;或者将文件夹权限改成777(不推荐)

  • 成功执行语句截图如下:


写在最后:下次执行任务还是使用同一个用户,不然不同组件用户不同的话,可能会有非常多的问题

posted @ 2022-01-10 22:13  醉生梦死_0423  阅读(851)  评论(0)    收藏  举报