하둡 HDFS 입출력 따라해보기
Maven project에 입/출력 예제 코드 생성
우선 maven project 디렉토리로 이동해줍니다.
maven project를 만드는 방법을 모르는 분은 Maven으로 Java 프로젝트 시작하기
라는 본문의 포스트를 참고해주세요.
./maven project path/src/main/java/package name/
경로까지 들어오게되면 App.java라는 java 파일이 있는 위치까지 오게됩니다. (경로는 사람마다 다릅니다.)
필자는 프로젝트 명을 study-hadoop라고 지었고 package는 cpprhtn, 현재 경로는 /Users/bigdata/study-hadoop/src/main/java/cpprhtn 입니다.
이후에 아래와 같은 코드를 짜줍니다.
HDFS_IO.java
1 | package cpprhtn; # 각자의 패키지명에 맞추어 수정 |
Java API를 이용하여 HDFS에 파일을 생성하는 예제입니다.
파일이 저장될 경로와 파일에 생성할 문자열을 입력받아 지정된 경로에 .txt파일을 생성하는 코드입니다.
코드를 입력하여 저장하였다면 maven project path
시작지점으로 돌아가 mvn package
를 해주면 됩니다. (필자는 study-hadoop 디렉토리가 되겠습니다.)
하지만 아직 Hadoop API를 이용할 수 없는 상황이라 에러 문구가 뜰 것입니다.
이는 pom.xml에 다음과 같은 Maven 종속성이 포함되어야 합니다.
1 | # 위치를 잘 찾아서 추가할 것 |
추가한 후에 다시 mvn package
를 사용하여 빌드하면 BUILD SUCCESS라는 문구가 뜰 것입니다.
이제 하둡에서 돌릴 jar 파일은 maven project path/target
에 생성될 것입니다.
Hadoop에서 입/출력 클래스 실행
이제 하둡에서 실행시키기 위해 하둡 서비스를 실행시켜줍니다.
1 | start-all.sh |
이후 하둡 HDFS에 입/출력이 잘 동작하는지 확인해봅시다.
1 | hadoop jar study-hadoop-1.0-SNAPSHOT.jar cpprhtn.HDFS_IO input.txt Hello,Hadoop_and_HDFS |
위 코드를 실행시키면 study-hadoop-1.0-SNAPSHOT.jar 파일의 cpprhtn package의 HDFS_IO 클래스를 사용한다는 것이며, 입력받은 파일명과 문자열을 HDFS내에 만들어줍니다.
1 | hadoop fs -ls /user/bigdata/ |
bigdata 대신에 여러분의 User명을 넣게되면 아래와같은 내용이 출력됩니다.
1 | bigdata@cpprhtn-MacBookPro target % hadoop fs -ls /user/bigdata |
하둡 HDFS에 제대로 생성된 것을 볼 수 있으며, 만들어진 input.txt는 다음과 같이 확인할 수 있습니다.
1 | bigdata@cpprhtn-MacBookPro target % hadoop fs -cat /user/bigdata/input.txt |
하둡 HDFS 입출력 따라해보기
https://cpprhtn.github.io/2022/01/19/Hadoop-print-Hello-HDFS/