hive 配置 mysql时的问题(Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

这篇文章解决了问题,转载自:http://blog.csdn.net/lanchunhui/article/details/50858092

因为 Hive 的映射工具——metastore,默认存放在 derby 中,而derby数据库的一大缺陷在于其不支持并发访问(早期的hive是这样)。当我们使用MySQL 作为其远程仓库时,自然需要修改相关配置文件。(其实所谓的默认配置,即是配置文件赋予该属性的初始值)。

主要修改的配置文件在$HIVE_HOME/conf/下的hive-site.xml文件(该文件由mv hive-default.xml.template hive-site.xml重命名而来)。

<property>
    <name>javax.jdo.option.ConnectionURLname>
    <value>jdbc:mysql://hadoop0:3306/hive?createDatabaseIfNotExist=truevalue>
property>

<property>
    <name>javax.jdo.option.ConnectionDriverNamename>
    <value>com.mysql.jdbc.Drivervalue>
property>

<property>
    <name>javax.jdo.option.ConnectionUserNamename>
    <value>rootvalue>
property>

<property>
    <name>javax.jdo.option.ConnectionPasswordname>
    <value>adminvalue>
property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

四处配置一一修改属性值之后,对该文件的配置就算结束。可是当我们试图进入 hive shell 时:

[root@hadoop0 ~]# hive

Exception in thread "main"java.lang.RuntimeException: java.lang.IllegalArgumentException:java.net.URISyntaxException: Relative path in absolute URI:${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
...
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

解决方案:将hive-site.xml配置文件的 
hive.querylog.location 
hive.exec.local.scratchdir 
hive.downloaded.resources.dir 
三个值(原始为$标识的相对路径)写成绝对值


你可能感兴趣的:(Hadoop)