2015-02-16 8 views
5

Zainstalowałem Ubuntu 14 i Miaoop 2.6.0 i Hive 0.14.0 w moim odtwarzaczu VM. W moim ulu/conf nie ma pliku Hive-site.xml, więc utworzyłem nowy plik. Ale mam błąd, gdy otwieram powłokę Hive. Jeśli usuniemy plik hive-site.xml, mogę otworzyć powłokę. Dlaczego to? co powinienem zrobić? błąd The Hive przedstawia się następująco:Powłoka ula nie otwierająca się, gdy mam stronę roju.xml

> [email protected]:/usr/lib/hive/apache-hive-0.14.0-bin/bin$ hive 
15/02/15 22:51:00 WARN conf.HiveConf: DEPRECATED: Configuration property hive.metastore.local no longer has any effect. Make sure to provide a valid value for hive.metastore.uris if you are connecting to a remote metastore. 
15/02/15 22:51:00 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist 

Logging initialized using configuration in jar:file:/usr/lib/hive/apache-hive-0.14.0-bin/lib/hive-common-0.14.0.jar!/hive-log4j.properties 
SLF4J: Class path contains multiple SLF4J bindings. 
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: Found binding in [jar:file:/usr/lib/hive/apache-hive-0.14.0-bin/lib/hive-jdbc-0.14.0-standalone.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.slf4j.impl.Log4jLoggerFactory] 
Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D 
    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:444) 
    at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672) 
    at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 
Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D 
    at org.apache.hadoop.fs.Path.initialize(Path.java:206) 
    at org.apache.hadoop.fs.Path.<init>(Path.java:172) 
    at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:487) 
    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:430) 
    ... 8 more 
Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D 
    at java.net.URI.checkPath(URI.java:1804) 
    at java.net.URI.<init>(URI.java:752) 
    at org.apache.hadoop.fs.Path.initialize(Path.java:203) 

Każda pomoc będzie wielki!

+0

ostrzeżenie informuje, że kluczem '' hive.metastore.local nie jest używany. Spróbuj usunąć ten conf ze swojej witryny-ula.xml – amow

+0

Czy konieczne jest posiadanie pliku hive-site.xml? Jaki jest jego cel? – DrewRose

Odpowiedz

2

jeśli używasz Hive-1.0.0 następnie utworzyć nowy katalog o nazwie z dziennika w HIVE_HOME następnie przejść do ula-site.xml znaleźć $ {systemowe: java.io.tmpdir} i zastąpić dziennika ścieżce katalogu m.in. ./Home/hduser/ula/log/........

9

trzeba dodać następującą konfigurację do ula-site.xml

<property> 
    <name>hive.querylog.location</name> 
    <value>$HIVE_HOME/iotmp</value> 
    <description>Location of Hive run time structured log file</description> 
    </property> 

    <property> 
    <name>hive.exec.local.scratchdir</name> 
    <value>$HIVE_HOME/iotmp</value> 
    <description>Local scratch space for Hive jobs</description> 
    </property> 

    <property> 
    <name>hive.downloaded.resources.dir</name> 
    <value>$HIVE_HOME/iotmp</value> 
    <description>Temporary local directory for added resources in the remote file system.</description> 
    </property> 

pamiętać, aby zastąpić $ HIVE_HOME z katalogu ula

1

do wszystkich mając zainstalowaną najnowszą Hadoop 2.xy i Hive 1.xy:

razie konieczności Hive start problem:

Edit:

$ HIVE_HOME/conf/ula-site.xml

<property> 
    <name>hive.exec.local.scratchdir</name> 
    <value>$HIVE_HOME/iotmp</value> 
    <description>Local scratch space for Hive jobs</description> 
</property> 



<property> 
    <name>hive.querylog.location</name> 
    <value>$HIVE_HOME/iotmp</value> 
    <description>Location of Hive run time structured log file</description> 
</property> 



<property> 
    <name>hive.downloaded.resources.dir</name> 
    <value>$HIVE_HOME/iotmp</value> 
    <description>Temporary local directory for added resources in the remote file system.</description> 
</property> 
0

względna ścieżka jest wyjątek URISyntaxException przed of musisz być określający ścieżkę względną. Ja też miałem do czynienia z podobnym problemem podczas próby uruchomienia HMastera, błąd polegał na tym, że używałam względnej ścieżki do hdfs dla właściwości hbase.rootdir w hbase-site.xml na poprawieniu ścieżki głównej ścieżki udało się uruchomić HMM normalnie

ścieżka wyjątków powodując: HDFS: // localhost: 8020

poprawna ścieżka: HDFS: // localhost: 8020/HBase

2

Najpierw musisz skopiować pliki konfiguracyjne z hive-default.xml.template do stworzonego hive-site.xml

Jak wspomniano n Hive Admin Configuration manual ustawić następujące configs

<property> 
    <name>hive.querylog.location</name> 
    <value>/tmp/hive</value> 
    <description>Location of Hive run time structured log file</description> 
</property> 

<property> 
    <name>hive.exec.local.scratchdir</name> 
    <value>/tmp/hive</value> 
    <description>Local scratch space for Hive jobs</description> 
</property> 

<property> 
    <name>hive.downloaded.resources.dir</name> 
    <value>/tmp/hive</value> 
    <description>Temporary local directory for added resources in the remote file system.</description> 
</property> 

pracował dla mnie, aby rozpocząć ula jak Beeline.

3

umieścić następujące na początku ula-site.xml

<configuration> 
    <property> 
    <name>system:java.io.tmpdir</name> 
    <value>/tmp/hive/java</value> 
    </property> 
    <property> 
    <name>system:user.name</name> 
    <value>${user.name}</value> 
    </property> 

Zobacz this pytanie również

0

tylko dodać następujące ustawienia do ula miejscu.xml

[[email protected] conf]$ vi hive-site.xml 
< property> 
    < name>hive.querylog.location< /name> 
    < value>/home/hadoop/app/hive/iotmp< /value> 
    < description>Location of Hive run time structured log file< /description> 
< /property> 

< property> 
    < name>hive.exec.local.scratchdir< /name> 
    < value>/home/hadoop/app/hive/iotmp< /value> 
    < description>Local scratch space for Hive jobs< /description> 
< /property> 

< property> 
    < name>hive.downloaded.resources.dir< /name> 
    < value>/home/hadoop/app/hive/iotmp< /value> 
    < description>Temporary local directory for added resources in the remote file system.< /description> 
< /property> 

Zapisz & restartu ula

[[email protected] hive]$ hive 
    hive> show databases; 
    OK 
    default 
    Time taken: 3.684 seconds, Fetched: 1 row(s) 
    hive>