블로그 이미지
딥포커스

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

2012. 11. 8. 16:50 BigData

출처 : http://cyhome.cyworld.com/?home_id=a0001475&postSeq=14392404

         (용쓰의 세상바라보기)


1.Apache Hadoop Ecosystem
 
# 저장
* HDFS: Hadoop Distributed Filesystem (http://hadoop.apache.org/hdfs/)
* Fuse-DFS: Mountable HDFS (http://wiki.apache.org/hadoop/MountableHDFS/)
* HBase: NoSQL (http://hbase.apache.org/)
* HCatalog: 테이블 관리 (http://incubator.apache.org/hcatalog/)
 
# 어플리케이션 서버
* Thrift: 데이터 직렬화 (http://thrift.apache.org/)
* Avro: 데이터 직렬화 (http://avro.apache.org/)
 
# 처리/분석
* MapReduce: 데이터 분석 엔진 (http://hadoop.apache.org/mapreduce/)
* Pig: 데이터 분석 언어 (http://pig.apache.org/)
* Hive: 데이터 쿼리 언어 (http://hive.apache.org/)
* Oozie: 워크플로우 관리 (http://incubator.apache.org/oozie/)
* Mahout: 데이터 마이닝 (http://mahout.apache.org/)
* Giraph: 그래프 분석 (http://incubator.apache.org/giraph/)
* Lucene: 검색엔진 (http://lucene.apache.org/core/)
* Hama: 병렬컴퓨팅 (http://incubator.apache.org/hama/)
 
# 수집
* Chukwa: 로그 수집/분석/출력/모니터링 (http://incubator.apache.org/chukwa/)
* Sqoop: RDBMS 데이터 수집 (http://incubator.apache.org/sqoop/)
* Flume: 이벤트 데이터 수집 (http://incubator.apache.org/flume/)
* Kafka: 데이터 수집 (http://incubator.apache.org/kafka/)
* S4: 이벤트 데이터 처리 (http://incubator.apache.org/s4/)
* Nutch: 웹 검색 (http://nutch.apache.org/)
 
# 관리
* Zookeeper: 클러스터 관리 (http://zookeeper.apache.org/)
* Ambari: 환경설정, 모니터링 (http://incubator.apache.org/ambari/)
* Whirr: 클러스터 배포 (http://whirr.apache.org/)
* Bigtop: 패키지 개발 (http://incubator.apache.org/bigtop/)
----------------------------------------------------------------------------
 
2.하둡연동 오픈소스 프로젝트
 
# 통계 분석
 R (http://www.r-project.org/)
# 검색 엔진
 Katta (http://katta.sourceforge.net/)
 Elasticsearch (http://www.elasticsearch.org/)
# 캐쉬서버
 Redis (http://redis.io/)
 Memcached (http://memcached.org/)
 Hazelcast (http://www.hazelcast.com/)
# 데이터 수집
 Scribe (https://github.com/facebook/scribe/)
 Hiho (https://github.com/sonalgoyal/hiho/)
 Honu (https://github.com/jboulon/Honu/)
 Big Streams (http://code.google.com/p/bigstreams/)
# 데이터 직렬화
 Protocol Buffers (http://code.google.com/p/protobuf/)
# 데이터 분석
 Cloud MapReduce (http://code.google.com/p/cloudmapreduce/)
# 분석 언어(Python)
 Pydoop (http://sourceforge.net/apps/mediawiki/pydoop/)
 Dumbo (https://github.com/klbostee/dumbo/)
 Hadoopy (https://github.com/bwhite/hadoopy/)
 Mrjob (https://github.com/Yelp/mrjob/)
 Happy (http://code.google.com/p/happy/)
# 분석 언어(Ruby)
 Mrtoolkit (http://code.google.com/p/mrtoolkit/)
 Wukong (https://github.com/mrflip/wukong/)
# 쿼리 언어
 JAQL (http://code.google.com/p/jaql/)
 Cascalog (https://github.com/nathanmarz/cascalog/)
# 데이터 웨어하우스
 CloudBase (http://cloudbase.sourceforge.net/)
 HadoopDB (http://db.cs.yale.edu/hadoopdb/hadoopdb.html/)
# 워크플로우
 Cascading (http://www.cascading.org/)
 Azkaban (http://sna-projects.com/azkaban/)
 Hamake (http://code.google.com/p/hamake/)
# 이벤트 처리
 Esper (http://esper.codehaus.org/)
# 그래프 분석
 Golden Orb (http://goldenorbos.org/)
# 웹 서버
 Jetty (http://jetty.codehaus.org/jetty/)
# 모니터링
 HUE (http://archive.cloudera.com/cdh/3/hue/)
 Karmasphere (http://karmasphere.com/)
 Ganglia (http://ganglia.sourceforge.net/)
# 병렬컴퓨텅
 Disco (http://discoproject.org/)
----------------------------------------------------------------------------
 
3.NoSQL
 
 MongoDB (http://www.mongodb.org/)
 Cassandra (http://cassandra.apache.org/)
 CouchDB (http://couchdb.apache.org/)
 HyperTable (http://hypertable.org/)
 Voldemort (http://project-voldemort.com/)
 Scalaris (http://code.google.com/p/scalaris/)
 Riak (http://basho.com/products/riak-overview/)
 Neptune (http://dev.naver.com/projects/neptune/)
 Cloudata (http://www.cloudata.org/)
 ETC (http://en.wikipedia.org/wiki/NoSQL)
 

 

posted by 딥포커스
2012. 11. 6. 21:14 BigData

아파치 하둡은 Binanary Version으로 Download 시 별도의 Install 과정은 없으며

단지, 압축만 풀어준 후 기본 설정을 해 주면 된다. 

하지만, 설정은 인터넷/서적 등의 자료도 부족하고 여러 번의 실패를 겪으면서

익힐 수 밖에 없다.

 

1. Host 등록

본 블로그에서는 bigdata1~bigdata5 5개의 노드를 사용한다고 가정한다.

OS 상에 각 노드들의 정보를 등록한다. 

vi /etc/hosts 수행 후 각 노드의 IP와 Name을 등록  (root 계정에서 등록)

192.XXX.XXX.1           bigdata1
192.XXX.XXX.2           bigdata2
192.XXX.XXX.3           bigdata3
192.XXX.XXX.4           bigdata4
192.XXX.XXX.5           bigdata5

2. SSH 설정

bigdata1을 NameNode bigdata2를 Seconsary Name Node

bigdata3~bigdata5를 DataNode로 사용한다고 가정

(1) Namenode에서 SSH Key 생성

bigdata 계정에서 (모든 Node에서는 같은 계정 사용 권장) Namenode에서 SSH Key 최초 생성

ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/hbase/hadoop-1.0.4/.ssh/id_rsa):
Created directory '/hbase/hadoop-1.0.4/.ssh'.
Enter passphrase (empty for no passphrase): <-엔터키
Enter same passphrase again:
Your identification has been saved in /hbase/hadoop-1.0.4/.ssh/id_rsa.
Your public key has been saved in /hbase/hadoop-1.0.4/.ssh/id_rsa.pub.
The key fingerprint is:
....

passparase를 설정하게 되면 Hadoop 실제 구동시에 접속이 실패할 수 있으므로 엔터키 타이핑

(2) SNN(Secondary Name Noe)와 나머지 DataNode에 SSH Key 배포

Destination Node에서 MasterNode로 ssh 접속이 되는지 1회 테스트 수행 (ssh bigdata1)

scp ~/.ssh/id_rsa.pub bigdata@bigdata2:~/bigdata1_key

bigdata1에서
scp ~/.ssh/id_rsa.pub bigdata@bigdata2:~/bigdata1_key
The authenticity of host 'bigdata2 (192.XXX.XXX.XXX)' can't be established.
RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bigdata2,192.XXX.XXX.XXX' (RSA) to the list of known hosts.
bigdata@bigdata2's password: 대상노드 Password 기입
id_rsa.pub         100%  398     0.4KB/s   00:00

mv ~/bigdata1_key ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

위와 같이 배포된 SSH Key를 authorized_keys로 이동한 후 Permission 수정

bigdata1 (NameNode)에서 bigdata2로 SSH 접속 테스트

ssh bigdata2

위의 명령으로 ssh가 bigdata2로 Password 기입없이 접속되는지 확인

(만약 NameNode와 DataNode를 한 곳에 두었을 경우 bigdata1->bigdata1으로 동일한 과정을 거쳐야 함)

위의 과정을 bigdata3 bigdata4, bigdata5에도 반복 수행

 

3. SNN(Secondary Name Node)와 DataNode 설정

 

(1) SNN

     SNN은 HA 개념이 아닌 NameNode의 Transaction 정보를 단순히 백업해 두는 역할을 한다.

     반드시 필요한 Node이며 $HADOOP_HOME/conf/masters에 ServerName을 지정하면 된다.

     (/etc/hosts에 서버명 등록 필수)

cd $HADOOP_HOME/conf

vi masters

bigdata2 기입

cat masters

bigdata2

SNN Server Name이 정상적인지 확인

 

(2) DataNode

  

cd $HADOOP_HOME/conf

vi slaves

bigdata3

bigdata4

bigdata5

를 기입

cat  slaves

bigdata3

bigdata4

bigdata5

DataNode Server Name이 정상적인지 확인

 

4. CORE-SITE.xml 편집

vi $HADOOP_HOME/conf/core-site.xml 을 수행한 후 아래와 같이 수정

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
     <property>
         <name>hadoop.tmp.dir</name>
         <value>/tmp</value>
     </property>
     <property>
         <name>fs.default.name</name>
         <value>hdfs://bigdata1:9000</value>
     </property>
</configuration>

Hadoop File System과 OS File System 모두에서 /tmp Directory를 Temp Directory로 사용하겠다는 의미이며

Hadoop File System의 기본경로를 bigdata1:9000 (NameNode)로 사용하겠다는 설정

 5. HDFS-SITE.xml 편집

vi $HADOOP_HOME/conf/hdfs-site.xml 를 수행한 후 아래와 같이 수정
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
     <property>
         <name>dfs.replication</name>
         <value>2</value>
     </property>
     <property>
         <name>dfs.name.dir</name>
         <value>/hbase/hadoop-1.0.4/dfs/name</value>
     </property>

     <property>
         <name>dfs.data.dir</name>
         <value>/hbase/hadoop-1.0.4/dfs/data</value>
     </property>

     <property>
         <name>dfs.support.append</name>
         <value>true</value>
     </property>

     <property>
         <name>dfs.http.address</name>
         <value>bigdata1:50070</value>
     </property>

     <property>
         <name>dfs.secondary.http.address</name>
         <value>bigdata2:50090</value>
     </property>

</configuration>

위는 데이터간 복제는 2개 (노드가 많다면 3을 권장), HDFS가 실제 물리적으로 저장되는 경로는

NameNode에서는 /hbase/hadoop-1.0.4/dfs/name 을 DataNode에서는 /hbase/hadoop-1.0.4/dfs/data 을

실제 물리적인 FileSystem으로 사용하겠다는 의미이다.

6. mapred-site.xml 편집

vi mapred-site.xml 를 수행한 후 아래와 같이 수정

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
     <property>
         <name>mapred.job.tracker</name>
         <value>bigdata1:9001</value>
     </property>

</configuration>

위는 JobTracker (NameNode의 병렬처리 담당 프로세스)가 bigdata1:9001 주소를 사용한다는 의미이다.

7. hadoop-env.sh 수정

vi $HADOOP_HOME/conf/hadoop-env.sh 수행 후 아래의 부분과 같이 수정하거나 추가

export HADOOP_HOME=/hbase/hadoop-1.0.4
export HADOOP_HOME_WARN_SUPPRESS=TRUE
export JAVA_HOME=/usr/java/jdk1.6.0_33
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/hadoop-examples-1.0.4.jar:
for f in ${HADOOP_HOME}/lib/*.jar; do
  HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:$f;
done
export HADOOP_HEAPSIZE=4000

 

8. 설정 파일 동기화

  NameNode에서 작성한

  hadoop-env.sh, core-site.xml, hdfs-site.xml, mapred-site.xml을

  모든 DataNode와 SNN의 (bigdata2~5) $HADOOP_HOME/conf에 복사한다.

 

9. HDFS NameNode Format

하둡의 초기화를 위해 Master 역할을 하는 NameNode에서(bigdata1) 아래와 같이 수행

hadoop namenode -format
12/11/06 20:30:06 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = bigdata1/XXX.XXX.XXX.XXX
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 1.0.4
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1393290; compiled by 'hortonfo' on Wed Oct  3 05:13:58 UTC 2012
************************************************************/
12/11/06 20:30:06 INFO util.GSet: VM type       = 64-bit
12/11/06 20:30:06 INFO util.GSet: 2% max memory = 71.11125 MB
12/11/06 20:30:06 INFO util.GSet: capacity      = 2^23 = 8388608 entries
12/11/06 20:30:06 INFO util.GSet: recommended=8388608, actual=8388608
12/11/06 20:30:06 INFO namenode.FSNamesystem: fsOwner=bigdata
12/11/06 20:30:06 INFO namenode.FSNamesystem: supergroup=supergroup
12/11/06 20:30:06 INFO namenode.FSNamesystem: isPermissionEnabled=true
12/11/06 20:30:06 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
12/11/06 20:30:06 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
12/11/06 20:30:06 INFO namenode.NameNode: Caching file names occuring more than 10 times
12/11/06 20:30:06 INFO common.Storage: Image file of size 113 saved in 0 seconds.
12/11/06 20:30:06 INFO common.Storage: Storage directory /hbase/hadoop-1.0.4/dfs/name has been successfully formatted.
12/11/06 20:30:06 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at bigdata1/XXXX.XXXX.XXX.XXX
************************************************************/

10. HDFS Startup

cd $HADOOP_HOME/bin

start-all.sh

위의 명령으로 Hadoop을 최초로 시작할 수 있다.

 

11. 구동 확인

jps

위의 OS 명령으로 DataNode, NameNode, SecondaryNameNode,

TaskTracker, JobTracker 등이 제대로 구동되는지 알 수 있다.

(NameNode의 경우)
15765 Jps
14834 NameNode
15131 JobTracker

(SNN의 경우)

8409 SecondaryNameNode
8625 Jps

(DataNode의 경우)

8498 TaskTracker
8300 DataNode
8625 Jps

hadoop fs -ls /

위의 명령으로 HDFS의 File들을 확인할 수 있다. (NameNode, DataNode, SNN에서 모두 확인 가능)

Found 1 items
drwxr-xr-x   - bigdata supergroup          0 2012-11-06 20:54 /tmp

 

하둡이 구동되었다!!!!

 

posted by 딥포커스
2012. 11. 6. 17:17 BigData

아파치 하둡 StandAlong/의사분산 모드는 설치 방법이 쉬워 자료가 많아

실제 업무에서 사용되는 완전분산 관련 설치 내용을 정리한다.

 

1. JDK 1.6 설치

하둡은 JVM 기반에서 동작하므로 JDK 설치가 선행되어야 한다.

 

(1) 설치

아래의 링크에서 각 플랫폼에 따른 JDK 버전 설치

하둡은 JDK 1.6을 지원

http://www.oracle.com/technetwork/java/javase/downloads/jdk6u35-downloads-1836443.html

 

(2) 환경변수 설정

.profile 등 각자의 Shell에 맞도록 아래와 같이 환경변수 설정

export JAVA_HOME=/usr/java/jdk1.6.0_33
export PATH=$PATH:$JAVA_HOME:$JAVA_HOME/bin
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib

와 같이 JAVA_HOME, PATH, CLASSPATH을 설정한다.

(운영체제 및 JDK 빌드에 따라 일부 경로를 달라질 수 있다.)

* chmod 755 .profile 을 수행하여 수행권한 부여

 

2. 아파치 하둡 다운로드

   http://www.apache.org/dyn/closer.cgi/hadoop/common/

   에서 Stable Version Download

   (혹은 http://mirror.apache-kr.org/hadoop/common/stable/  한국 Site에서 Download)

   현재 Stable Version은 hadoop-1.0.4-bin.tar.gz

 

3. OS 계정 설정

  groupadd dba

  useradd bigdata -g dba -pbigdata_password -d/hbase/hadoop-1.0.4 -s /bin/ksh

  위는 bigdata:dba 계정을 bigdata_password Password로

  /hbase/hadoop-1.0.4를 홈디렉토리로 하는 /bin/ksh을 Shell로 가지는 계정을 생성하는 예이다.

 

4. FTP 전송

  설치하고자 하는 서버에 FTP로 설치 파일 전송 (Binary Mode도 전송해야 정상적으로 파일 사용 가능)

  본 테스트 시에는 /hbase 디렉토리에 전송

 

5. 압축풀 

  적당한 Directory에다음과 같이

 

  gunzip -S .tgz hadoop-1.0.4-bin.tar.gz
  tar -xvf hadoop-1.0.4-bin.tar

 

  /hbase 디렉토리에서 위의 명령을 수행하여 기존에 만든 /hbase/hadoop-1.0.4 디렉토리에

 그대로 OverWrite 되도록 수행

 

6.  하둡을 위한 기본환경설정

.profile 등에 아래와 같이 환경 설정 추가 (Hadoop을 /hbase/hadoop-1.0.4 에 설치했다고 가정)

export HADOOP_HOME=/hbase/hadoop-1.0.4
export HADOOP_CLASSPATH=$CLASSPATH:$HADOOP_HOME:$HADOOP_HOME/lib
export PATH=$HADOOP_HOME:$HADOOP_HOME/bin:$PATH
export HADOOP_HOME_WARN_SUPPRESS=TRUE

export CLASSPATH=$CLASSPATH:.:$HADOOP_HOME/conf/log4j.properties:$HADOOP_HOME/hadoop-examples-1.0.4.jar:$JAVA_HOME/lib
for f in ${HADOOP_HOME}/*.jar; do
  CLASSPATH=${CLASSPATH}:$f;
done
export CLASSPATH

export PS1=[`hostname`:'$PWD']#

 

(HADOOP_HOME_WARN_SUPPRESS 설정은 Warning: $HADOOP_HOME is deprecated. 막기 위함)

 

7. 하둡 설정 확인

아래와 같이 Version 정보 확인

 

$HADOOP_HOME/bin/hadoop version
(결과값)
Hadoop 1.0.4
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1393290
Compiled by hortonfo on Wed Oct  3 05:13:58 UTC 2012
From source with checksum fe2baea87c4c81a2c505767f3f9b71f4


위와 같이 Version 정보가 정상적으로 출력되는지 확인

해당 작업까지 끝마쳤으면, 하둡의 기본적인 설치는 완료되었다.

이제부터 설치의 시작이라고 보면 되며, 아파치 하둡 완전분산 설치 II에서

가장 시간이 많이 걸리는 설정 과정을 설명하도록 하겠다.

 

 

 


 

 

 

 

 

 

 

 

posted by 딥포커스
2012. 11. 6. 15:32 BigData

아파치 하둡의 버전이 0.2X, 1.X, 2.X가 있어서

혼동스러웠는데 아파치 하둡 사이트에 정리가 되어 있었습니다.

 

0.20.X는 레거시 버전

0.20.203.X는 레거시 안정화 버전

0.22.X는 보안기능이 포함되어 있지 않은 버전

0.23.X는 2.X의 이중화 기능이 포함되어 있지 않은 베타버전

 

안정화된 아파치 하둡의 정식버전은 1.0.X (안정화가 맞는지는 흠... -_-)

현재 1.X 버전을 위한 베타버전은 1.1.X

 

Yarn, Avatar Node 등의 구조를 추가한 2.X.X (향후 변동이 아주 많을 것으로 생각되지만 기대되는 버전)

으로 생각하면 될 것 같습니다.

(원문)

  • 1.0.X - current stable version, 1.0 release
  • 1.1.X - current beta version, 1.1 release
  • 2.X.X - current alpha version
  • 0.23.X - simmilar to 2.X.X but missing NN HA.
  • 0.22.X - does not include security
  • 0.20.203.X - legacy stable version
  • 0.20.X - legacy version
posted by 딥포커스
2012. 11. 6. 15:16 BigData

하이브 튜토리얼 번역 문서

하이브 접근시에 유용한 자료입니다.

http://pizzastudio.tistory.com/entry/Apache-하이브-튜토리얼-번역-문서Hive-Tutorial

 

posted by 딥포커스
2012. 10. 11. 11:15 BigData

별도의 테스트용 PC 혹은 장비 없이 빅데이터 구축 검증을 하기 위해

VirtualBox 가상화를 통해 Redhat Linux의 클론버전인 CentOS를 사용하여 플랫폼

구축을 할 수 있습니다.

 

1. VirtualBox 다운로드

    https://www.virtualbox.org/wiki/Downloads

   윈도우의 경우에는 위에서 VirtualBox 4.2 for Windows hosts  x86/amd64 다운

   확장기능을 위해 VirtualBox 4.2 Oracle VM VirtualBox Extension Pack 도 같이 다운

2. CentOS 이미지 다운로드

   http://virtualboxes.org/images/centos/

   위의 경로에서 13. CentOS 6.3 Gnome Desktop x86 다운로드

3. VirtualBox 설치

   다운로드 받은 VirtualBox-4.2.0-80737-Win.exe VirtualBox 실행 및 설치

   역시 다운로드 받은 Oracle_VM_VirtualBox_Extension_Pack-4.2.0-80737.exe 확장팩 실행 및 설치

    (다운로드 버전에 따라 파일명은 틀릴 수 있습니다.)

4. CentOS 이미지 VirtualBox Load

   CentOS 이미지의 압축을 푼 후에    CentOS 6.3 x86.vmd 파일 더블클릭


 

posted by 딥포커스
prev 1 next