슬라이드 1

Similar documents
빅데이터분산컴퓨팅-5-수정

RUCK2015_Gruter_public

슬라이드 1

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

리한다. 그리고오픈소스이기때문에소규모회사및단체에서도무료로사용할수있으며디버깅, 모니터링을위한환경도제공한다. 본보고서에서는 Hadoop의설치를다루었던이전 TR [1] 에이어가상분산처리환경이아닌실제완전분산처리환경을구축하는방법에대해알아본다. 본보고서에서완전분산처리환경을구축하기

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤

PowerPoint 프레젠테이션

<30322E F6F7020BCB3C4A1BFCD20BED6C7C3B8AEC4C9C0CCBCC7C0C720B1B8B5BF28B1DDC5C2C8C62C20B1E8BCBCC8B82C20C0CCBBF3C1D8292E687770>

DBMS & SQL Server Installation Database Laboratory

MySQL-Ch10

Oracle Database 10g: Self-Managing Database DB TSC

PowerPoint 프레젠테이션

1217 WebTrafMon II

Intra_DW_Ch4.PDF

문서의 제목 나눔고딕B, 54pt

DB진흥원 BIG DATA 전문가로 가는 길 발표자료.pptx

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

MySQL-.. 1

Microsoft PowerPoint - 10Àå.ppt

빅데이터 분산 컴퓨팅 -6

분산처리 프레임워크를 활용한대용량 영상 고속분석 시스템

Portal_9iAS.ppt [읽기 전용]

ETL_project_best_practice1.ppt

NoSQL

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

PowerPoint 프레젠테이션

PlatformDay2009-Hadoop_OSBI-YoungwooKim

PowerPoint Presentation

untitled

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

PowerPoint Presentation

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

PCServerMgmt7

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

Oracle9i Real Application Clusters

DKE Templete

最即時的Sybase ASE Server資料庫診斷工具

Basic Template

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

초보자를 위한 분산 캐시 활용 전략

歯sql_tuning2

chapter1,2.doc

Apache Ivy

Backup Exec

DKE Templete


Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

PowerPoint 프레젠테이션

결과보고서

단계

윈도우시스템프로그래밍

PowerPoint 프레젠테이션

untitled

슬라이드 1

CONTENTS Volume 테마 즐겨찾기 빅데이터의 현주소 진일보하는 공개 기술, 빅데이터 새 시대를 열다 12 테마 활동 빅데이터 플랫폼 기술의 현황 빅데이터, 하둡 품고 병렬처리 가속화 16 테마 더하기 국내 빅데이터 산 학 연 관

슬라이드 1

목 차

[Brochure] KOR_TunA

untitled

PowerPoint 프레젠테이션

DocsPin_Korean.pages

vm-웨어-앞부속

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

Microsoft PowerPoint - CNVZNGWAIYSE.pptx

EJB Transaction & Exception

MySQL-Ch05

김기남_ATDC2016_160620_[키노트].key

TTA Journal No.157_서체변경.indd

PowerPoint 프레젠테이션

Voice Portal using Oracle 9i AS Wireless

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

MS-SQL SERVER 대비 기능

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Analyst Briefing

PowerPoint 프레젠테이션

들어가는글 2012년 IT 분야에서최고의관심사는아마도빅데이터일것이다. 관계형데이터진영을대표하는오라클은 2011년 10월개최된 오라클오픈월드 2011 에서오라클빅데이터어플라이언스 (Oracle Big Data Appliance, 이하 BDA) 를출시한다고발표하였다. 이와

초보자를 위한 ADO 21일 완성

Chap7.PDF

서현수

Oracle Apps Day_SEM

Who am I?

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

슬라이드 1

항목

Simplify your Job Automatic Storage Management DB TSC

Ubiqutious Pubilc Access Reference Model

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

LXR 설치 및 사용법.doc

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Transcription:

Hadoop Tutorial 2013.2 정재화 Copyright 2013 그루터. All Rights Reserved. 이문서는 그루터의지적자산이므로 그루터의승인없이이문서를임의로배포하거나다른용도로임의변경하여사용할수없습니다.

ABOUT ME 현 ) 그루터책임개발자 (http://www.gruter.com ) 전 ) 큐릭스, NHN, 엔씨소프트 E-mail: jhjung@gruter.com Homepage: http://blrunner.com Twitter: @blrunner78 저서 : 시작하세요! 하둡프로그래밍 : 기초부터실무까지하둡의모든것 (2012.10 출간 ) 2

목차 1. Hadoop 2. HDFS 3. MapReduce 4. Hive 5. Demo 3

1. Hadoop 4

1.1 하둡개요 하둡은대용량데이터를분산처리할수있는자바기반의오픈소스프레임워크이다. 1 Distributed File System 분산 / 병렬처리에적합한구조로파일저장 2 Distributed/Parallel Computing framework Map&Reduce 기반의컴퓨팅플랫폼제공 3 Open Source Project http://hadoop.apache.org Java 기반 4,000 node 이상단일클러스터구성가능 5

1.2 하둡히스토리 Feb 2003 First MapReduce library by Google Dec 2004 Google GFS file system paper Feb 2006 Hadoop becomes Apache Lucene project Apr 2007 Yahoo! runs Hadoop on 1000-node cluster Feb 2008 Yahoo! generate production search index with Hadoop July 2008 Hadoop Wins Terabyte Sort Benchmark sorted 1 terabyte of data in 209 seconds July 2009 Hadoop is getting bigger Hadoop Common, MapReduce, Hadoop Distributed File System(HDFS) Dec 2011 Release 1.0.0 May 2012 Release 2.0.0 alpha 6

1.3 하둡에코시스템 프로젝트 Avro Cassandra Chukwa Hama HBase Hive Impala Mahout Oozie Pig ZooKeeper 설명 멀티플랫폼간데이터호환 Serialization 도구 DHT 기반의분산데이터관리시스템. Hadoop 은사용하지않고로컬디스크이용 분산환경에서로그를수집하기위한시스템, 저장소로 HDFS 를이용하고로그분석을위해 MapReduce 이용 Map/Reduce 방식이아닌 BSP(Bulk Synchronous Parallel) 방식의컴퓨팅플랫폼 HDFS 에데이터파일을저장하는분산데이터관리시스템 SQL 과비슷한스크립트질의를이용해 HDFS 에저장된데이터를 MapReduce 로분석하는도구 Hive 질의문법을지원하는준실시간질의실행플랫폼 Hadoop 기반 Machine library Hadoop Workflow 엔진 Hive 와유사하게스크립트질의를이용해 HDFS 에저장된데이터를맵리듀스로분석하는도구단순스크립트가아닌반복문, 제어문, 변수등사용가능 분산환경을관리하는분산코디네이터 7

2. HDFS 8

2.1 대용량파일시스템 파일시스템 DAS (Direct-attached storage) NAS (Network-attached storage) SAN (storage area network) 특징 - 서버에직접연결된스토리지 (storage) - 여러개의하드디스크를장착할수있는외장케이스를이용하는방식 - 일종의파일서버 - 별도의운영체제를사용하며, 파일시스템을안정적으로공유할수있음. - 주로첨부파일이나이미지같은데이터를저장하는데많이사용 - 수십에서수백대의 SAN 스토리지를데이터서버에연결해총괄적으로관리해주는네트워크를의미함 - DAS 의단점을극복하기위해개발됐으며, 현재 SAN 기법이시장의절반이상을차지 - DBMS 와같이안정적이고빠른접근이필요한데이터를저장하는데사용 9

2.2 GFS (Google File System) 개요 1 Google 에서개발된파일시스템으로 Google 의많은서비스에서사용 2 소프트웨어는공개하지않고논문만공개 http://www.cs.rochester.edu/meetings/sosp2003/papers/p125-ghemawat.pdf 3 다음과같은설계원칙 저가형서버로구성된환경으로서버의고장이빈번히발생할수있다고가정 대부분의파일은대용량파일로가정 작업부하는연속적으로많은데이터를읽는연산이거나임의의영역에서적은데이터를읽는연산 파일에대한쓰기연산은주로순차적으로데이터를추가하는연산, 파일에대한수정은드물게발생 여러클라이언트에서동시에동일한파일에데이터를추가하는환경에서동기화오버헤드를최소화할수있는방법필요 낮은응답지연시간보다높은처리율이좀더중요 10

2.3 HDFS(Hadoop Distributed File System) 개요 1 2 3 4 Very Large Scale Distributed File System 10K nodes, 100 million files, 10 PB Use Commodity Hardware self-healing: failover, recovery, backup 서버장애를일반적인상황이라고가정 Optimized for batch processing 주로저장후읽기위주의데이터저장 1 file = n개의 64MB size block으로 split 각 block은서로다른 node에분산저장 POSIX 표준 API는지원하지않음 자체 API 지원 (Java, C) File lock, Random write 미지원 append는제한된기능으로제공 일반적인응용애플리케이션 (DB 등 ) 의저장소로활용불가 11

2.4 HDFS 시스템구성 Secondary NameNode NameNode 의메모리에로딩 File Namespace Client Request Meta Operation NameNode /foo/bar 블록1 File Read/Write Server Status Block Management File Block 복제 DataNode #1 DataNode #2 DataNode #3 DataNode #4 DataNode #5 랙 (rack)1 랙 (rack)2 12

2.5 HDFS 컴포넌트 1 NameNode 파일시스템의 inode namespace 관리 ( 메모리 ) DataNode 클러스터멤버쉽관리및장애시장애복구 File Block에대한복제수, 볼륨밸런싱등에대한제어 2 Secondary NameNode NameNode 의 namespace 정보를주기적 (1 시간 ) 으로 rolling 하여다시 NameNode 로전달하는기능 3 DataNode 실제 File Block 을저장 File Block 은운영체제 (Linux) 의파일시스템내에하나의파일로저장 4 Client Library 파일연산을위한 API 제공 파일저장시 NameNode, DataNode 와연동 13

2.6 블록기반구조 320MB 파일 블록1 블록2 블록3 블록4 블록5 파일저장 HDFS 블록 1 블록 2 블록 1 블록 3 블록 3 블록 3 블록 4 블록 4 블록 5 블록 2 블록 4 블록 5 블록 1 블록 2 블록 5

2.7 파일저장과정 Application HDFS Client 7. 추가블록요청 4. 데이터전송 1. /foo/bar 생성 3. 데이터노드목록 NameNode Host 2. /foo/bar lock NameNode 8. 네임스페이스등록 edits file Secondary NameNode /foo/bar fsimage file 9. fsimage 병합 ( 주기 ) namespace DataNode DataNode DataNode 5. 데이터 6. 데이터 복제 복제 File Block File Block File Block

2.8 파일조회과정 Application HDFS Client 1. /foo/bar open 3. 데이터노드목록 NameNode Host NameNode 2. 네임스페이스조회 /foo/bar namespace 4. 전송받은목록중임의의서버로부터파일요청 5. 데이터전송 6. 서버장애시자동으로 HDFS Client 가다른서버의 Block read DataNode DataNode DataNode File Block File Block File Block

2.9 HDFS 특징 1 2 3 4 5 6 7 하나의파일을여러개의 block으로분리하여분산저장별도의외부스토리지가아닌 x86 장비내부의로컬디스크이용특정서버장애발생시자동감지및복구서버추가 / 제거시별도의작업불필요저장가능한파일수한계 NameNode가 SPOF(Single Point Of Failure) 범용스토리지로사용하기는기능적제약이있음

3. MapReduce 18

3.1 대용량데이터처리의어려움 1 2 3 1대장비에서의자원의제약 CPU 갯수, 메모리용량 Scale Up 방식의확장은비용증가및최대확장가능자원제약데이터읽기속도 디스크읽기속도가 100MB/sec 라고가정하면 1TB = 10,485 sec = 7일소요성능을높이기위해서는분산처리가필수 프로그램복잡도증가 컴퓨팅도중일부장비, 네트워크장애발생가능성이높아짐 대부분의분산컴퓨팅플랫폼은컴퓨팅만분산

3.2 MapReduce 개념 map (k1,v1) list(k2,v2) reduce (k2, list (v2)) list(v2) 분리 입력데이터 This is a book. That book is on the desk. I like that book. This is a book. That book is on the desk. I like that book. map() (I,1) (like, 1) (that, 1) (book, 1) map() (This,1) (is, 1) (a, 1) (book, 1) (That, 1) (book, 1) Partition Merge sort 결과데이터 (book, 3) (is, 2) (This,1) (book, [1,1,1]) (is, [1,1]) (This,[1]) reduce() MapReduce Platform

3.3 Google MapReduce 1 MapReduce 개념을대규모분산환경에구현 2 논문으로만외부에공개 2004년 http://research.google.com/archive/mapreduce.html

3.4 Hadoop MapReduce 1 2 3 4 5 MapReduce 를쉽게구현, 실행할수있는프레임워크 MapReduce 관련라이브러리 MapReduce 프로그램실행환경제공 HDFS 와연동 입력 / 출력데이터파일저장소로사용 작업수행시데이터파일을네트워크를거쳐읽는것이아니라입력블록이있는서버에서수행되도록스케줄링 프로그램수행에필요한설정파일, 사용자프로그램등의저장소로활용 스케줄러 기본은 FIFO, 추가로 Fair, Capacity 스케줄러제공 작업실행도중특정태스크에장애또는서버에장애발생시다른서버로재할당 작업단위 Job: 사용자가실행시키는작업 Task: 하나의작업은 n 개의 Task(Map or Reduce) 로분리되어각노드에서분산되어실행 다양한실행 / 프로그램옵션제공 MapReduce 프로그램은기본은자바로개발해야하지만다양한프로그램언어로구현가능 인터페이스기반으로다양한사용자정의기능구현가능

3.5 Hadoop MapReduce 아키텍처 User Application runjob Hadoop Library Store job info heartbeat TaskTracker #1 fork JobTracker TaskTracker #2 fork Read job info Download Job file job.split job.xml job.jar Hadoop file system Read job info Task Task Task Task User defined Map/Reduce Task

3.6 MapReduce 시스템콤포넌트 1 2 3 JobTracker 작업을관리하는마스터서버 주로 NameNode와동일한서버사용 사용자의작업은 JobTracker로요청됨 작업에대한스케줄링관리 Single Point Of Failure TaskTracker Task가수행하는서버 주로 DataNode와동일한서버사용 하나의 TaskTracker 서버에는동시에 N 개의 Task 수행가능 ClientAPI Hadoop의 MapReduce 프로그램모델및프레임워크 클러스터상황에대한간단한 API

3.7 데이터흐름 하나의 Map Task Process 하나의 Reduce Task Process Map1 파일 1-1 파일 1-2 파일 1-1 파일 2-1 Block-1 Block-2 Block-3 Block-4 Block-5 Hadoop File Map2 Map3 Map4 Map5 파일 2-1 파일 2-2 파일 3-1 파일 3-2 파일 4-1 파일 4-2 파일 5-1 파일 5-2 network (http) 파일 3-1 파일 4-1 파일 5-1 파일 1-1 파일 2-1 파일 3-1 파일 4-1 파일 5-1 Reduce1 Reduce2 결과파일 1 결과파일 2 Partitioner Local temp file map result file Merge&Sort

4. Hive 26

4.1 Hive 개요 배경 Facebook 이만들기시작했으며현재 Top level ASF project Facebook 은 2008 년 0.2T(per day) 에서 2010 년 12+TB(per day) 으로데이터가폭발적으로증가 Hive 질의를수행하는 cron job 으로 Oracle DB 에저장 Python code 로 ETL 처리 MapReduce MapReduce 프로그램의어려움 Pig/Cascading Metadata 관리문제 (Hcatalog 는 2012년 incubator) 27

4.1 Hive 개요 Hadoop 기반의 Data warehouse system Hive 는데이터를구조화하고복잡한 MR 프로그램을 HQL 을사용하여쉽게분석할수있다. SQL-Like Query Language HDFS 를스토리지로사용 MapReduce 사용으로분산처리 RDB 를이용한 Metadata 관리 확장성 (format, function, scripts..) Hive 는 Hadoop 기반에서 MapReduce 를실행하기때문에 batch 성데이터를처리하기에적합 작고간단한테이블조회시에도많은단계를거치기때문에온라인트랜잭션작업이나 row 단위업데이트는불가능. 28

4.2 Hive 컴포넌트 1 2 3 4 5 Driver: session, fetch, execute Compiler: parse, plan, optimize Metastore: schema, location in HDFS, serializers and deserializers Execution engine: Compiler 에서생성된 plan 을실행하며, stages 간의 dependency 관리 관리도구 Interactive console, hadoop streaming 형태로실행됨 간단한 WEB UI 제공 29

4.3 Hive 아키텍처 CLI WEB UI Thrift API JDBC/ODBC DDL, Queries Metadata Thrift API MetaStore Database (Derby, Mysql..) Driver Session (Compiler) Parser Planner Optimizer Execution Engine Execute Jobs Result Hadoop Source Data Intermediate Result Data SerDe InputFormat OutputForamt Result library Data jars 30

4.4 데이터모델 : 테이블 1 2 3 4 Location 테이블을만들면 DFS 의 /user/hive/warehouse/{db}/{tablename} 으로 directory 가생성된다. e.g) CREATE TABLE invites (foo INT, bar STRING); External Table : 다른위치에있는 data 로생성가능, drop 시지워지지않는다. e.g) CREATE EXTERNAL TABLE invites (foo INT, bar STRING) location /tmp/hive/data' Delimiter Column 과 row 를구분하기위해사용한다. 그러나 row 는 hadoop 이결정하여변경할수없다. Data Types Primitive, complex 등을지원한다. https://cwiki.apache.org/confluence/display/hive/languagemanual+types File format: SEQUENCEFILE, TEXTFILE, RCFILE, INPUTFORMAT/OUTPUTFORMAT 31

4.5 HiveQL: 데이터로드 1 Loading files into tables LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2...)] e.g) CREATE TABLE invites (foo INT, bar STRING); e.g) LOAD DATA LOCAL INPATH 'examples/files/kv1.txt' OVERWRITE INTO TAB LE invites; 2 Inserting data into Hive Tables from queries(multiple inserts) INSERT OVERWRITE INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2...) [IF NOT EXISTS]] select_statement1 FROM from_statement; e.g) CREATE TABLE invites1 like invites; e.g) INSERT OVERWRITE TABLE invites1 select * from invites; 3 Writing data into filesystem from queries(multiple inserts) INSERT OVERWRITE [LOCAL] DIRECTORY directory1 SELECT... FROM... 32

4.6 HiveQL: 데이터조회 1 2 3 4 5 6 7 Select Syntax e.g) SELECT * FROM t1 WHERE Clause e.g) SELECT * FROM sales WHERE amount > 10 AND region = "US DISTINCT Clauses e.g) SELECT DISTINCT col1 FROM t1 Partition Based Queries HAVING Clause e.g) SELECT col1 FROM t1 GROUP BY col1 HAVING SUM(col2) > 10 LIMIT Clause e.g) SET mapred.reduce.tasks = 1 e.g) SELECT * FROM sales SORT BY amount DESC LIMIT 5 //Top 5 REGEX Column Specification e.g) SELECT `(ds hr)?+.+` FROM sales c.f) https://cwiki.apache.org/confluence/display/hive/languagemanual 33

5. Demo 34

5.1 Hadoop 실행모드 모드 내용 Standalone - 하둡의기본실행모드. - 하둡환경설정파일에아무런설정을하지않고, 실행을하게되면로컬장비에서만실행되기때문에로컬모드라고도함 - 하둡에서제공하는데몬을구동하지않기때문에분산된환경을고려한테스트는불가능. - 단순하게맵리듀스프로그램을개발하고, 해당맵리듀스를디버깅하는용도에만적합한모드. Pseudo-distributed Fully distributed - 가상분산모드 - 하나의장비에모든하둡환경설정을하고, 하둡서비스도이장비에서만제공하는방식 - HDFS 와맵리듀스와관련된데몬을하나의장비에서만실행함 - 하둡스터디및개발테스트용도에적합 - 완전분산모드 - 여러대의장비에하둡이설치된경우

5.1 Hadoop 실행모드 호스트 server01 server02 server03 server04 설치데몬 NameNode, JobTracker Secondary NameNode, DataNode, TaskTracker DataNode, TaskTracker DataNode, TaskTracker

5.2 설치환경구성 1 리눅스서버준비 윈도우계열의경우 VirtualBox, VMWare 와같은가상호스트에리눅스를설치할것 2 호스트설정 /etc/hosts 에하둡설치대상호스트등록 e.g) 192.168.56.101 server01 3 JDK 설치 다운로드 : http://www.oracle.com/technetwork/java/javase/downloads/jdk6u38- downloads-1877406.html su - root cd ${download_dir} chmod 755 jdk-6u38-linux-i586-rpm.bin./jdk-6u38-linux-i586-rpm.bin /etc/profile 에 JAVA_HOME 추가 export JAVA_HOME=JDK 설치경로 export PATH=$PATH:$JAVA_HOME/bin source /etc/profile

5.2 설치환경구성 4 5 사용자생성 su root adduser hadoop passwd hadoop ssh 키생성및복사 su hadoop ssh-keygen t rsa ssh-copy-id i ~/.ssh/id_rsa.pub 데이터노드호스트명 ssh-copy-id i ~/.ssh/id_rsa.pub 보조네임노드호스트명 모든 Slave 서버로복사할것

5.3 설치파일다운로드 stable 버전으로다운로드 (2013 년 2 월현재 stable 버전은 1.0.4 버전임 )

5.4 Hadoop 설치 1 2 3 4 5 하둡설치파일을 /home/hadoop에업로드압축해제 su - hadoop cd /home/hadoop tar xzf hadoop-1.0.4.tar.gz 디렉터리생성 namespace 저장디렉토리 (namenode) mkdir /home/hadoop/filesystem data 디렉토리 (datanode) mkdir /home/hadoop/data conf/hadoop-env.sh export HADOOP_HEAPSIZE=256 export HADOOP_PID_DIR=/home/hadoop/pids conf/core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://server01:9000</value> </property> </configuration>

5.4 Hadoop 설치 6 conf/hdfs-site.xml <property> <name>dfs.name.dir</name> <value>/home/hadoop/filesystem</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.http.address</name> <value>server01:50070</value> </property> <property> <name>dfs.secondary.http.address</name> <value>server02:50090</value> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/data/hdfs</value> </property> <property> <name>dfs.support.append</name> <value>true</value> </property>

5.4 Hadoop 설치 7 conf/mapred-site.xml <configuration> <property> <name>mapred.job.tracker</name> <value>server01:9001</value> </property> </configuration> 8 conf/masters server02 9 conf/slaves server02 server03 server04

5.5 Slave 서버설치 1 2 3 NameNode에설치된내용을 DataNode로복사 NameNode 설치내용 tar cd /home/hadoop tar cf hadoop.tar hadoop-1.0.4 DataNode로복사및압축해제 모든 DataNode에대해내용실행 scp hadoop.tar < 데이터노드호스트명 >:/home/hadoop ssh < 데이터노드호스트명 > cd /home/hadoop; tar xf hadoop.tar ssh < 데이터노드호스트명 > mkdir /home/hadoop/data 운영환경에서는스크립트작성하여활용

5.6 NameNode 포맷 1 2 FileSystem Namespace 정보저장디렉토리를구성하는과정 NameNode에서만실행 Format 명령실행시기존파일정보가있으면모두삭제됨 conf/hdfs.site.xml 파일에있는 dfs.name.dir 설정값에생성실행명령 bin/hadoop namenode format ls al /home/hadoop/filesystem

5.7 Hadoop 실행및중지 1 실행관리는 NameNode가설치된서버에서스크립트실행 2 Hadoop 전체시작및중지 cd ${HADOOP_HOME} bin/start-all.sh bin/stop-all.sh 3 HDFS만시작및중지 bin/start-dfs.sh bin/stop-dfs.sh 4 특정데몬시작및중지 NameNode NameNode 설치서버 bin/hadoop-daemon.sh start namenode bin/hadoop-daemon.sh stop namenode DataNode 실행할 DataNode 서버에서실행 bin/hadoop-daemon.sh start datanode bin/hadoop-daemon.sh stop datanode

5.8 MapReduce 플랫폼실행 1 전체실행 : JobTracker 서버 (NameNode 서버 ) 에서실행 su hadoop cd /home/hadoop/hadoop-1.0.4 bin/start-mapred.sh bin/stop-mapred.sh 2 데몬별실행 : 각서버에서실행 JobTracker bin/hadoop-daemon.sh start jobtracker bin/hadoop-daemon.sh stop jobtracker TaskTracker bin/hadoop-daemon.sh start tasktracker bin/hadoop-daemon.sh stop tasktracker

5.9 예제프로그램실행 1 기본제공되는예제프로그램 hadoop-examples-1.x.x.jar 2 HDFS 에샘플데이터업로드 bin/hadoop fs mkdir conf bin/hadoop fs -put conf/hadoop-env.sh conf/hadoop-env.sh 3 WordCount 예제실행 bin/hadoop jar hadoop-examples-*.jar wordcount conf/hadoop-env.sh wordcount_output 4 예제실행결과확인 bin/hadoop fs -cat wordcount_output/part-r-00000

5.10 Hive 설치 1 요구사항 Hadoop RDBMS Default: derby MySql Server, mysql-connector-java(gpl) Hive-0.9.0 ANT-LIB (OPTION hive web interface) 2 압축해제 cp ${download}/hive-0.9.0.tar.gz /home/hadoop cd /home/hadoop tar xzf hive-0.9.0.tar.gz 3 환경설정 cd hive-0.9.0 cp conf/hive-env.sh.template conf/hive-env.sh vi conf/hive-env.sh HADOOP_HOME=/home/hadoop/hadoop-1.0.4 48

5.10 Hive 설치 4 vi conf/hive-site.xml <configuration> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> </configuration> 5 HDFS에데이터저장소디렉터리생성 cd /home/hadoop bin/hadoop fs mkdir /tmp bin/hadoop fs -mkdir /user/hive/warehouse bin/hadoop fs -chmod g+w /tmp bin/hadoop fs -chmod g+w /user/hive/warehouse 6 실행 bin/hive show tables; 49

5.11 Hive 활용사례 1 미국항공운항통계데이터다운로드 : http://statcomputing.org/dataexpo/2009/the-data.html 2 3 Hive 질의시편의를위해헤더정보를삭제함 sed -e '1d' 2008.csv > 2008_new.csv HDFS에데이터업로드 bin/hadoop fs mkdir input bin/hadoop fs -put 다운로드경로 /2008_new.csv input 50

5.11 Hive 활용사례 4 Hive 테이블생성하기 CREATE TABLE airline_delay(year INT, Month INT, DayofMonth INT, DayOfWeek INT, DepTime INT, CRSDepTime INT, ArrTime INT, CRSArrTime INT, UniqueCarrier STRING, FlightNum INT, TailNum STRING, ActualElapsedTime INT, CRSElapsedTime INT, AirTime INT, ArrDelay INT, DepDelay INT, Origin STRING, Dest STRING, Distance INT, TaxiIn INT, TaxiOut INT, Cancelled INT, CancellationCode STRING COMMENT 'A = carrier, B = weather, C = NAS, D = security', Diverted INT COMMENT '1 = yes, 0 = no', CarrierDelay STRING, WeatherDelay STRING, NASDelay STRING, SecurityDelay STRING, LateAircraftDelay STRING) PARTITIONED BY (delayyear INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE; 51

5.11 Hive 활용사례 5 Hive 테이블에데이터업로드 LOAD DATA INPATH '/user/hadoop/input/2008_new.csv' OVERWRITE INTO TABLE airline_delay PARTITION (delayyear='2008'); 6 데이터업로드확인 SELECT year, month, deptime, arrtime, uniquecarrier, flightnum FROM airline_delay WHERE delayyear = '2008' LIMIT 10; 7 집계함수활용 SELECT COUNT(1) FROM airline_delay WHERE delayyear = 2008; SELECT Year, Month, AVG(ArrDelay) AS avg_arrive_delay_time, AVG(DepDelay) AS avg_departure_delay_time FROM airline_delay WHERE delayyear = 2008 AND ArrDelay > 0 GROUP BY Year, Month; 52