2015-09-28 80 views
0

我在我的ubuntu上運行Hive2並嘗試通過hive接口和beeline \ jdbc創建表。 我沒有問題通過配置單元界面創建表,但通過jdbc訪問我得到權限被拒絕的錯誤。無法通過JDBC連接創建Hive表

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.security.AccessControlException Permission denied: user=hive, access=WRITE, inode="/user/hive/warehouse/page_view":cto:supergroup:drwxrwxr-x 

從例外,我看到它正試圖創建一個目錄中的表不存在(/用戶/蜂巢/倉儲/ ...)

hive-default.xml具有以下配置:

<property> 
    <name>hive.metastore.warehouse.dir</name> 
    <value>/usr/local/apache-hive-1.2.1-bin/metastore_db</value> 
    <description>location of default database for the warehouse</description> 
    </property> 
    <property> 
    <name>hive.metastore.uris</name> 
    <value/> 
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description> 
    </property> 
    <property> 
    <name>hive.metastore.connect.retries</name> 
    <value>3</value> 
    <description>Number of retries while opening a connection to metastore</description> 
    </property> 
    <property> 
    <name>hive.metastore.failure.retries</name> 
    <value>1</value> 
    <description>Number of retries upon failure of Thrift metastore calls</description> 
    </property> 
    <property> 
    <name>hive.metastore.client.connect.retry.delay</name> 
    <value>1s</value> 
    <description> 
     Expects a time value with unit (d/day, h/hour, m/min, s/sec, ms/msec, us/usec, ns/nsec), which is sec if not specified. 
     Number of seconds for the client to wait between consecutive connection attempts 
    </description> 
    </property> 
    <property> 
    <name>hive.metastore.client.socket.timeout</name> 
    <value>600s</value> 
    <description> 
     Expects a time value with unit (d/day, h/hour, m/min, s/sec, ms/msec, us/usec, ns/nsec), which is sec if not specified. 
     MetaStore Client socket timeout in seconds 
    </description> 
    </property> 
    <property> 
    <name>hive.metastore.client.socket.lifetime</name> 
    <value>0s</value> 
    <description> 
     Expects a time value with unit (d/day, h/hour, m/min, s/sec, ms/msec, us/usec, ns/nsec), which is sec if not specified. 
     MetaStore Client socket lifetime in seconds. After this time is exceeded, client 
     reconnects on the next MetaStore operation. A value of 0s means the connection 
     has an infinite lifetime. 
    </description> 
    </property> 
    <property> 
    <name>javax.jdo.option.ConnectionPassword</name> 
    <value>mine</value> 
    <description>password to use against metastore database</description> 
    </property> 
    <property> 
    <name>hive.metastore.ds.connection.url.hook</name> 
    <value/> 
    <description>Name of the hook to use for retrieving the JDO connection URL. If empty, the value in javax.jdo.option.ConnectionURL is used</description> 
    </property> 
    <property> 
    <name>javax.jdo.option.Multithreaded</name> 
    <value>true</value> 
    <description>Set this to true if multiple threads access metastore through JDO concurrently.</description> 
    </property> 
    <property> 
    <name>javax.jdo.option.ConnectionURL</name> 
    <value>jdbc:derby:;databaseName=/usr/local/apache-hive-1.2.1-bin/metastore_db;create=true</value> 
    <description>JDBC connect string for a JDBC metastore</description> 
    </property> 

那麼爲什麼它試圖創建/ user/hive /倉庫下的metastore_db?

回答

0

我的問題是我沒有更改hive-default.xml.template名稱hive-site.xml我應該。