[HADOOP] 하둡 2.6.0 파일 시스템 자바 브라우징
HADOOP하둡 2.6.0 파일 시스템 자바 브라우징
CentOS 6.6에서 기본 hadoop 클러스터를 설치했고 몇 가지 기본 프로그램 (파일 시스템 찾아보기, 파일 추가 / 삭제 등)을 쓰고 싶지만 가장 기본적인 앱을 작동시키는 데 어려움을 겪고 있습니다.
일부 기본 코드를 실행하여 콘솔의 디렉토리 내용을 콘솔에 나열하면 다음 오류가 발생합니다.
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.ipc.RPC.getProxy(Ljava/lang/Class;JLjava/net/InetSocketAddress;Lorg/apache/hadoop/security/UserGroupInformation;Lorg/apache/hadoop/conf/Configuration;Ljavax/net/SocketFactory;ILorg/apache/hadoop/io/retry/RetryPolicy;Z)Lorg/apache/hadoop/ipc/VersionedProtocol;
at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:135)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:280)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:245)
at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:100)
at mapreducetest.MapreduceTest.App.main(App.java:36)
내 pom.xml 종속성
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>
코드:
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.DistributedFileSystem;
public class App
{
public static void main( String[] args ) throws IOException, URISyntaxException
{
Configuration conf = new Configuration();
FileSystem fs = new DistributedFileSystem();
fs.initialize(new URI("hdfs://localhost:9000/"), conf);
for (FileStatus f :fs.listStatus(new Path("/")))
{
System.out.println(f.getPath().getName());
}
fs.close();
}
}
fs.initialize ()를 호출 한 후에 오류가 발생합니다. 나는 그 문제가 무엇인지 여기 정말로 확신하지 못한다. 의존성이 없습니까? 그들은 잘못된 버전입니까?
해결법
-
==============================
1.나는 이것을 "java -jar app.jar .... etc"라고 불렀다. 나는 "hadoop jar app.jar"를 사용 했어야했다.
나는 이것을 "java -jar app.jar .... etc"라고 불렀다. 나는 "hadoop jar app.jar"를 사용 했어야했다.
올바르게 실행할 때 의도 한대로 작동합니다.
from https://stackoverflow.com/questions/29538908/hadoop-2-6-0-browsing-filesystem-java by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브의 하위 디렉토리에서 파티션을 수행하는 방법 (0) | 2019.07.03 |
---|---|
[HADOOP] Oozie 워크 플로 시작 문제 (0) | 2019.07.03 |
[HADOOP] hadoop에서 객체를 직렬화하는 법 (HDFS에서) (0) | 2019.07.03 |
[HADOOP] Cloudera에 serde로 JSON 파일로드하기 (0) | 2019.07.03 |
[HADOOP] MapReduce 값을 내림차순으로 정렬 (0) | 2019.07.03 |