Saya menginstal Hive di Windows 10 dan saya menggunakan Cygwin untuk menggunakan utilitas schemaTool untuk menginisialisasi metastore, karena tidak kompatibel dengan Terminal Windows.

Saya mencoba menjalankan perintah berikut:

$ $HIVE_HOME/bin/schematool -dbType derby -initSchema --verbose

Dan saya mendapatkan kesalahan berikut:

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 ***

Versi Hadoop saya adalah 3.2.0 dan versi Hive saya adalah 3.1.2.

2
Priyanka Gupta 3 November 2020, 15:15

1 menjawab

Jawaban Terbaik

Ya akhirnya saya menyelesaikannya tidak perlu Cygwin.

Pertama unduh cmd ini dan rekatkan di folder bin yang mungkin sudah Anda lakukan

https://github.com/HadiFadl/Hive-cmd

Tidak perlu diulang jika sudah melakukannya :)

Saya telah membuat database di mysql dengan membuat database metastore_db;

Hive_site.xml saya terlihat seperti ini karena saya memilih untuk menggunakan mysql, tulis nama pengguna mysql Anda, kata sandi di tempat 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&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>

Tulis ini di cmd:

hive --service schematool -dbType derby -initSchema

Atau tulis ini jika Anda menggunakan mysql sebagai backend:

hive --service schematool -dbType mysql -initSchema

Jika Anda mendapatkan output di akhir seperti

Initialization script completed
schemaTool completed

Anda telah berhasil melakukannya. kalau tidak coba buka C:\Apache-hive-3.1.2-bin\bin melalui cmd dan kemudian jalankan.

2
Jainil Patel 2 Desember 2020, 19:15