2017-09-07 12 views
0

하이브의 실행 엔진으로 MapReduce를 사용할 때 대체 백엔드를 defaultFS.impl에 사용할 수 있습니다. 와 유사한 구문을 사용하여 :Tez에 다른 HDFS 백엔드를 지원하는 라이브러리를 어떻게 추가 할 수 있습니까?

LOCATION 'protocol://address:port/dir';

내가 대신 맵리 듀스의 TEZ 실행 엔진을 사용하고 싶지만, TEZ가 인식하기 위해 내 심 라이브러리 (jar 파일)을 추가 할 위치를 알아낼 수 없습니다

내 새로운 프로토콜.

이러한 디렉토리는 어떤 디렉토리입니까? tez-site.conf에 지시문을 추가해야합니까?

추가 입력 :

Vertex failed, vertexName=Map 6, 
vertexId=vertex_1504790331090_0003_1_01, diagnostics=[Vertex 
vertex_1504790331090_0003_1_01 [Map 6] killed/failed due 
to:ROOT_INPUT_INIT_FA 
ILURE, Vertex Input: item initializer failed, 
vertex=vertex_1504790331090_0003_1_01 [Map 6], 
java.lang.RuntimeException: java.lang.ClassNotFoundException: Class 
org.apache. 
hadoop.fs.nfs.NFSv3FileSystem not found 
    at 
org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2241) 
    at   org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2780) 
    at  org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2793) 
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:99) 
    at  org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2829) 
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2811) 
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:390) 
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295) 
    at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.generateSplitsInfo(OrcInputFormat.java:1227) 
    at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getSplits(OrcInputFormat.java:1285) 
    at org.apache.hadoop.hive.ql.io.HiveInputFormat.addSplitsForGroup(HiveInputFormat.java:307) 
    at org.apache.hadoop.hive.ql.io.HiveInputFormat.getSplits(HiveInputFormat.java:409) 
    at org.apache.hadoop.hive.ql.exec.tez.HiveSplitGenerator.initialize(HiveSplitGenerator.java:155) 
    at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:273)..... 

내가는/usr/HDP // hiveserver2/lib 디렉토리에 내 NFS 커넥터 jar 파일을 추가하고 내 하이브 서버를 다시 시작했습니다. 내가 클래스를로드해야하지만, 하이브에서 그렇게하는 방법을 잘 모르겠습니다 생각

<property> 
    <name>hive.aux.jars.path</name> 
    <value>file:///netappnfs/hadoop-nfs-connector-2.0.0.jar</value> 
</property> 

: 나는 또한 하이브-conf.xml하기 위해 보조 경로를 추가했다. 일반 hadoop에는 다음이로드되었습니다.

 <name>fs.AbstractFileSystem.nfs.impl</name> 
    <value>org.apache.hadoop.fs.nfs.NFSv3AbstractFilesystem</value> 

하이브에 해당하는 항목이 있습니까?

답변

1

Hive-site.xml (/ etc/hive/conf)에 jar 정보를 추가하십시오.

property> 
    <name>hive.aux.jars.path</name> 
    <value>file:///location/fle.jar</value> 
</property> 

다시 시작 하이브

+0

추가는 HDFS 호환 파일 시스템을위한 새로운 프로토콜을 인식이 필요합니까? – jscott

+0

하이브 버전 만 호환되어야한다고 생각하지 않습니다. –

+0

나는 여전히보고있는 오류로 내 원래 질문을 수정하려고합니다. – jscott