HIVE 와 OZIE 에 제3자 JAR 가방 을 추가 하 는 방법.

본문의 원문 출처:http://blog.csdn.net/bluishglc/article/details/46005269 어떠한 형식의 전재 도 엄금한다. 그렇지 않 으 면 CSDN 에 의뢰 하여 권익 을 보호 할 것 이다!
HIVE 에 제3자 jar 가방 이나 자신 이 만 든 'UDF' jar 가방 을 도입 해 야 할 때 가 많 습 니 다.HIVE 에서 지정 한 외부 jar 패키지 와 관련 된 설정 은 두 가지 가 있 습 니 다.
  • hive - site. xml 의 설정 항목 인 "hive. aux. jars. path"
  • 환경 변수: HIVEAUX_JARS_PATH

  • 현재 의 실험 에서 확정 할 수 있 는 것 은 두 가지 가 있다.
  • hive. aux. jars. path 설정 항목 은 hive server 에 유효 하지만 hive 셸 에 작용 하지 않 습 니 다. 즉, hive 노드 에 이 항목 을 설정 하 더 라 도 hive 셸 에 게 는 유효 하지 않 습 니 다.hive. aux. jars. path 를 설정 하 는 예 를 들 어 두 가 지 를 주의 하 십시오. 하 나 는 현재 file: / 즉 로 컬 파일 만 지원 합 니 다. HDFS 는 지원 되 지 않 습 니 다.둘째, 여러 파일 은 쉼표 로 구 분 됩 니 다.
  •     <property>
          <name>hive.aux.jars.path</name>
          <value>file:///usr/lib/hive-aux-jars/elasticsearch-hadoop-2.1.0.Beta4.jar,file:///usr/lib/hive-aux-jars/csv-serde-0.9.1.jar</value>
        </property>
  • 환경 변수 HIVEAUX_JARS_PATH 는 hive 셸 에 유효 합 니 다.

  • hive - site. xml 설정 항목: hive. aux. jars. path
    hive. aux. jars. path 설정 에 대해 서 는 HDFS 경 로 를 만 드 는 것 을 권장 합 니 다. jar 가방 은 HDFS 에 전달 하 는 것 이 편리 합 니 다.로 컬 경 로 를 지정 하면 각 노드 의 대응 위치 에 필요 한 jar 가방 이 설치 되 어 있 는 지 확인 해 야 합 니 다. 이렇게 하면 조작 하기 가 비교적 번 거 롭 습 니 다.
    환경 변수 HIVEAUX_JARS_PATH
    환경 변수 에 대한 HIVEAUX_JARS_PATH, 특별히 설명해 야 합 니 다. 보통 이 변 수 를 설정 하면 해당 하 는 jar 를 도입 할 수 있 습 니 다. 그러나 현재 버 전의 hive 에서 이 변수의 설정 값 에 문제 가 있 습 니 다. hive 를 시작 하 는 셸 스 크 립 트 hive - env. sh 를 살 펴 보 겠 습 니 다. 그 안에 다음 과 같은 부분 이 있 습 니 다.
    # Folder containing extra libraries required for hive compilation/execution can be controlled by:
    if [ "${HIVE_AUX_JARS_PATH}" != "" ]; then
      export HIVE_AUX_JARS_PATH=${HIVE_AUX_JARS_PATH}
    elif [ -d "/usr/hdp/current/hive-webhcat/share/hcatalog" ]; then
      export HIVE_AUX_JARS_PATH=/usr/hdp/current/hive-webhcat/share/hcatalog
    fi

    이것 은 대본 이 비교적 엉망 입 니 다. 왜냐하면 우리 가 HIVE 에 게AUX_JARS_PATH 가 값 을 설정 하면 / usr / hdp / current / hiv - webhcat / share / hcalk 이 무 시 됩 니 다.이것 은 분명히 매우 기괴 해 보이 지만, 실제로 hive 는 하나의 HIVE 만 읽 을 수 있다.AUX_JARS_PATH, 즉 위의 이 괴이 한 코드 의 주요 원인 입 니 다.그래서 비교적 좋 은 방법 은 우리 가 한 곳 에 우리 의 공유 jar 가방 을 집중 적 으로 놓 은 다음 에 / usr / hdp / current / hiv - webhcat / share / hcalk 아래 에 해당 하 는 소프트 연결 을 만 들 수 있다 는 것 이다. 예 를 들 어 우 리 는 jar 를 / usr / lib / share - lib 아래 에 통일 적 으로 놓 은 다음 에 이렇게 소프트 연결 을 만 드 는 것 이다.
    sudo -u hive ln -s /usr/lib/share-lib/elasticsearch-hadoop-2.1.0.Beta4.jar /usr/hdp/current/hive-webhcat/share/hcatalog/elasticsearch-hadoop-2.1.0.Beta4.jar

    OOZIE 에서 제3자 JAR 가방 을 어떻게 지정 합 니까?
    제3자 JAR 에 의존 하 는 HIVE 스 크 립 트 자체 가 OOZIE 워 크 플 로 의 일환 이 라면 우리 의 작업 은 아직 끝나 지 않 았 습 니 다. 만약 당신 이 OZIE 에서 제3자 JAR 을 설정 하고 도입 한다 면 당신 의 워 크 플 로 는 실패 할 것 입 니 다.OOZIE 에 대해 제3자 JAR 을 도입 하 는 방법 은 oozie - site. xml 의 oozie. service. Workflow AppService. system. libpath 입 니 다. 이 옵션 을 설정 하고 해당 JAR 가방 을 이 디 렉 터 리 에 전송 해 야 합 니 다.이것 도 HDFS 의 경로 입 니 다!

    좋은 웹페이지 즐겨찾기