为初始化指定的未知版本:3.1.0 schematool失败

lztngnrs  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(2652)

我在windows10上安装了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。

jhkqcmku

jhkqcmku1#

是啊,我终于解决了,不用辛温了。
首先下载这些cmd并将它们粘贴到bin文件夹中,您可能已经这样做了
https://github.com/hadifadl/hive-cmd
如果您已经完成了,则无需重复:)
我用create database metastore\ u db在mysql中创建了数据库;
我的hive\u site.xml是这样的,因为我选择使用mysql,用mysql用户名、密码代替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&amp;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>

在cmd中写入:

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,然后执行它。

相关问题