我把hive-0.12升级成0.13.1版本,先在mysql里执行了source upgrade-0.12.0-to-0.13.0.mysql.sql成功了,然后在mysql中创建了一个hivenew(0.12版的是hive)用户,并给予了权限,更改了hive-site.xml文件如下:
1. <property>
2. <name>hive.stats.dbclass</name>
3. <value>jdbc:mysql</value>
4. <description>The default database that stores temporary hive statistics.</description>
5. </property>
6.
7. <property>
8. <name>hive.stats.jdbcdriver</name>
9. <value>com.mysql.jdbc.Driver</value>
10. <description>The JDBC driver for the database that stores temporary hive statistics.</description>
11. </property>
12.
13. <property>
14. <name>hive.stats.dbconnectionstring</name>
15. <value>jdbc:mysql://localhost:3306/hivenew</value>
16. <description>The default connection string for the database that stores temporary hive statistics.</description>
17. </property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivenew?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hivenew</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hivenew</value>
<description>password to use against metastore database</description>
</property>
保存后,把mysql的jdbc复制到了lib下,然后启动hive,虽然能正常显示hive>,和show tables;
但是在mysql里根本没有hivenew这个数据库,我装0.12时装好后自动就有了hive数据库,而show tables,也没有我在hivenew下创建的表格,而且经常出现Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /opt/apache-hive-0.13.1-bin/metastore_db.这样的错误
可见元数据库仍旧是derby,更诡异的是我把hive-site.xml删掉之后,hive它仍旧工作良好能正常显示hive>,和show tables,难道hive-site.xml的配置都无关紧要吗?求求大家帮帮我,急死人了
很明显的是hive-site.xml文件没生效,即使删除了该文件,默认也使用的是derby数据库。针对这种情况,楼主可以重新创建hive-site.xml文件,然后修改为mysql,再重启hive
请问楼主,你的这个问题是怎么解决的啊?
谢谢哈,我这边解决了!从新编译了下!