Agenda NoSQL 개요 NoSQL 특징 NoSQL 솔루션 HBase Architecture HBase Data Model HBase Index/Data File HBase Failover HBase Usecase

Similar documents
슬라이드 1

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

PowerPoint 프레젠테이션

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

Intra_DW_Ch4.PDF

Microsoft PowerPoint - CNVZNGWAIYSE.pptx

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

NoSQL

RED HAT JBoss Data Grid (JDG)? KANGWUK HEO Middleware Solu6on Architect Service Team, Red Hat Korea 1

Ubiqutious Pubilc Access Reference Model

목 차

MS-SQL SERVER 대비 기능

Oracle9i Real Application Clusters

김기남_ATDC2016_160620_[키노트].key

PowerPoint 프레젠테이션

untitled

RUCK2015_Gruter_public

Cloud Friendly System Architecture

Intro to Servlet, EJB, JSP, WS

슬라이드 1

DocsPin_Korean.pages

REDIS 이해와 활용

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

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

PCServerMgmt7

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

1217 WebTrafMon II

Portal_9iAS.ppt [읽기 전용]

ETL_project_best_practice1.ppt

Oracle Database 10g: Self-Managing Database DB TSC

vm-웨어-01장

Basic Template

결과보고서

The Self-Managing Database : Automatic Health Monitoring and Alerting

PowerPoint 프레젠테이션

플랫폼을말하다 2

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

슬라이드 1

PowerPoint Presentation

ecorp-프로젝트제안서작성실무(양식3)

Simplify your Job Automatic Storage Management DB TSC

untitled


2

PowerPoint 프레젠테이션

DW 개요.PDF

Backup Exec

PowerPoint 프레젠테이션

Cache_cny.ppt [읽기 전용]

Data Guard 기본개념.doc

슬라이드 1

I I-1 I-2 I-3 I-4 I-5 I-6 GIS II II-1 II-2 II-3 III III-1 III-2 III-3 III-4 III-5 III-6 IV GIS IV-1 IV-2 (Complement) IV-3 IV-4 V References * 2012.

Voice Portal using Oracle 9i AS Wireless

출원국 권 리 구 분 상 태 권리번호 KR 특허 등록

Something that can be seen, touched or otherwise sensed

PowerPoint Presentation

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

5 주차 -mongodb 설치잠깐! CAP 이론 NoSQL이나온이유와 MongoDB NoSQL의데이터저장구조에따른세가지분류 RDBMS와 NoSQL특성비교 RDBMS와 NoSQL의사용시기 MongoDB 소개및특징 MongoDB와 RDBMS와의공통 MongoDB CRUD

Microsoft Word - 조병호

PowerPoint 프레젠테이션

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

금오공대 컴퓨터공학전공 강의자료

초보자를 위한 ADO 21일 완성

<4D F736F F F696E74202D20352E20BCBAB4C920C1DFBDC C F6EC0BB20C0A7C7D120BDC7BDC3B0A C3B3B8AEB9E6BEC

서현수

DBMS & SQL Server Installation Database Laboratory

[Brochure] KOR_TunA

6.24-9년 6월

スライド タイトルなし

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

62

빅데이터시대 Self-BI 전략 이혁재이사 비아이씨엔에스


°í¼®ÁÖ Ãâ·Â

비식별화 기술 활용 안내서-최종수정.indd

Microsoft PowerPoint - Session2 - Tibero 6

dbms_snu.PDF

HTML5가 웹 환경에 미치는 영향 고 있어 웹 플랫폼 환경과는 차이가 있다. HTML5는 기존 HTML 기반 웹 브라우저와의 호환성을 유지하면서도, 구조적인 마크업(mark-up) 및 편리한 웹 폼(web form) 기능을 제공하고, 리치웹 애플리케이 션(RIA)을

oracle9i_newfeatures.PDF

리뉴얼 xtremI 최종 softcopy

J2EE & Web Services iSeminar

Microsoft PowerPoint - 10Àå.ppt

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

Analyst Briefing

PowerPoint Presentation

Oracle Apps Day_SEM

Chap7.PDF


PowerPoint Presentation

No Slide Title

빅데이터_DAY key

Global Bigdata 사용 현황 및 향후 활용 전망 빅데이터 미도입 이유 필요성 못느낌, 분석 가치 판단 불가 향후 투자를 집중할 분야는 보안 모니터링 분야 와 자동화 시스템 분야 빅데이터의 핵심 가치 - 트랜드 예측 과 제품 개선 도움 빅데이터 운영 애로 사항

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

Microsoft Word - 김완석.doc

I. - II. DW ETT Best Practice

APOGEE Insight_KR_Base_3P11

: Hadoop 출간 은 출판 분 2013 년 10 월 3 윤 퍼플 주 울 종 종 1 1번 윤 2013 본 전부 반 부를 재 권 동를 셔 면 OpenWithNet 총 상 술 워크 (2006 년) : Hadoop 세만 NoSQL 웹 분

Yggdrash White Paper Kr_ver 0.18

Service-Oriented Architecture Copyright Tmax Soft 2005

Multi Channel Analysis. Multi Channel Analytics :!! - (Ad network ) Report! -! -!. Valuepotion Multi Channel Analytics! (1) Install! (2) 3 (4 ~ 6 Page

Transcription:

김형준 http://www.jaso.co.kr http://www.seenal.com babokim@gmail.com 이저작물은크리에이티브커먼즈코리아저작자표시 - 비영리 - 변경금지 2.0 대한민국라이센스에따라이용하실수있습니다.

Agenda NoSQL 개요 NoSQL 특징 NoSQL 솔루션 HBase Architecture HBase Data Model HBase Index/Data File HBase Failover HBase Usecase

NoSQL Differ from classic relational database management systems It does not use SQL as its query language It may not give full ACID guarantees It has a distributed, fault-tolerant architecture NoSQL Anti RDBMS, NoSQL = Not Only SQL popularized in early 2009.

NoSQL 출현배경 Data Tsunami 40 billions Web page, 55 trillions Web link(2009 년 ) 281 exa-bytes, 45 GB/person(2009 년 ) 데이터저장소의확장성에대한요구증가 Scale up 방식이아닌 Scale out 방식요구 기존솔루션은대용량데이터또는비정형데이터에불필요한기능존재 UPDATEs and DELETEs and JOIN ACID Transactions Fixed Schema 대용량처리에필요한기능은지원하지않음 hierarchical data, graphs 글로벌인터넷서비스회사의기술공유 구글, 아마존, 야후, 페이스북등 ACID vs. BASE Atomic, Consistency, Isolation, Durability 전통적인기업데이터속성 Basically Available, Soft-state, Eventually consistent 인터넷기반데이터속성

CAP Conjection Consistency RDBMS Availability 분산환경에서적절한응답시간이내에세가지속성을모두만족시키는 저장소는구성하기어렵다. Bigtable Cloudata HBase Partition Tolerance Dynamo Cassandra http://lpd.epfl.ch/sgilbert/pubs/brewersconjecture-sigact.pdf

MySQL CAP(Read operation) Update Data = A Where Key = k1 ClientA Select Data Where Key = k1 ClientB Master Slave #1 Slave #2 replication replication - Availability - Partition Tolerance Update Data = A Where Key = k1 ClientA Patitioned Select Data Where Key = k1 ClientB Master Slave #1 Slave #2 replication

NoSQL 특징 단순한데이터모델 Key/value Document 기반 단순한 Table/Column 모델 다수의저가 x86 서버로구성 대부분분산아키텍처 단위컴포넌트는장애에취약 확장성, 고가용성지원 Automatic partition or shading Data Replication Automatic Failover and Recovery 관계형데이터베이스에비해약한데이터정합성 Eventual Consistency 범용적인용도가아닌제한된용도로사용

NoSQL 고려사항 Data Model Key/Value, Document, Wide Columnar Storage Model In-memory, persistent, Hybrid Consistency Model Strong, Eventual Data partitioning 미지원, DHT, META Membership Changes 지원 / 미지원, 무정지지원, Data reallocation 여부 Read/write performance Supported Index Row key only, Secondary Index, Full text index Failure handling(or Availability) mechanism Hot-Standby, Cold-Standby Data replication Support Client HTTP(REST), 특정언어만지원, 다양한언어지원 License Commercial, Apache, GPL

Data Systems and Timeframes Offline Processing Near-Real-Time Processing Blocking request/response Hadoop Data warehousing OLAP Message queues (JMS, RabbitMQ, ) CEP(Esper) OLTP: MySQL, Oracle, NoSQL: HBase, Cassandra, 1 hour+ 1 seconds to 1 hour Less than 1 seconds

NoSQL Solution key value cache memcached, repcached, coherence, infinispan, extreme scale, jboss cache, velocity, terracota, redis(?) key value store keyspace, flare, schema free, RAMCloud clustered key value store dynamo, voldemort, Dynomite, SubRecord, Dovetaildb ordered key value store tokyo tyrant, lightcloud, NMDB, luxio, memcachedb, actord tuple store gigaspaces, coord, apache river object database ZopeDB, db4o, Shoal document store CouchDB, MongoDB, Jackrabbit, XML Databases, ThruDB, CloudKit, Perservere, Riak Basho, Scalaris wide columnar store BigTable, Cloudata, Hbase, Cassandra, Hypertable, KAI, Qbase, KDI

Who use NoSQL? Twitter Cassandra, HBase, Hadoop, Scribe, FlockDB, Redis Facebook Cassandra, HBase, Hadoop, Scribe, Hive Netflix Amazon SimpleDB, Cassandra Digg Cassandra SimpleGeo Cassandra StumbleUpon HBase, OpenTSDB Yahoo! Hadoop, HBase, PNUTS Rackspace Cassandra Gruter Hadoop, Cloudata, MongoDB, HBase, Hive, Flume

NoSQL 대표아키텍처 Bigtable How can we build a distributed db on top of Distributed File System? Shared Disk or Data http://labs.google.com/papers/bigtable.html 2006 Dynamo How can we build a distributed hash table appropriate for the data center? DHT (Distributed Hashing Table) http://portal.acm.org/citation.cfm?id=1294281 2006

Google Bigtable Google s Data Management System Google App Engine, Analytics, Docs, Earth, etc. A sparse, distributed, persistent multidimensional sorted map Indexed by row key, column key, timestamp LSM-Tree Log Structured Merge Tree In-Memory, On-Disk 병행사용 데이터는 Google File System 에저장 분산파일시스템의한계극복 Real time transaction, Batch processing 모두만족 MapReduce 플랫폼과쉽게연동 Bigtable clone project Cloudata Korea, Gruter, Hadoop 기반, http://www.cloudata.org HBase Apache, Hadoop 기반, http://hbase.apache.org Hypertable Zvents, C++, Hadoop, KFS

HBase Google BigTable 의기능및설계를기반한오픈소스 http://hbase.apache.org Apache License Powerset 소속개발자가처음개발시작 현재는 Cloudera, Facebook 등에서커밋 뛰어난확장성과안정적인 (?) 데이터저장 수백대규모확장가능 Automatic table split & re-assignment Data Storage 로 Hadoop 을사용 Cluster coordinator 로 ZooKeeper(zookeeper.apache.org) 사용 High write throughput, General read throughput 0.x ~ 수 ms write, 수 ms read 테이블관리 Create, drop, modify table schema 실시간데이터처리 Single row operation(no join, group by, order by) Multi row operation: scan 배치프로세싱지원 Input/OutputFormat, Bulking loading Failover 서버장애시수초 ~ 수분이내다른서버로재할당

HBase/Hadoop 기반소프트웨어스택 사용자애플리케이션 분산 / 병렬컴퓨팅플랫폼 (MapReduce) HMaster HBase ( 대용량분산데이터저장소 ) RegionServer #1 RegionServer #2 RegionServer #n 논리적 Table 물리적저장소 분산파일시스템 (Hadoop)

HBase System Components HMaster failover / event ZooKeeper ZooKeeper (Lock (Lock ZooKeeper Service) Service) (Lock Service) event Client HTable HBase Admin rpc failover / event rpc RegionServer #1 RegionServer #2 RegionServer #n DataNode #1 (HDFS) DataNode #2 (HDFS) DataNode #n (HDFS) Local disk (SATA) TaskTracker #1 (Map&Reduce) Local disk (SATA) TaskTracker #2 (Map&Reduce) Local disk (SATA) TaskTracker #n (Map&Reduce) : physical server : daemon process(hbase) : daemon process(other platform) : control : data

HBase Data Model 분산된서버 (RegionServer) 에배포 TableA Rowkey ColumnFamily#1 ColumnFamily#n Region-1 Region-2 row #1 row #k row #k+1 rk-1 Ckn ck2 ck1 - Sorted by rowkey - Sorted by column v1, t1 v2, t2 v3, t2 v4, t3 v5, t4 vn, tn Region-n row #m row #m+1 row #n Row#1 CF1 Col1-1 Col1-2 Col1-3 Row.Key CF2 Col2-1 Col2-2 Col2-K CFn ColN-1 ColN-2 ColN-M Column Column Key Value(t1) Value(t2) Col1-N Value(tn)

Data 분산및 Lookup Region 1 Table = n Region, 데이터분산단위 100 ~ 200MB/Region, 수천 Region/Server Lookup path ROOT Table: Meta 의위치저장 META Table: User Tablet 의위치저장 User Table: 데이터파일정보저장 Data File: rowkey 에대한인덱스저장 ZooKeeper Root Table M.T1.1000:M1 M.T1.2000:M2 Max:mn Meta Index 에대한 Index Meta Table m1 m2 mn T1.100:U1 T1.200:U2 T1.1000:UN T1.1100:U1 T1.1200:U2 T1.2000:UN xx xx n User Region 에대한 Index User defined Table U1 U2 10 20 100 110 120 200 Data file 의 block 에대한 Index(maxkey, file-offset) 64KB scan HFile(Physical file,sorted by rowkey, column-name)

HBase Index 구조 64KB 64KB 64KB 데이터 로우키 컬럼키 값 타임스탬프 rk1 ck1 value1 T1 rk1 ck2 value2 T2 rk2 ck1 value3 T1 rk3 ck1 value4 T1 rk3 ck2 value5 T1 rk3 ck3 value6 T1 rk4 ck1 value7 T2 인덱스 인덱스 오프셋 rk2.ck1 0 rk3.ck2 64 rk4.ck1 128

Column Oriented Row Oriented Column Oriented <...s....-..babokimbabok im@unitel.co.krs eoul...=... jindolkjindolk@n aver.compusan...... v......s...-..lee lee@gmail.comsuw on... babokim jindolk lee babokim@unitel.co.kr jindolk@naver.com lee@gmail.com seoul pusan suwon id 컬럼파일 mail 컬럼파일 address 컬럼파일 MySQL(ibdata1 파일 )

Data Operaiton put(key, value) CommitLog (HDFS) RegionServer Memory Table Minor Compaction get(key) Searcher 분리된 HFile#1 (HDFS) 분리된 HFile#2 (HDFS) Merged MapFile (HDFS) HFile#1 (HDFS) HFile#2 (HDFS) HFile #n (HDFS) Split Major Compaction LSM-Tree: Log Structured Merge Tree

HBase & MapReduce Hadoop MapReduce Platform TableA Region-1 Region-2 Region-3 Region-N TableInputFormat TaskTracker Map Map Task Task Map Task TaskTracker Map Map Task Task Map Task TaskTracker Map Map Task Task Map Task Partitioned by key TaskTracker Reduce Task TaskTracker Reduce Task TableOutputFormat TableB Region-1 Region-2 DBMS or HDFS META Table

Failover Master 장애 Data operation은정상처리 Table Schema Management, Region Split 기능만장애 Multi-Master로장애대처 RegionServer 장애 Master에의해 Region re-assign 수십초 ~ 수분이내복구 ZooKeeper 장애 3/5 개 node 로클러스터구성, 절대장애발생하지않음 Hadoop NameNode 장애 별도의이중화방안필요 Hadoop 전체장애 HBase 클러스터장애

Client API Native Java Client/API get(get get), put(put put), delete(delete delete) getscanner(scan scan) Non-Java Clients REST server Avro server Thrift server TableInputFormat/TableOutputFormat for MapReduce Hbase as MapReduce source and/or target Hbase Shell Jruby shell adding get, put, scan and admin calls

Client Code Configuration conf = new Configuration(); conf.set(hconstants.zookeeper_quorum, "local01"); conf.set("hbase.zookeeper.property.clientport", "2181"); HBaseAdmin admin = new HBaseAdmin(conf); HTableDescriptor desc = new HTableDescriptor(tableName); desc.addfamily(new HColumnDescriptor(cfName)); admin.createtable(desc); HTable table = new HTable(conf, tablename); Put put = new Put("rk1".getBytes()); put.add(cfname.getbytes(), age".getbytes(), 30".getBytes()); table.put(put); Get get = new Get( rk1".getbytes()); get.addfamily(cfname.getbytes()); Result result = table.get(get); for(keyvalue eachvalue: result.list()) { System.out.println(new String(eachValue.getValue())); }

Bigtable Usecase Google News Persionalization

HBase Usecase Facebook Social plugin Transactional 수집 실시간분석 process over 20 billion events per day (200,000 events per second) with a lag of less than 30 seconds. 실시간 Feedback 배치분석 Analytic

HBase Usecase Facebook Social plugin 실시간 Map/Reduce 개념 데이터수집기 (scribe) 데이터수집기 (scribe) 데이터수집기 (scribe) Write, sync Hadoop /category1/collect_1.dat /category1/collect_2.dat /category1/collect_3.dat ptail Driver Checkpoint Handler Aggregation Store Storage Thrift Server HBase Key1: value Key2: value Key3: value 클라이언트

Cloudata Usecase www.seenal.com 소셜네트워크모니터링및분석서비스 트위터, 블로그원본데이터저장및분석용으로활용 HTTP Application Analysis Storage WebServer WebServer (apache) WebServer (apache) (apache) Distributed Distributed Search Distributed Search Server Server (lucene, Search (lucene, thrift) Server (lucene, thrift) thrift) Distributed Indexer Analysis App. File Storage (HDFS) Cache API (memcached) API WebServer API WebServer WebServer (jetty) (jetty) ( jetty) AppServer AppServer AppServer (thrift) (thrift) (thrift) MapReduce LogCollector (flume, scribe) Crawler Data Storage (Cloudata)

결론 데이터저장을위한많은솔루션이존재 Oracle, MySQL 만있다는생각은버려야함 먼저시스템의데이터속성과요구사항을파악 (CAP, ACID/BASE) 한시스템에여러솔루션을적용 -> 한시스템에여러속성을가지고있는데이터존재 소규모 / 복잡한관계데이터 : RDBMS 대규모실시간처리데이터 : NoSQL 대규모저장용데이터 : Hadoop 등 빠른데이터조회 : 캐쉬적절한솔루션선택 반드시운영중발생할수있는이슈에대해검증후도입필요 대부분의 NoSQL 솔루션은베타상태 ( 섣부른선택은독이될수있음 ) 솔루션의프로그램코드수준으로검증필요 NoSQL 솔루션에대한안정성확보 솔루션자체의안정성은검증이필요하며현재의 DBMS 수준의안정성은지원하지않음 반드시안정적인데이터저장방안확보후적용필요 운영및개발경험을가진개발자확보어려움 요구사항에부합되는 NoSQL 선정필요처음부터중요시스템에적용하기보다는시범적용필요 선정된솔루션검증, 기술력내재화저장소의경우직접개발할필요도있음 많은인터넷업체에서개발 / 사용하고있는저장소를공개 NoSQL 의경우다양한오픈소스가발표되는원인이기도함

감사합니다.