[HADOOP] Java에서 hdfs 프로토콜을 통해 hadoop에 액세스하려면 어떻게해야합니까?
HADOOPJava에서 hdfs 프로토콜을 통해 hadoop에 액세스하려면 어떻게해야합니까?
hftp를 통해 hadoop에 연결하는 방법을 찾았으며 정상적으로 작동합니다 (읽기 전용).
uri = "hftp://172.16.xxx.xxx:50070/";
System.out.println( "uri: " + uri );
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get( URI.create( uri ), conf );
fs.printStatistics();
그러나 파일을 복사 할뿐만 아니라 읽고 쓰기를 원합니다. 즉 hdfs를 통해 연결하고 싶습니다. 실제 원격 파일 시스템을 편집 할 수 있도록 hdfs 연결을 활성화하려면 어떻게해야합니까?
hftp-> hdfs에서 위의 프로토콜을 변경하려고 시도했지만 다음 예외가 발생했습니다 ...
(URL 프로토콜과 hadoop에 대한 나의 가난한 지식을 용서하십시오.이 질문은 다소 이상한 질문이라고 생각하지만 어떤 도움이라도 정말로 감사하겠습니다!)
해결법
-
==============================
1.conf로 치려고하는 hadoop의 core-site.xml 및 hdfs-site.xml을 다음과 같이 추가하십시오.
conf로 치려고하는 hadoop의 core-site.xml 및 hdfs-site.xml을 다음과 같이 추가하십시오.
import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.testng.annotations.Test; /** * @author karan * */ public class HadoopPushTester { @Test public void run() throws Exception { Configuration conf = new Configuration(); conf.addResource(new Path("src/test/resources/HadoopConfs/core-site.xml")); conf.addResource(new Path("src/test/resources/HadoopConfs/hdfs-site.xml")); String dirName = "hdfs://hosthdfs:port/user/testJava"; // Values of hosthdfs:port can be found in the core-site.xml in the fs.default.name FileSystem fileSystem = FileSystem.get(conf); Path path = new Path(dirName); if (fileSystem.exists(path)) { System.out.println("Dir " + dirName + " already exists"); return; } // Create directories fileSystem.mkdirs(path); fileSystem.close(); } }
-
==============================
2.hadoop 관련 : hadoop 구성에서 core-site.xml 이름 노드 항목이 127.0.0.1 (localhost) 대신 0.0.0.0으로 제공되는지 확인해야합니다. 중요하게도 어떤 이유로 clouderas vm distro의 기본값은 localhost입니다.
hadoop 관련 : hadoop 구성에서 core-site.xml 이름 노드 항목이 127.0.0.1 (localhost) 대신 0.0.0.0으로 제공되는지 확인해야합니다. 중요하게도 어떤 이유로 clouderas vm distro의 기본값은 localhost입니다.
from https://stackoverflow.com/questions/7844458/how-can-i-access-hadoop-via-the-hdfs-protocol-from-java by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop 1.0.4에서 매퍼 / 리듀서를 연결하는 방법은 무엇입니까? (0) | 2019.08.11 |
---|---|
[HADOOP] hadoop의 hdfs에 JSON 데이터 저장 (0) | 2019.08.11 |
[HADOOP] Cognos BI 환경에서 Apache Hadoop 사용 (0) | 2019.08.11 |
[HADOOP] Windows에서 Hadoop을 컴파일 할 때 'ammintrin.h'가 누락 되었습니까? (0) | 2019.08.11 |
[HADOOP] piggybank를 빌드 할 수 없습니다-> / home / build / ivy / lib가 없습니다 (0) | 2019.08.11 |