2017-07-13 22 views
0

私はシンプルなハイブサーバー(v2.1.1)をビルドしており、単純なテーブルを作成したいと考えています。エラーが発生しました:ハイブはhiveserver2でテーブルを作成できません

FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.DDLTask. 
MetaException(message:file:/user/hive/warehouse/test2 is not a directory 
or unable to create one) 

my sqlのCLIは、非常に簡単ですcreate table test2(id int)です。 私はCLI上のSQLをhivebeelineの両方でテストしていますが、JDBCも同じエラー出力を持っています。

その他のもの:
1. show tablesは問題ありません。
1)ハイブ-site.xmlの

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
    <property> 
     <name>javax.jdo.option.ConnectionURL</name> 
     <value>jdbc:mysql://192.168.1.230:3306/hive?createDatabaseIfNotExist=true</value> 
     <description>JDBC connect string for a JDBC metastore</description>  
    </property> 
    <property> 
     <name>javax.jdo.option.ConnectionDriverName</name> 
     <value>com.mysql.jdbc.Driver</value> 
     <description>Driver class name for a JDBC metastore</description>  
    </property>    

    <property> 
     <name>javax.jdo.option.ConnectionUserName</name> 
     <value>hive</value> 
     <description>username to use against metastore database</description> 
    </property> 
    <property> 
     <name>javax.jdo.option.ConnectionPassword</name> 
     <value>hive</value> 
     <description>password to use against metastore database</description> 
    </property> 

    <property> 
     <name>hive.server2.enable.impersonation</name> 
     <description>Enable user impersonation for HiveServer2</description> 
     <value>true</value> 
    </property> 
</configuration> 

2)ハイブ-default.xmlの

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
    <property> 
     <name>javax.jdo.option.ConnectionURL</name> 
     <value>jdbc:mysql://192.168.1.230:3306/hive?createDatabaseIfNotExist=true</value> 
     <description>JDBC connect string for a JDBC metastore</description>  
    </property> 
    <property> 
     <name>javax.jdo.option.ConnectionDriverName</name> 
     <value>com.mysql.jdbc.Driver</value> 
     <description>Driver class name for a JDBC metastore</description>  
    </property>    

    <property> 
     <name>javax.jdo.option.ConnectionUserName</name> 
     <value>hive<value> 
     <description>username to use against metastore database</description> 
    </property> 
    <property> 
     <name>javax.jdo.option.ConnectionPassword</name> 
     <value>hive</value> 
     <description>password to use against metastore database</description> 
    </property> 
</configuration> 

3)コアサイト:<プロジェクトディレクトリ> /設定/下
2コンフィグHadoopのユーザー設定のための.xml

<configuration> 
<property> 
     <name>hadoop.proxyuser.hadoop.groups</name> 
     <value>*</value> 
     <description>Allow the superuser oozie to impersonate any members of the group group1 and group2</description> 
</property> 

<property> 
     <name>hadoop.proxyuser.hadoop.hosts</name> 
     <value>*</value> 
     <description>The superuser can connect only from host1 and host2 to impersonate a user</description> 
    </property> 
</configuration> 
PRESTO-Cによってハイブでテーブルを作成することができ
  • プレストhive.metastore.uriで接続するli。
  • 私はhdfs /user/hive/warehouseディレクトリが他のSOトピックのアドバイスによってchmod 755であることを確認しました。
  • 私は一日中苦労しました。何かアドバイスを希望します。私は多分それHDFSのユーザーと設定の問題だと思うが、私は、私はすべての相対設定を見つけることができる場所がわからないんだけど

    hive> create database testdb; 
    FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Unable to create database path file:/user/hive/warehouse/testdb.db, failed to create database testdb) 
    

    UPDATE
    :ありがとう

    UPDATE もdatabseを作成すると失敗します。

    +0

    私の最初の推測は、権利/ユーザーの問題です。一時的にchmod 777すれば助けになりますか? (あるいは、必要なディレクトリとchmod 777を作成してください)。 –

    +0

    'hadoop fs -chmod 777/user/hive/warehouse'では動作しません。とにかくありがとう。 – LoranceChen

    +0

    データベースを作成することはできますか?その中にテーブルがありますか?テーブルをウェアハウスに直接作成できるかどうかはわかりません(通常は少なくともデフォルトのデータベースなどあります) –

    答えて

    0

    ローカルからロケーションを取得しようとしています。 hive-site.xmlにこのような設定があることを確認してください

    <property> 
    <name>hive.metastore.warehouse.dir</name> 
    <value>hdfs://CP000187:9000/user/hive/warehouse</value> 
    <description>location of default database for the 
    warehouse</description> 
    </property> 
    
    関連する問題