Cameron Moberg created HIVE-22268: ------------------------------------- Summary: schematool references wrong scripts directory Key: HIVE-22268 URL: https://issues.apache.org/jira/browse/HIVE-22268 Project: Hive Issue Type: Bug Components: Metastore Affects Versions: 2.3.6, 3.1.2 Reporter: Cameron Moberg
When running schematool on 2.3.6, 3.1.2 (no standalone metastore) and possibly others, the schematool uses a Java class org.apache.hadoop.hive.metastore.MetaStoreSchemaInfo where it checks for metastore script dirs `getMetaStoreScriptDir()`. This function returns (essentially) scripts/*metastore*/upgrade/<FILE_NAME> whereas in 2.3.6 and 3.1.2 now it is *metastore/*scripts/upgrade/<FILE_NAME>. {code:java} // OLD public String getMetaStoreScriptDir() { return hiveHome + File.separatorChar + "scripts" + File.separatorChar + "metastore" + File.separatorChar + "upgrade" + File.separatorChar + dbType; } // NEW (tested only with schematool mysql) public String getMetaStoreScriptDir() { return hiveHome + File.separatorChar + "metastore" + File.separatorChar + "scripts" + File.separatorChar + "upgrade" + File.separatorChar + dbType; } {code} I did test it by changing the code and swapping metastore/scripts in the method and it did work. {code:java} org.apache.hadoop.hive.metastore.HiveMetaException: File /opt/apache-hive-2.3.6-src/scripts/metastore/upgrade/mysql/upgrade.order.mysqlnot found at org.apache.hadoop.hive.metastore.MetaStoreSchemaInfo.<init>(MetaStoreSchemaInfo.java:69) at org.apache.hive.beeline.HiveSchemaTool.<init>(HiveSchemaTool.java:92) at org.apache.hive.beeline.HiveSchemaTool.<init>(HiveSchemaTool.java:82) at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1117) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar.run(RunJar.java:244) at org.apache.hadoop.util.RunJar.main(RunJar.java:158) Caused by: java.io.FileNotFoundException: /opt/apache-hive-2.3.6-src/scripts/metastore/upgrade/mysql/upgrade.order.mysql (No such file or directory) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at java.io.FileInputStream.<init>(FileInputStream.java:93) at java.io.FileReader.<init>(FileReader.java:58) at org.apache.hadoop.hive.metastore.MetaStoreSchemaInfo.<init>(MetaStoreSchemaInfo.java:62) ... 9 more *** schemaTool failed *** {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)