티스토리 뷰

개발

Hadoop (하둡)

wannabenomad 2018. 2. 22. 13:22

빅데이터 처리 기술 #


아파치 하둡(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