Hadoop의 HDFS 파일 시스템에 액세스하는 Java 구현
Hadoop-0.19.1-core.jar
1. HDFS 객체 만들기
Configuration config = new Configuration();
config.set("fs.default.name","hdfs://127.0.0.1:9000/");
FileSystem dfs = FileSystem.get(config);
2. 새 디렉터리
String dirName = "TestDirectory";
Path src = new Path(dfs.getWorkingDirectory()+"/"+dirName);
dfs.mkdirs(src);
String subDirName = "subDirectory";
Path src = new Path(dfs.getWorkingDirectory()+"/TestDirectory/"+ subDirName);
dfs.mkdirs(src);
3. 디렉터리 삭제
String dirName = "TestDirectory";
Path src = new Path(dfs.getWorkingDirectory()+"/"+dirName);
Dfs.delete(src);
4. 로컬 또는 HDFS 파일 시스템 지정 디렉토리에 파일 복사
Path src = new Path("E://HDFS/file1.txt");
Path dst = new Path(dfs.getWorkingDirectory()+"/TestDirectory/subDirectory/");
dfs.copyFromLocalFile(src, dst);
Path src = new Path(dfs.getWorkingDirectory()+"/TestDirectory/subDirectory/file1.txt");
Path dst = new Path("E://HDFS/");
dfs.copyToLocalFile(src, dst);
5. 파일 작성 및 읽기
Path src = new Path(dfs.getWorkingDirectory()+"/TestDirectory/subDirectory/file2.txt");
dfs.createNewFile(src);
서류를 쓰다
Path src = new Path(dfs.getWorkingDirectory()+"/TestDirectory/subDirectory/file2.txt");
FileInputStream fis = new FileInputStream("E://HDFS/file1.txt");
int len = fis.available();
byte[] btr = new byte[len];
fis.read(btr);
FSDataOutputStream fs = dfs.create(src);
fs.write(btr);
fs.close();
파일 읽기
Path src = new Path(dfs.getWorkingDirectory()+"/TestDirectory/subDirectory/file1.txt");
FSDataInputStream fs = dfs.open(src);
String str = null;
while ((str = fs.readline())!= null)
{
System.out.println(str);
}
6. 기타 작업(Java 파일 작업과 거의 일치)
Path src = new Path(dfs.getWorkingDirectory()+"/TestDirectory/HDFS/file1.txt");
System.out.println(dfs.exists(src));
System.out.println(dfs.getDefaultBlockSize());
System.out.println(dfs.getDefaultReplication());
Path src = new Path(dfs.getWorkingDirectory()+"/TestDirectory/subDirectory/file1.txt");
System.out.println(dfs.isDirectory(src));
System.out.println(dfs.isFile(src));
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Azure HDInsight + Microsoft R Server에서 연산 처리 분산Microsoft Azure HDInsight는 Microsoft가 제공하는 Hadoop의 PaaS 서비스로 인프라 주변의 구축 노하우를 몰라도 훌륭한 Hadoop 클러스터를 구축할 수 있는 훌륭한 서비스입니다. 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.