Home HDFS - CLI
Post
Cancel

HDFS - CLI

Apache HDFS Command Guide (3.3.2.ver)

HADOOP Basic Cli Commands

Hadoop 에서 cli 명령어는 아래 두가지 커맨드를 사용할 수 있다. 가지 커맨드 중 마음에 드는 놈으로 사용하면 된다. 리눅스 커맨드와 매우 유사하여 사용하기 편리하다.

1
2
3
4
5
6
7
8
9
10
11
# 기본 명령어
hadoop fs -help # 혹은 hdfs dfs

# 디렉토리 생성
hadoop fs -mkdir {디렉토리 경로} # 혹은 hdfs dfs

# 로컬에 있는 파일을 hdfs로 전송
hadoop fs -put {로컬경로} {HDFS경로} # 혹은 copyFromLocal

# hdfs로 있는 파일을 로컬 전송
hadoop fs -get {HDFS경로} {로컬경로} # 혹은 copyToLocal

Basic Cli Commands with JAVA

위의 커맨드들은 하둡에서 제공하는 .jar 파일들을 통해 JAVA프로그램으로도 구현할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// FileSystemPrint
String uri = args[0];
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri), conf);
try( InputStream in = fs.open(new Path(uri))){
    IOUtils.copyBytes(in, System.out, 4096, false);
}

// ListStatus
String uri = args[0];
Configuration config = new Configuration();

FileSystem fs = FileSystem.get(URI.create(uri), config);
Path path = new Path(uri);

FileStatus[] status = fs.listStatus(path);
Path[] listPaths = FileUtil.stat2Paths(status);
for ( Path p : listPaths){
    System.out.println(p);
}

// -put
String src = args[0];
String dst = args[1];

InputStream in = new BufferedInputStream(new FileInputStream(src));

Configuration config = new Configuration();
FileSystem fs = FileSystem.get(URI.create(dst), config);
OutputStream out = fs.create(new Path(dst));

IOUtils.copyBytes(in, out, 4096, true);

// delete
String uri = args[0];

Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri), conf);

Path path = new Path(uri);
if (fs.exists(path)){
    fs.delete(path, false);
}
This post is licensed under CC BY 4.0 by the author.