욱'S 노트

HDFS 개발 시작하기(java) 본문

Programming/Hadoop

HDFS 개발 시작하기(java)

devsun 2014. 12. 18. 13:56

우리는 개발자 아닌가?


HDFS를 커맨드로만 조작한다면 그건 TA일 것이다. 그렇다 HDFS를 조작하는 자바 프로그램을 작성해보도록 하자. 일단 먼가 원격의 HDFS를 접속할려면 클라이언트에 설정이 있어야 할 것 같다.


역시 Configuration 객체를 제공하고 있었다. 클라이언트 설정을 위해서 우리가 해야 할일은 굉장히 간단하다.

우리는 기존에 core-site.xml에  HDFS의 접근 URL을 설정하였다. 해당 URL을 프로퍼티처럼 세팅하고 접속을 시도해보면 된다. 아래의 예제는 프로그래밍으로 HDFS에 접속하여 해당 home 디렉토리를 출력한 예제이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
    @Test
    public void testProgrammaticConfiguration() throws IOException {
        Configuration configuration = new Configuration();
        configuration.set("fs.default.name""hdfs://localhost:9000");
        
        FileSystem dfs = null;
        
        try {
            dfs = FileSystem.get(configuration);
            logger.info("HDFS home directory is {}",dfs.getHomeDirectory());
        } finally {
            
            if (dfs != null) {
                dfs.close();
            }
        }
    }
 
cs


역시 잘된다. 엄청쉽다. 근데 설정이 코드에 들어가는건 별로 좋지 않지 않은가? 다음은 해당 설정을 파일에 수정하고 접속을 수행해보자. 일단 core-site.xml을 좀 수정해보자.


1
2
3
4
5
6
7
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://localhost:9000</value>
        </property>
</configuration>
 
cs

그리고 아래는 해당 리소스를 읽어서 접속을 수행한 예이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
@Test
    public void testFileConfiguration() throws IOException {
        Configuration configuration = new Configuration();
        configuration.addResource(new Path("/Users/devsun/dev/hadoop-2.5.2/etc/hadoop/core-site.xml"));
        
        FileSystem dfs = null;
        
        try {
            dfs = FileSystem.get(configuration);
            logger.info("HDFS home directory is {}",dfs.getHomeDirectory());
        } finally {
            
            if (dfs != null) {
                dfs.close();
            }
        }
    }
 
cs



'Programming > Hadoop' 카테고리의 다른 글

MapReduce 개요  (0) 2014.12.22
HDFS - FileSystem API 맛보기  (0) 2014.12.18
HDFS 개요  (0) 2014.12.17
HDFS 다루기 - File system shell  (0) 2014.12.17
Hadoop 개요  (0) 2014.12.17
Comments