복붙노트

[HADOOP] HIVE 시작시 java.net.URISyntaxException

HADOOP

HIVE 시작시 java.net.URISyntaxException

나는 HIVE에서 새로운 사람입니다. 나는 이미 hadoop을 설정했고 잘 작동하며, 나는 Hive를 설정하려고합니다. 하이브를 시작하면 다음과 같은 오류가 표시됩니다.

Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

어떤 해결책이 있습니까?

해결법

  1. ==============================

    1.hive-site.xml 시작 부분에 다음을 추가하십시오.

    hive-site.xml 시작 부분에 다음을 추가하십시오.

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

    관련 질문

  2. ==============================

    2.나는 그것을 스스로 알아 낸다. hive-site.xml에서 $ {system : java.io.tmpdir} / $ {system : user.name}을 https://cwiki.apache.org/confluence에서 설명한 내용으로 / tmp / mydir로 바꿉니다. / 디스플레이 / 하이브 / AdminManual + 구성.

    나는 그것을 스스로 알아 낸다. hive-site.xml에서 $ {system : java.io.tmpdir} / $ {system : user.name}을 https://cwiki.apache.org/confluence에서 설명한 내용으로 / tmp / mydir로 바꿉니다. / 디스플레이 / 하이브 / AdminManual + 구성.

  3. ==============================

    3.이 등록 정보에서 hfs-site.xml 변경

    이 등록 정보에서 hfs-site.xml 변경

    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive-${user.name}</value>
    
     <name>hive.exec.local.scratchdir</name>
     <value>/tmp/${user.name}</value>
    
    <name>hive.downloaded.resources.dir</name>
    <value>/tmp/${user.name}_resources</value>
    
    <name>hive.scratch.dir.permission</name>
        <value>733</value>
    

    하이브 메타 스토어 및 하이버 서버 2 다시 시작

  4. ==============================

    4.나도 Hbase에 대한 HMaster를 시작하는 동안 같은 오류가 발생했습니다. 이것은 hbase-site.xml의 hbase.rootdir 특성에 hbase 데이터를 저장하려는 hdfs의 디렉토리 경로를 지정하여 수정되었습니다. 이전에는 상대 경로 만 사용했습니다.

    나도 Hbase에 대한 HMaster를 시작하는 동안 같은 오류가 발생했습니다. 이것은 hbase-site.xml의 hbase.rootdir 특성에 hbase 데이터를 저장하려는 hdfs의 디렉토리 경로를 지정하여 수정되었습니다. 이전에는 상대 경로 만 사용했습니다.

    경로 일으키는 예외 : hdfs : // localhost : 8020

    올바른 경로 : hdfs : // localhost : 8020 / hbase

  5. ==============================

    5.스레드 "main"의 예외 java.lang.IllegalArgumentException : java.net.URISyntaxException : 절대 URI의 상대 경로 : $ {system : java.io.tmpdir % 7D / $ % 7Bsystem : user.name % 7D 시스템 : java.io.tmpdir - 경로 시스템 : user.name - 사용자 이름

    스레드 "main"의 예외 java.lang.IllegalArgumentException : java.net.URISyntaxException : 절대 URI의 상대 경로 : $ {system : java.io.tmpdir % 7D / $ % 7Bsystem : user.name % 7D 시스템 : java.io.tmpdir - 경로 시스템 : user.name - 사용자 이름

    위의 속성은 사용자가 설정해야하는 시스템 수준 속성이므로 하이브 사이트 템플릿은 이러한 수동 구성을 제공하지 않았습니다.

    hive-site.xml에서 이름 값 키 쌍이있는 속성 태그를 사용하는 것과 같은 위의 속성을 설정합니다. 사용자 수준까지 temp의 위치를 ​​선택합니다

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

    6.hive-site.xml에 속성 추가

    hive-site.xml에 속성 추가

    <configuration>
    <property>
      <name>hive.metastore.schema.verification</name>
      <value>false</value>
      <description>Will remove your error occurring because of metastore_db in shark</description>
    </property>
    </configuration>
    

    시스템에 따라 hive-env.sh에 java 및 hadoop 경로를 추가하십시오.

    # Set HADOOP_HOME to point to a specific hadoop install directory
    export HADOOP_HOME=/home/user17/BigData/hadoop
    
    #hive 
    export HIVE_HOME=/home/user17/BigData/hive
    
    # Hive Configuration Directory can be controlled by:
    export HIVE_CONF_DIR=$HIVE_HOME/conf
    

    또한 .bashrc에 하이브와 hadoop 경로를 설정합니다.

    export JAVA_HOME=/home/user17/jdk
    export PATH=$PATH:$JAVA_HOME/bin
    
    export HADOOP_INSTALL=/home/user17/BigData/hadoop
    export PATH=$PATH:$HADOOP_INSTALL/bin
    export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
    export HADOOP_COMMON_HOME=$HADOOP_INSTALL
    export HADOOP_HDFS_HOME=$HADOOP_INSTALL
    export YARN_HOME=$HADOOP_INSTALL
    
    export HIVE_INSTALL=/home/user17/BigData/hive
    export PATH=$PATH:$HIVE_INSTALL/bin
    

    참고 -이 모든 파일 경로는 내 시스템에 따라 설정되므로 시스템에 따라 경로를 지정해야합니다. 일하지 않으면 알려주세요.

  7. from https://stackoverflow.com/questions/27099898/java-net-urisyntaxexception-when-starting-hive by cc-by-sa and MIT license