hive-- 常见错误解决

该文主要是记录本人在初次安装hive时遇到的一些问题及解决方法,如有错误,望大家指正。

问题一:
hive 启动时出现 java.lang.ExceptionInInitializerError

原因:安装的hive版本与hadoop版本不兼容

我当时安装的hadoop版本是3.1.3,然后找的hive版本是2.7.2,后来换成了hive3.1.2就好了

具体的hive和hadoop兼容关系可以看: https://hive.apache.org/downloads.html.

问题二:
Hive启动报错:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument

原因:com.google.common.base.Preconditions.checkArgument这个类所在的jar包为:guava.jar
hadoop中该jar包的版本和hive中该jar包的版本不一致

解决办法:删去hive中的guava.jar包,然后把hadoop中的拷贝到hive的lib目录下

问题三:hive初始化错误com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character

原因:在hive-site.xml文件的3238行的第64列出现了特殊的不合法字符,主要是这几个‘&#8’,代码如下:

<description>
      Ensures commands with OVERWRITE (such as INSERT OVERWRITE) acquire Exclusive locks for&#8;transactional tables.  This ensures that inserts (w/o overwrite) running concurrently
      are not hidden by the INSERT OVERWRITE.
</description>

可以直接把这个<description>删掉

问题四:hive初始化错误 java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: KaTeX parse error: Expected '}', got 'EOF' at end of input: …a.io.tmpdir%7D/%7Bsystem:user.name%7D

解决方法:在hive-site.xml文件中添加以下配置:

<property>
   <name>system:java.io.tmpdir</name>
   <value>你的hive安装目录/tmp</value>
 </property>

问题五:hive初始化错误
Error: Syntax error: Encountered “<EOF>” at line 1, column 64. (state=42X01,code=30000)

原因:hive-site.xml文件没配置好
主要可以看到它走的还是derby,但我们配置的是mysql,说明配置文件没有生效
在这里插入图片描述
我之前的hive-site.xml文件是直接copy的原有的hive-default.xml.template文件,里面有一些别的代码,我也不知道哪里错了,后来是直接自己重新建了一个空的hive-site.xml,然后内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
   <name>system:java.io.tmpdir</name>
   <value>你的hive的安装路径/tmp</value>
 </property>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://主机名称:3306/hive?createDatabaseIfNotExist=true</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>mysql的密码</value>
</property>

如果配置生效的化走的driver应该是mysql的。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值