아파치 하둡 소개에 다음 버전으로 간단한 HDFS 사용법에 대해 소개하고자 한다.
소개는 http://kkn1220.tistory.com/120 를 참고
환경 구축: 가상 머신(Virtual box 또는 Vmware, Cloudera)
cloudera는 맵알(MapR), 호트웍스(Hortonworks)와 가장 많이 쓰이는 하둡 배포판이라 사용하게 되었음
또한, 퀵 스타트 버전으로 실행 시 너무 편해서...(귀찮아서 아님)
또한, 별도의 예제는 없고 파일을 올리는 방법 정도로만 소개
가상 머신은 설치가 되었다고 가정
1) Cloudera 설치: https://www.cloudera.com/downloads/quickstart_vms/5-8.html
-> 본 포스팅은 하둡에 대한 소개보다는 스파크로 가기 전 간단한 소개이기 때문에 Cloudera Manager를 설치하는 것이 아닌 Quick start버전 다운
가상 머신에 맞게 다운로드 받으면 된다. (용량이 꽤 크다. 실제로 압축 풀고 그러면 8GB 는 되는듯)
2) Cloudera 실행
-> 가상머신 가져오기 하면 엄청 쉽다.(이미지를 Vmware에서 불러오면 됨. 메모리 설정 등 자동으로 설정 되어 있음)
- 5.8 퀵 스타트 버전은 CentOS 6.7 버전으로 구성 되어 있다.
- 개인적으로 레드햇 계열의 cent os를 좋아하지 않는다. (뭔가 데비안 계열에 비해 딱딱해보임..)
- 키면 아래의 화면으로 처음 시작이 되는데 이클립스도 설치가 되어 있다.
3) Hue
-> Hue는 Hadoop의 Eco system으로 데이터 분석을 제공하는 웹 인터페이스이다.
브라우저 실행 시, 아래의 그림과 같이 Hue탭이 있어 클릭 하면 됨 (Id: cloudera, pw: cloudera)
Hue 로그인 후, 우측 상단의 노란색으로 칠한 부분을 누르면 파일 관리를 할 수 있는데, 초기에는 (당연히) 아무 것도 없음윽 확인할 수 있다.
터미널을 열고, $hadoop fs -mkdir test 를 입력하고, 새로고침을 누르면 정상적으로 폴더가 생성되는 것을 확인할 수 있다.
$hadoop fs -mkdir test
- $hadoop : 시스템과의 상호 작용을 위해 hadoop명령어 사용
- $hadoop 을 입력하면 Usage를 확인할 수 있다.
- fs또한 마찬가지로 확인 가능....
- cat, chmod, chown, cp, mkdir, mv 등 다양하니 한번 확인해도 나쁘지 않겠다.
- 루트 디렉토리를 확인하면 아래와 같이 확인할 수 있다.
- user 디렉토리 내 하위 폴더를 본 결과, 좀 전에 만든 test폴더가 있는 것 또한 확인 가능하다.
- local에 샘플 데이터를 만들고 HDFS에 업로드 하는 화면은 아래와 같다. (local에서 put 명령어를 통해 HDFS에 업로드가 됨)
Hue에서 test디렉토리 밑에 test파일이 정상적으로 업로드 된 것을 확인할 수 있다.
(다운로드는 -get 명령어 사용 $hadoop fs -get <download_file> <다운로드 받고자 하는 local_path> )
즉, 구조를 확인하면 Cloudera라는 가상 머신을 설치하였고, 가상 머신 내 local영역의 파일을, 별도의 HDFS에 올리는 것으로 보면 되겠다.
위의 예제는 단순 작은 사이즈의 파일을 업로드 하였다.
하지만 큰 파일이라고 가정해보자.
File은 Block 단위로 분할이 된다. 이전 포스팅에서 설명했듯이, 초기에는 크기가 64MB였는데, 2.0부터는 128MB를 지원한다.
이 Block들은 여러 머신에 복제되어 Data Node에 저장이 된다. 그리고 Data Node에 저장이 될 때, Name Node는 어디에 저장이 되어 있는지, 어떻게 구성이 되어있는지에 대한 메타 데이터를 가지고 있게 된다.
위의 그림을 보면 3개씩 복제되어 저장 된 것을 확인할 수 있는데 default가 3개이다.
HDFS에 접근하기 위해서는 다양한 방법이 존재한다.
1) Shell 커맨드 사용: (ex: 위의 커맨드 창에서 $hadoop fs)
2) API 사용
3) 에코시스템: (ex: 위의 Hue 이용)
'기타 > 분산 컴퓨팅' 카테고리의 다른 글
Spark RDD 개념 및 예제 (0) | 2017.04.07 |
---|---|
Apache Spark 설치 (0) | 2017.04.07 |
Apache Spark란 무엇인가? (0) | 2017.04.07 |
아파치 하둡 맵리듀스 (0) | 2017.04.01 |
아파치 하둡 소개 (0) | 2017.03.31 |