[ https://issues.apache.org/jira/browse/HIVE-22268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Cameron Moberg resolved HIVE-22268. ----------------------------------- Resolution: Not A Problem > 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: 3.1.2, 2.3.6 > Reporter: Cameron Moberg > Priority: Major > > 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)