[
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)