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);
}