为初始化指定的未知版本:3.1.0 schemaTool 失败
Unknown version specified for initialization: 3.1.0 schemaTool failed
我在 Windows 10 上安装了 Hive,我正在使用 Cygwin 来使用 schemaTool 实用程序来初始化 Metastore,因为它与 Windows 终端不兼容。
我尝试运行以下命令:
$ $HIVE_HOME/bin/schematool -dbType derby -initSchema --verbose
我收到以下错误:
Metastore connection URL: jdbc:derby://localhost:1527/metastore_db;create=true
Metastore Connection Driver : org.apache.derby.jdbc.ClientDriver
Metastore connection User: APP
Starting metastore schema initialization to 3.1.0
org.apache.hadoop.hive.metastore.HiveMetaException: Unknown version specified for initialization: 3.1.0
org.apache.hadoop.hive.metastore.HiveMetaException: Unknown version specified for initialization: 3.1.0
at org.apache.hadoop.hive.metastore.MetaStoreSchemaInfo.generateInitFileName(MetaStoreSchemaInfo.java:137)
at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:585)
at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:567)
at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1517)
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:323)
at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
*** schemaTool failed ***
我的Hadoop版本是3.2.0,我的Hive版本是3.1.2。
是的,我终于解决了这个问题,不需要 Cygwin。
首先下载这些命令并将它们粘贴到您可能已经完成的 bin 文件夹中
https://github.com/HadiFadl/Hive-cmd
已经做过就不用再重复了:)
我已经通过创建数据库 metastore_db;
在 mysql 中创建了数据库
我的 hive_site.xml 看起来像这样因为我选择使用 mysql,写下你的 mysql 用户名,密码代替 root root。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3307/metastore_db?createDatabaseIfNotExist=false&useSSL=true</value>
<description>metadata is stored in a MySQL server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>MySQL JDBC driver class</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>user name for connecting to mysql server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password for connecting to mysql server</description>
</property>
</configuration>
在命令中写入:
hive --service schematool -dbType derby -initSchema
或者如果你使用 mysql 作为后端,那么写这个:
hive --service schematool -dbType mysql -initSchema
如果你在最后得到类似
的输出
Initialization script completed
schemaTool completed
你已经成功了。否则尝试通过 cmd 转到 C:\apache-hive-3.1.2-bin\bin 然后执行它。
我在 Windows 10 上安装了 Hive,我正在使用 Cygwin 来使用 schemaTool 实用程序来初始化 Metastore,因为它与 Windows 终端不兼容。
我尝试运行以下命令:
$ $HIVE_HOME/bin/schematool -dbType derby -initSchema --verbose
我收到以下错误:
Metastore connection URL: jdbc:derby://localhost:1527/metastore_db;create=true
Metastore Connection Driver : org.apache.derby.jdbc.ClientDriver
Metastore connection User: APP
Starting metastore schema initialization to 3.1.0
org.apache.hadoop.hive.metastore.HiveMetaException: Unknown version specified for initialization: 3.1.0
org.apache.hadoop.hive.metastore.HiveMetaException: Unknown version specified for initialization: 3.1.0
at org.apache.hadoop.hive.metastore.MetaStoreSchemaInfo.generateInitFileName(MetaStoreSchemaInfo.java:137)
at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:585)
at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:567)
at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1517)
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:323)
at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
*** schemaTool failed ***
我的Hadoop版本是3.2.0,我的Hive版本是3.1.2。
是的,我终于解决了这个问题,不需要 Cygwin。
首先下载这些命令并将它们粘贴到您可能已经完成的 bin 文件夹中
https://github.com/HadiFadl/Hive-cmd
已经做过就不用再重复了:)
我已经通过创建数据库 metastore_db;
在 mysql 中创建了数据库我的 hive_site.xml 看起来像这样因为我选择使用 mysql,写下你的 mysql 用户名,密码代替 root root。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3307/metastore_db?createDatabaseIfNotExist=false&useSSL=true</value>
<description>metadata is stored in a MySQL server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>MySQL JDBC driver class</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>user name for connecting to mysql server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password for connecting to mysql server</description>
</property>
</configuration>
在命令中写入:
hive --service schematool -dbType derby -initSchema
或者如果你使用 mysql 作为后端,那么写这个:
hive --service schematool -dbType mysql -initSchema
如果你在最后得到类似
的输出Initialization script completed
schemaTool completed
你已经成功了。否则尝试通过 cmd 转到 C:\apache-hive-3.1.2-bin\bin 然后执行它。