클라우드 (Cloud) 스토리지 (대용량 분산 데이터 저장 및 처리 시스템)인 Hadoop를 정리 한다.


Hadoop 업무 영역


[700px](파일:Hadoop architecture01.png.md)


Hadoop 개요


분산 소프트웨어 플랫폼인 Hadoop은 대량의 데이터를 처리할 수 있는 애플리케이션을 쉽게 제작하고 운영하도록 도와줍니다.

  • Hadoop History
    • 2005년 Doug Cutting (Lucene & Nutch 개발자)에 의해 시작
    • 2006년 Yahoo의 지원
  • Hadoop : 대용량 분산 데이터 저장 및 처리 시스템
    • Nutch : 오픈소스 검색 엔진
    • MapReduce : 분산 데이터 처리 시스템
    • HBase : 분산 데이터 베이스
    • HDFS : 분산 파일 시스템
  • Hadoop 배포판
    • Hadoop
    • Cloudera
    • Yahoo
    • facebook
    • IBM
  • Hadoop의 응용 분야
    • ETL (Extract, Transform, Load)
    • Data Warehouse
    • Storage for Log Aggregator
    • Distributed Data Storage
    • Spam Filtering
    • Biometric
    • Online Content Optimization
    • Parallel Image, Movie Clip Processing
    • Machine Learning
    • Science
    • Search Engine


CentOS에서 Hadoop 설치



사전 준비 사항

  • Java 1.7.0_19
    • [CentOS용 JDK 설치 가이드](JDK.md#CentOS용 설치 가이드.md)
  • CentOS 6.4, 64 bits
  • vi /etc/hosts
    • 127.0.0.1을 사용할 경우, 분산된 서버로 접근하지 못하는 오류가 발생할 수 있습니다.
      ```
    192.168.56.102 cloud001.cloudserver.com ```
  • vi /etc/sysconfig/network
    HOSTNAME=cloud001.cloudserver.com

  • vi /proc/sys/kernel/hostname
    cloud001.cloudserver.com


설치

  • 다운로드 받은 hadoop-1.1.2-bin.tar.gz 파일의 압축을 풀어 /appl/hadoop 폴더에 저장 합니다.
    wget http://apache.tt.co.kr/hadoop/common/hadoop-1.1.2/hadoop-1.1.2-bin.tar.gz
    tar -xvzf hadoop-1.1.2-bin.tar.gz
    chown -R root:root hadoop-1.1.2
    mv hadoop-1.1.2 /appl/hadoop

  • vi ~/.bashrc
    ### ----------------------------------------------------------------------------
    ###     Hadoop 설정
    ### ----------------------------------------------------------------------------
    export JAVA_HOME=/usr/lib/jvm/jre
    export PATH=$PATH:/appl/hadoop/bin

  • hadoop 버전 확인
    hadoop version


환경 설정

  • vi /appl/hadoop/conf/hadoop-env.sh


  • Mode에 따른 설정

    • Mode에 맞추어 설정하지 않으면 sqoop 등에서 connetion refused 오류가 발생할 수 있습니다.
      {|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" |- |width="25%" align="center" valign="middle" style="background-color:#eee;"|Core |width="75%"|
  • Core : fs.default.name = file://~

  • Pseudo distributed : fs.default.name = hdfs://localhost:9000

  • Fully distributed : fs.default.name = hdfs://cloud001.cloudserver.com:9000
    |- |align="center" valign="middle" style="background-color:#eee;"|HDFS |

  • Core : dfs.replication 사용하지 않음

  • Pseudo distributed : dfs.replicatione = 1

  • Fully distributed : dfs.replication = 3 이상
    |- |align="center" valign="middle" style="background-color:#eee;"|MapReduce |

  • Core : mapred.job.tracker = local

  • Pseudo distributed : mapred.job.tracker = localhost:9001

  • Fully distributed : mapred.job.tracker = cloud001.cloudserver.com:9001 |}


  • Hadoop core용 환경 설정

    • vi /appl/hadoop/conf/core-site.xml
      
      
       fs.default.name
       hdfs://cloud001.cloudserver.com:9000
      
      
       hadoop.tmp.dir
       /tmp/hadoop/hadoop-${user.name}
      
      

  • HDFS 데몬용 환경 설정

    • vi /appl/hadoop/conf/hdfs-site.xml
      
      
       dfs.name.dir
       /appl/hadoop/dfs/name
      
      
       dfs.name.edits.dir
       ${dfs.name.dir}
      
      
       dfs.data.dir
       /appl/hadoop/dfs/data
      
      

  • Job Tracker와 Task Tracker용 환경 설정 파일

    • vi /appl/hadoop/conf/mapred-site.xml
      
      
       mapred.job.tracker
       cloud001.cloudserver.com:9001
      
      
       mapred.local.dir
       ${hadoop.tmp.dir}/mapred/local
      
      
       mapred.local.dir
       ${hadoop.tmp.dir}/mapred/system
      
      

  • Master 컴퓨터의 목록

    • vi /appl/hadoop/conf/masters
      cloud001.cloudserver.com

  • data note와 task tracker를 작동시킬 컴퓨터의 목록

    • vi /appl/hadoop/conf/slaves
      cloud001.cloudserver.com

  • Master Server와 Slave Server간 상호 접속이 가능하도록 SSH 설정

    ssh-keygen -t rsa
    cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
    ### yum install openssh openssh-*
    ssh localhost

  • Name Node 포맷

    hadoop namenode -format

  • Daemon 실행

    start-all.sh
    start-mapred.sh         //--- MapReduce 실행
    start-dfs.sh            //--- HDFS 실행
    
    jps                     //--- Java 기반의 프로세스 상태 확인


서비스 확인


AIX에서 Hadoop 설치



Hadoop 가이드


 hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS](COMMAND_OPTIONS.md)

- 참고 문헌
- [Hadoop Commands Reference](http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/CommandsManual.html)


Hadoop Manager



Hadoop 오류 처리


  • 오류 메시지 : Retrying connect to server RetryUpToMaximumCountWithFixedSleep
    • Hadoop을 먼저 기동한 후에 작업을 하세요.
  • 오류 메시지 : Name node is in safe mode
    • Hadoop이 동작중인 상태에서 아래 명령을 입력 합니다.
      hadoop dfsadmin -safemode leave

  • 오류 메시지 : log4j:WARN No appenders could be found for logger (org.apache.hadoop.hdfs.DFSClient).
    • Log 설정 파일
      :conf/log4j.properties
      • hadoop-env.sh
  • 오류 메시지 : # of failed Reduce Tasks exceeded allowed limit
    • 작업을 위한 thread가 부족함
    • vi hdfs-site.xml
      
      tasktracker.http.threads
      400
      

  • 오류 메시지 : Too many fetch-failures
    • Reduce가 Map의 작업이 끝난 데이터를 가져오지 못하는 오류
    • vi /etc/hosts 에서 TaskTracker 노드의 설정 정보를 맨 상단에 추가, 누락된 TaskTrack가 없도록 확인


Hadoop Client 사용자 지정


Hadoop을 설치해서 작업을 하다 보면 설치한 사용자 (hduser100)외에 다른 사용자(hduser)로 Hadoop을 사용할 필요가 있습니다. 그럴 경우, 아래와 같이 약간의 권한 설정을 하여 사용 하세요.

  • Hadoop을 설치한 사용자(hduser100/hdgroup)로 로그인 합니다.
    • HDFS의 supergroup에 hdgroup를 추가 합니다.
      stop-all.sh
      vi  /appl/hadoop100/conf/hdfs-site.xml  파일에서 아래 부분을 추가 합니다.
      
          dfs.permissions.supergroup
          hdgroup
      
      start-all.sh

  • CentOS user 생성 (hduser / hdgroup)
    groupadd  hdgroup
    useradd  -d  /home/hduser  -m  -g  hdgroup  hduser
    passwd hduser

  • hduser 환경 설정
    vi  ~/.bashrc
       export JAVA_HOME=/usr/lib/jvm/jre
       export PATH=$PATH:/appl/hadoop100/bin


BigData 업체 동향



MapR 4.0.1 출시 (2014.10)
- Hadoop 2.4 기반의 Apache Drill, Apache Spark, Apache HBase 포함
- 운영 애플리케이션
- 인터렉티브 쿼리 및 스트리및 처리 (실시간)


참고 문헌



- [[MapReduce|MapReduce]], [HDFS](HDFS.md)

- [http://www.yongbok.net/blog/how-to-install-hadoop-2-2-0-pseudo-distributed-mode/](http://www.yongbok.net/blog/how-to-install-hadoop-2-2-0-pseudo-distributed-mode/)

- ['하둡(Hadoop) 관련 자료'에 해당되는 글](http://pizzastudio.tistory.com/category/%ED%95%98%EB%91%A1%28Hadoop%29%20%EA%B4%80%EB%A0%A8%20%EC%9E%90%EB%A3%8C)

- [번역: 아파치 맵리듀스 튜토리얼(mapreduce tutorial), 2012.03](http://pizzastudio.tistory.com/entry/%EC%95%84%ED%8C%8C%EC%B9%98-%EB%A7%B5%EB%A6%AC%EB%93%80%EC%8A%A4-%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-%EB%B2%88%EC%97%AD)

- [빅데이터를 위한 플랫폼, 2012.03](http://helloworld.naver.com/helloworld/29533)
- [공개SW 활용 성공사례 72: KT 클라우드웨어 - 한국형 빅데이터 Hybrid DW 분석 시스템 구축, 2013.02](http://www.oss.kr/?mid=oss_repository10&page=2&document_srl=78591)
- [공개SW 활용 성공사례 24: 그루터 - 하둡 활용한 빅데이터 관리 및 분석 플랫폼 제공, 2012.03](http://www.oss.kr/?mid=oss_repository10&page=6&document_srl=51780)

- [빅데이터: 하둡, 비즈니스 분석툴을 넘어](http://itxcloud.tistory.com/category/%E2%97%8F%20Big%20data)

- [위키본(Wikibon) 빅데이터 선언, 2012.04](http://itxcloud.tistory.com/entry/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%95%98%EB%91%A1-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%B6%84%EC%84%9D%ED%88%B4%EC%9D%84-%EB%84%98%EC%96%B4-1-%EC%9C%84%ED%82%A4%EB%B3%B8Wikibon-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%84%A0%EC%96%B8)
- [기존데이터 처리 및 분석, 2012.04](http://itxcloud.tistory.com/entry/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%95%98%EB%91%A1-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%B6%84%EC%84%9D%ED%88%B4%EC%9D%84-%EB%84%98%EC%96%B4-2-%EA%B8%B0%EC%A1%B4-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%B2%98%EB%A6%AC-%EB%B0%8F-%EB%B6%84%EC%84%9D)
- [데이터 속성의 변화, 2012.04](http://itxcloud.tistory.com/entry/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%95%98%EB%91%A1-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%B6%84%EC%84%9D%ED%88%B4%EC%9D%84-%EB%84%98%EC%96%B4-3-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%86%8D%EC%84%B1%EC%9D%98-%EB%B3%80%ED%99%94)
- [첫번째 접근 '하둡', 2012.04](http://itxcloud.tistory.com/entry/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%95%98%EB%91%A1-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%B6%84%EC%84%9D%ED%88%B4%EC%9D%84-%EB%84%98%EC%96%B4-4-%EC%B2%AB%EB%B2%88%EC%A7%B8-%EC%A0%91%EA%B7%BC-%ED%95%98%EB%91%A1)
- [하둡의 기술적 구성, 2012.04](http://itxcloud.tistory.com/entry/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%95%98%EB%91%A1-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%B6%84%EC%84%9D%ED%88%B4%EC%9D%84-%EB%84%98%EC%96%B4-5-%ED%95%98%EB%91%A1%EC%9D%98-%EA%B8%B0%EC%88%A0%EC%A0%81-%EA%B5%AC%EC%84%B1)
- [하둡의 장단점, 2012.04](http://itxcloud.tistory.com/entry/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%95%98%EB%91%A1-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%B6%84%EC%84%9D%ED%88%B4%EC%9D%84-%EB%84%98%EC%96%B4-6-%ED%95%98%EB%91%A1%EC%9D%98-%EC%9E%A5%EB%8B%A8%EC%A0%90)
- [두번째 접근 '차세대 데이터웨어하우징', 2012.04](http://itxcloud.tistory.com/entry/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%95%98%EB%91%A1-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%B6%84%EC%84%9D%ED%88%B4%EC%9D%84-%EB%84%98%EC%96%B4-7-%EB%91%90%EB%B2%88%EC%A7%B8-%EC%A0%91%EA%B7%BC-%EC%B0%A8%EC%84%B8%EB%8C%80-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%9B%A8%EC%96%B4%ED%95%98%EC%9A%B0%EC%A7%95)
- [빅데이터의 적용 사례, 2012.04](http://itxcloud.tistory.com/entry/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%95%98%EB%91%A1-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%B6%84%EC%84%9D%ED%88%B4%EC%9D%84-%EB%84%98%EC%96%B4-8-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%9D%98-%EC%A0%81%EC%9A%A9-%EC%82%AC%EB%A1%80)

- [어떤 분산 파일 시스템을 사용해야 하는가?, 2013.01](http://helloworld.naver.com/helloworld/258077)

- [Apache Hadoop란 무엇인가, 2012.02](http://www.looah.com/article/view/746)
- [Yahoo! Hadoop Tutorial](http://developer.yahoo.com/hadoop/tutorial/)
- [hadoop 살펴보기(1), 2006.8](http://www.jaso.co.kr/99)
- [hadoop 살펴보기(2), 2006.8](http://www.jaso.co.kr/101)
- [hadoop 살펴보기(3), 2006.9](http://www.jaso.co.kr/103)
- [hadoop summit 자료 공개, 2008.4](http://www.jaso.co.kr/253)

- [Edward J. Yoon's opensource life with the 블로그](http://blog.udanax.org/)

아파치 소프트웨어 재단(Apache Software Foundation)에서 아파치 하둡(Apache Hadoop) 프로젝트 커미터이며, 아파치 하마(Apache Hama) 프로젝트를 설립하고 개발을 이끌고 있는 Edward J. Yoon의 블로그
- [MapReduce](http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/MapReduce?cx=002661009167463862046:8oq6cxlfibu&cof=FORID:9&q=MapReduce&sa=Search&ie=EUC-KR.md#1257)

- 파일

- [하둡은?](http://pds21.egloos.com/pds/201101/18/63/Hadoop_Guide_ext.pdf)

- [Tajo](http://tajo.incubator.apache.org/)
- [MapR](http://www.mapr.com/)

- [하둡 배포판, 2013.02](http://heonpark.tistory.com/1)
- [Default Ports Quick Reference Hadoop Default Ports Quick Reference, 2009.10](Hadoop)
- [Installing Apache Hadoop - Hadoop: The Definitive Guide](http://www.oreillynet.com/pub/a/other-programming/excerpts/hadoop-tdg/installing-apache-hadoop.html)

- kiji : [http://www.kiji.org/getstarted/#Downloads](http://www.kiji.org/getstarted/.md#Downloads)

- [Hadoop 기본 포트 - 하둡 설치 시 주의 사항 -, 2013.03](http://blrunner.com/46)

- [빅데이터: HADOOP, Fully Distributed mode 설정법, 2013.2](http://blog.naver.com/PostList.nhn?blogId=adonis50&from=postList&categoryNo=15)
[[Category:BigData|Category:BigData]]
[[Category:오픈소스|Category:오픈소스]]
분류: [Cloud](분류_Cloud.md)
공유하기