- Hadoop 업무 영역
- Hadoop 개요
- CentOS에서 Hadoop 설치
- 사전 준비 사항
- 설치
- 환경 설정
- 서비스 확인
- AIX에서 Hadoop 설치
- Hadoop 가이드
- Hadoop Manager
- Hadoop 오류 처리
- Hadoop Client 사용자 지정
- BigData 업체 동향
- 참고 문헌
클라우드 (Cloud) 스토리지 (대용량 분산 데이터 저장 및 처리 시스템)인 Hadoop를 정리 한다.
라이선스 : Apache 2.0
플랫폼 : Java
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;" Core : dfs.replication 사용하지 않음
Pseudo distributed : dfs.replicatione = 1
Fully distributed : dfs.replication = 3 이상 align="center" valign="middle" style="background-color:#eee;" 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 기반의 프로세스 상태 확인
서비스 확인
서비스 확인 Web Site
http://localhost:50030/ : MapReduce
http://localhost:50070/ : HDFS
http://localhost:50060/ : Task Tracker
단어수를 계산하는 Sample
cd /appl/hadoop
hadoop dfs -mkdir input
hadoop dfs -put CHANGES.txt input/
hadoop jar hadoop-examples-1.1.2.jar wordcount input output
hadoop dfs -ls output
hadoop dfs -cat output/part-r-00000
Safe 오류시
hadoop dfsadmin -safemode leave
//--- 데몬 재기동
AIX에서 Hadoop 설치
참고 문헌
Hadoop 가이드
hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS](COMMAND_OPTIONS.md)
Hadoop Manager
하둡 관리 도구 업체
Open Flamingo : Hadoop 관련 다양한 오픈소스를 지원하는 Ajax Rich Web Interface + Workflow Engine + Workflow Availability Monitor + DataSource Engine
참고 문헌
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.propertieshadoop-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
http://www.yongbok.net/blog/how-to-install-hadoop-2-2-0-pseudo-distributed-mode/
-
공개SW 활용 성공사례 72: KT 클라우드웨어 - 한국형 빅데이터 Hybrid DW 분석 시스템 구축, 2013.02
-
Edward J. Yoon's opensource life with the 블로그
아파치 소프트웨어 재단(Apache Software Foundation)에서 아파치 하둡(Apache Hadoop) 프로젝트 커미터이며, 아파치 하마(Apache Hama) 프로젝트를 설립하고 개발을 이끌고 있는 Edward J. Yoon의 블로그
파일
Default Ports Quick Reference Hadoop Default Ports Quick Reference, 2009.10
빅데이터: HADOOP, Fully Distributed mode 설정법, 2013.2
[[Category:BigData|Category:BigData]]
[[Category:오픈소스|Category:오픈소스]]
분류: Cloud