티스토리 뷰
빅데이터 처리 기술 #
아파치 하둡(Apache Hadoop, High-Availability Distributed Object-Oriented Platform)?
대량의 자료를 처리할 수 있는 큰 컴퓨터 클러스터에서 동작하는
분산 응용 프로그램을 지원하는 프리웨어 자바 소프트웨어 프레임워크이다.
원래 너치의 분산 처리를 지원하기 위해 개발된 것으로, 아파치 루씬의 하부 프로젝트이다.
분산처리 시스템인 구글 파일 시스템을 대체할 수 있는
하둡 분산 파일 시스템(HDFS: Hadoop Distributed File System)과 맵리듀스를 구현한 것이다.
하둡이라고 알려져 있는 프레임워크는 몇 가지 구성요소들로 이뤄져 있는데,
그 가운데 특히 중요한 두 요소는 맵리듀스 데이터처리 프레임워크와
하둡 분산형 파일시스템(Hadoop Distributed Filesystem, HDFS)과 유사한 분산형 파일시스템이다.
보통 기존에서 사용되는 DataBase들은, 한대의 컴퓨터만을 이용하는 시스템임.
성능 향상(처리속도, 저장양)을 위해서는 DB서버 컴퓨터의 스펙을 스케일업 시켜야 함 (CPU 업그레이드, HDD 업그레이드)
시대가 발전함에 따라서, DB를 이용해서 데이터를 저장하고 분석하는데는 한계가 옴. 양이 너무 큼.
그러던중 2006년에, 분산 파일 시스템(GFS / 여러대의 머신을 하나같이 사용하자) 논문이 공개됨.
그걸 구현해서 만들어진 시스템이 하둡 프레임워크 /
하둡은 기본적으로 여러대의 머신을 하나의 머신과 같은 환경(cluster)으로 구축해서 사용.
데이터 저장은 HDFS 라는 시스템을 이용해서 저장되고,
데이터 처리는 MapReduce 라는 시스템을 이용해서 처리됨.
하둡클러스터는 , 리눅스라는 운영체제에서만 구축할수 있음.
실제 리눅스용 머신을 구할수 없으니까 , 가상머신 (VMware)이용해서 환경 구축할꺼임.
## 00. 하둡 환경 구축 ##
1. 가상화 툴.
2. 리눅스 설치 iso 가 필요함. (centos 7.x) :
CentOS-7-x86_64-Everything-1708.iso / 직접 받거나 토렌트를 이용해서 받으시면 되고..
## 01. 가동 모드 ##
3가지 모드가 존재함.
→ Local (Standalone) Mode (노 분산모드 ) : HDFS 를 사용하지 않는 모드
→ Pseudo-Distributed Mode (가분산모드 ← ) : 머신한대를 가지고 다 나눠졌다고 설정하는 모드
→ Fully-Distributed Mode (완전분산 ) : 실제 역할별로 머신들을 다 나눠서 설정하는 모드
※ 가분산모드로 Hadoop cluster를 구축할꺼라, 한대의 머신만 생성하면 된다.
step1) vmware 상 file > new virtual machine > typical >
i will install the operating system later > linux - centos 64bit >
머신 네임 설정하고 머신 위치 지정하고 (master / 개인 작업폴더로 되게 변경) > 용량 그대로 default >
customize 가서 master 용만(gui) ram을 2gb > finish > 머신 조립 끝
step2) 이 가상머신에 운영체제 설치 >> 파워올리기 전에 cd/dvd 눌러서 iso 파일 choose 하고 > 그리고 power on
(cannot access 가 뜨면, 권한이 없기 때문임. 그때는 종료하고 , 우클릭해서 관리자 권한으로 실행하면 됨
창 뜰때, test 어쩌고 누르면 시간 꽤 걸리니까, 바로 install 시키고 >>
언어 선택 next >> (서버 -GUI / 네트워크 활성화 / 시켜두고 , 설치 시작 >>
root 계정 암호 설정 / 사용자 계정을 하나만들어서 설정.. 설치완료되면 재 부팅 >>
step3 ) 첫 로그인할때, 사용자 계정 말고, 목록에 없습니까 눌러서 >>
root 로 접속 >
========================================================================================
root 로 접속한 후 , 설치 프로그램에서 파이어폭스 띄워서
hadoop.apache.org 들어가서.. 문서를 보다보면,
hadoop 시스템을 돌리기위해서 java가 설치되있어야 하고,(수동설치를 해야됨)
stable 버전인 hadoop 2.9.XX 는 JDK1.8.XXX 와 잘 호환됨.
ssh 가 설치되어있어야 한다고 함. (CENTOS는 기본설치가 되있음)
jdk를 다 다운 받은 사람은 / 압축해제 / 계정 홈에
.....
=========================================================================================
하둡이나 기타등등의 작업을 좀 편하게 하기 위해서, 환경변수를 설정해두고 사용하자.
/etc/profile 이미 뭔가 적혀있는데, 맨 아래로 이동해서 아래
export HADOOP_HOME=/usr/hadoop-2.9.0
export JAVA_HOME=/usr/jdk1.8.0_161
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin
를 추가
=========================================================================================
hdfs dfs -mkdir 디렉터리 생성
hdfs dfs -put 데이터 업로드
hdfs dfs -get 데이터 다운로드
hdfs dfs -ls 디렉터리 확인
hdfs dfs -cat 콘솔에 출력
hdfs dfs -mv 파일이동
hdfs dfs -rm -r 파일삭제
hdfs dfs -rmdir 디렉터리 삭제
위 명령어들은 hadoop fs 로도 사용 가능. (hadoop fs -ls)
=========================================================================================
원하는 분석결과를 얻어내기 위해서 해야되는건 Example 같은 MapReduce 작업프로그램만
만들어서 하둡을 이용해서 돌리면 됨.
Map(추출)Reduce(통계) 작업을 java를 이용해서 만들어야 함.
java-project >> maven convert (hadoop core / hadoop mapreduce)
혹은 직접 연동
하둡을 통해 분석작업을 하려면 최소 3개의 class를 설계를 해야함.
Mapper - 분석에 사용되는 클래스
Reducer - 통계에 사용되는 클래스
Job - 환경설정에 사용되는 클래스
'개발' 카테고리의 다른 글
bootstrap confirmation dialog (0) | 2018.03.29 |
---|---|
개발중인 javascript 파일이 브라우져에서 갱신이 안될때 (0) | 2018.03.29 |
하둡재설치 및 설정 팁 (0) | 2018.02.20 |
JQuery ajax (0) | 2018.02.14 |
spring + tiles (0) | 2018.02.13 |
- Total
- Today
- Yesterday