2016-03-31 4 views
0

Я установил HIVE с помощью this учебника. Но когда я бегу на следующие commadУлей установлен, но дает ошибку при запуске

hive

Я получаю эту ошибку

SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/lib/hive/apache-hive-2.0.0-bin/lib/hive-jdbc-2.0.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/lib/hive/apache-hive-2.0.0-bin/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] Logging initialized using configuration in jar:file:/usr/lib/hive/apache-hive-2.0.0-bin/lib/hive-common-2.0.0.jar!/hive-log4j2.properties Thu Mar 31 13:11:06 IST 2016 Thread[main,5,main] java.io.FileNotFoundException: derby.log (Permission denied) Thu Mar 31 13:11:06 IST 2016 Thread[main,5,main] Cleanup action starting ERROR XBM0H: Directory /usr/lib/hive/apache-hive-2.0.0-bin/metastore_db cannot be created. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source)

и многие другие исключения.

EDIT 1 Не удается найти улей-site.xml

Это то, что моя папка конф выглядит http://postimg.org/image/vloi2vneh/

EDIT 2 ANS WER на этот вопрос не ниже, но в чатах, потому что это очень длинный

ответ

2

Как видно из выходного сообщения, вы используете локальную базу данных метастара Derby, и по умолчанию его местоположение равно /usr/lib/hive/apache-hive-2.0.0-bin/metastore_db, но, по-видимому, у вас нет разрешения на запись по t hat directory

Вы должны изменить каталог метастара в какое-то место, где у вас есть разрешение на запись.

Чтобы изменить расположение каталога metastore, в hive-site.xml добавить (или modifiy) следующее свойство:

<property> 
    <name>javax.jdo.option.ConnectionURL</name> 
    <value>jdbc:derby:;databaseName=/PATH/TO/NEW/METASTORE/DIR/metastore_db;create=true</value> 
    <description>JDBC connect string for a JDBC metastore</description> 
</property> 

Если у вас нет разрешения на изменение hive-site.xml, вы могли бы поставить улей-site.xml в каталог, например $HOME/hive-config, вы можете начать с копирования файла hive-site.xml по умолчанию, а затем изменить его. Затем запустите улей как:

$ cp /usr/lib/hive/apache-hive-2.0.0-bin/conf/hive-default.xml.template $HOME/hive-config/hive-site.xml 
###Modify the new hive-site.xml as mentioned above, then: 
$hive --config $HOME/hive-config/ 
+0

Я не хочу использовать дерби, вместо этого хочу использовать HBASE, поэтому я должен сначала установить HBASE, а затем исправить эту ошибку? –

+0

Я думаю, что я misexplained. Derby - ваш метастор, где у вас есть метаданные о ваших таблицах Hive, это не имеет никакого отношения к фактическим данным, с которыми вы хотите работать. База данных Metastore может быть либо Derby, либо одним из: MySQL, Postgres, Oracle или MS SQL Server https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin#AdminManualMetastoreAdmin-SupportedBackendDatabasesforMetastore – user1314742

+0

Для использования данных Hive с данными HBase , это еще один вопрос :) вы могли бы начать смотреть здесь (но, конечно, вам нужно решить вашу проблему для :)): https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration. Ошибка, которую вы имеете, не связана с HBase, но, конечно же, вам нужно установить некоторую клиентскую библиотеку, чтобы сделать подключение к hive с HBase – user1314742