Transcript HBASE
순제군용 5기 강순용 5기 박군제 Welcome to Apache HBase™ Index. I. BigData I. II. II. BigData NoSQL, Hadoop HBASE I. II. III. Introduce Implement Coprocessor III. Using HBASE UntoC@순제군용 Ⅰ. Big Data UntoC@순제군용 1. Big Data UntoC@순제군용 Big Data 디지털 환경에서 생성되는 규모가 방대, 생성 주기는 짧음 형태도 수치 데이터 외에도 문자, 영상을 포함하는 대규모 데이터 UntoC@순제군용 5 Big Data 인터넷 기업의 등장과 글로벌 디지털 데이터 규모 UntoC@순제군용 6 Big Data 구분 데이터 하드웨어 기존 빅데이터 환경 - 정형화된 수치자료 중심 - 고가의 저장장치 - 데이터베이스 - 비정형의 다양한 데이터 - 문자 데이터(SMS, 검색어) - 영상 데이터(CCTV, 동영상) - 위치 데이터 - 클라우드 컴퓨팅 등 장비 활용 가능 - 관계형 데이터베이스(RDBMS) - 통계패키지(SAS, SPSS) - machine learning, knowledge discovery 소프트웨어 - 데이터 마이닝(data mining) /분석 방법 - 오픈소스 형태의 무료 소프트웨어 - Hadoop, NoSQL - 오픈 소스 통계솔루션(R) - 텍스트 마이닝(text mining) - 온라인 버즈 분석(opinion mining) - 감성 분석(sentiment analysis) UntoC@순제군용 7 2. NoSQL, Hadoop UntoC@순제군용 RDBMS 정형화된 Table로 구성된 데이터 항목들의 집합체 사용자와 Relational Database를 연결시켜 주는 검색 언어를 SQL이라고 함 UntoC@순제군용 9 NoSQL Not Only SQL! 분산, 내고장성[fault tolerance] 구조 UntoC@순제군용 10 NoSQL 특징 관계형 데이터 모델이 아닌 키-값, 문서형, 컬럼형 데이터는 분산된 노드에 파티션 복제되어 저장 정합성보다는 단절내성 UntoC@순제군용 11 Hadoop • 대용량 데이터 처리 분석을 위한 대규모 분산 컴퓨팅 지원 프레임 워크 • HDFS를 통해 분산저장 MapReduce를 통해 분산처리 • Hadoop은 여러개의 컴퓨터를 하나 인 것 처럼 묶어는 기술로 저장공간, 계산력 늘림 UntoC@순제군용 12 Hadoop UntoC@순제 하드웨어 군용 오동작 스트리밍 접근 큰 자료 집합 / 간단한 결합 모델 호환성 MapReduce • 데이터 처리를 위한 프로그래밍 모델 • MapReduce = Map + Reduce – Map 함수에서 Data 처리 – Reduce 함수에서 원하는 결과 값을 계산 UntoC@순제군용 14 MapReduce • 키-값 모델 • 데이터를 나누고, 합치는 작업을 대행 • 병렬 처리 중에서 간단한 구조를 지향 UntoC@순제군용 15 The Hadoop Ecosystem UntoC@순제군용 16 Ⅱ. HBase UntoC@순제군용 1. Introduce HBASE UntoC@순제군용 HBase란? 2006년 차드 월터스와 짐 캘러만에 의해 시작되어 현재는 Apache 프로젝트로 개발이 진행되고 있는 Open source Software UntoC@순제군용 19 Introduce 구글 Bigtable을 모델로 하여 초기 모델 개발 - 2007년 Hadoop의 서브 프로젝트로 편입 - 2008년 구글의 BigTable에 기반한 UntoC@순제군용 20 Introduce 용량이 큰 데이터에 대해서 온라인으로 처리한다. – 랜덤하게 엑세스하는 것과 업데이트가 즉각적이다. – 각각의 프로세스들은 개인의 레코드들을 비동기적으로 업 데이트할 수 있다. UntoC@순제군용 21 Introduce SQL DB가 아님 RDBMS 대체가 아님 UntoC@순제군용 22 Introduce 기존 RDBMS 단일 노드의 크기로 정리 그에 따른 부가물이 발생 : 파티션, 복잡한 대체물, 비싼 비용 등 RDBMS에 무리를 가지고 옴 : 비정규화, DB레벨의 조인이 없는 것 등 반면에 Hbase는 확장 가능한 데이터 저장소 HBase? 축소된 RDBMS! UntoC@순제군용 23 HBase vs. RDBMS HBase RDBMS 컬럼 기반 로우 기반 동적스키마 고정스키마 MapReduce Join Join 초당 수십만건 R/W 초당 수천건 R/W 최대 PB급 저장 용량 최대 TB급 저장 용량 UntoC@순제군용 24 Introduce Hadoop 분산파일시스템(HDFS) 상의 데이터 위에서 동작! UntoC@순제군용 25 주요 용어 Table - Row들의 집합 - Schema 정의서 Column Family 만 정의 Row Key - 임의의 Byte열로 사전순으로 내림차순 정렬 - 빈 Byte문자열은 테이블의 시작과 끝을 의미 Column Family - Column들의 그룹으로 모든 컬럼패밀리의 Member는 같은 접두사를 사용 Cell - Row key & Column & Version이 명시된 Tuple - 값은 임의의 Byte열 UntoC@순제군용 26 Data Model Table : Rows X Columns X Timestamp Rows 유동적인 Byte 배열(URL) 비교기(Byte-Order)로 정렬 Columns Column-families에 그룹정리됨 첫번째 패밀리 그룹핑 후 세부 정의가 됨 Webpage : one Webpage : two … Cell 세부 정의 – 유동적인 Byte Columnfamily Timestamp와 같은 데이터.(유동적인 Byte 배열) Region(파티션)에 의해 테이블이 나뉘어지며, Region은 시작행, 끝행에서 정의한다. 클러스터처럼 ‘구분’할 수 있는 요소로 작용한다. UntoC@순제군용 27 Strength 데이터 일관성 보장 효율적인 데이터 압축 이전 버전의 데이터 값 관리 가능 한 행에 대한 Atomic 처리 가능 Web Console을 통해 모니터링 가능 UntoC@순제군용 28 Weakness 1 . 다른 NoSQL 데이터베이스 비해 이해 어려움 - 다수의 프로그램으로 이루어져 있기 때문 - 효율적인 관리 위해서는 HDFS, Zookeeper 등 뿐만 아니라 다른 시스템에 대해 알아야 함 - 생소한 컬럼형 구조를 사용하고 있어서 조기 진입 벽이 높음 UntoC@순제군용 29 Weakness 2. 특정 범위의 Key값에 저장 요청이 집중 되는 경우에 문제 발생 - HDFS를 파일시스템으로 사용하기 때문 - HDFS의 파일정보를 관리하는 Namenode에서 문제 발생 or Namenode에서 구동되어 있는 서버가 다운 될 경우, Hbase에도 문제 발생. 3. 아직까진 안정적이지 않은 버전-불안정 - 신규버전이 나올때까지 많은 변경사항이 생길 수 있음 UntoC@순제군용 30 2. Implementation HBASE UntoC@순제군용 Implementation 마스터, 하나 혹은 그 이상의 파티션 서버 그리고 클라이언트 마스터 : 파티션서버에 테이블 파티션들을 인증시킴 파티션서버 : 0~N개의 파티션정보를 가짐 UntoC@순제군용 32 Implementation • 각각의 파티션(Region)은 저장하면서 정보를 정립함 – 데이터 모델의 Column-family는 데이터의 저장시 구현됨 Wow Brave Data – 저장 메모리캐시는 파티션적인 쓰기방식을 택함 (파티션이 꽉 차면 Flush!) – Flush후 storefile을 추가한다 – Store마다 N개 이상의 파일이 만들어지면, 압축해놓는다. UntoC@순제군용 33 Implementation Traffic 흐름도 ④ Client ① 마스터, 자료 좀 …굽신굽신 Master Cashing Client ③ 엉엉ㅜ 실패라니!!! 실패할 경우(split/crash error) 마스터에게 알려 빨리 해결하도록 구축 ② Region Hosting row 알았옹. 잠시만 창고에서 가져올게. - 마스터가 파티션에 접근 후, 클라이언트에 자료 반환 클라이언트가 다시 접근했을 때, 빨리 연결해주기 위한 것!! UntoC@순제군용 34 Implementation HBase의 쓰기 연산 UntoC@순제군용 35 Implementation HBase 의 간단한 연산 UntoC@순제군용 36 3. Coprocessor HBASE UntoC@순제군용 Coprocessor • 보조 처리기 • Coprocessor는 서버에서 실행되는 Code • Observer와 Endpoint 두 종류 존재 UntoC@순제군용 38 Coprocessor UntoC@순제군용 39 Observer • RDB의 Trigger 와 비슷함 • 다른 점은 Trigger는 Select에는 적용 불가, Observer는 Scan 에도 적용 가능 • HBase의 Coprocessor는 Trigger 보다 활용도가 훨씬 큼 UntoC@순제군용 40 Observer RegionObServer WALObserver MasterObServer UntoC@순제군용 41 Endpoint • RDB의 Stored procedure 와 같음 • Coprocessor는 MapReduce 처럼, 작업을 전 체 Cluster에 분산해서 처리하는 것이 큰 장점 • 동적으로 Load할 수 있으므로 HBase 를 중지 하지 않고도 추가 가능 • Stored procedure 처럼 호출해서 사용 UntoC@순제군용 42 Coprocessor • Where? – 각 Region Server에서 직접 처리 – 각 Region Server에 jar 파일 형태로 컴파일하여 제공 되어야 됨. – Region Server에 coprocessor Loading on/off 하게 제공 됨. UntoC@순제군용 43 Coprocessor priority • 우선순위를 지정 가능, 반드시 대문자로 씀 • SYSTEM : 우선순위 가능 높음 • USER : 일반적으로 적용 • 동일 우선순위에서는 load 된 순서대로 처리 UntoC@순제군용 44 Coprocessor state 우선순위를 지정할 수 있다. UNINSTALLED 환경을 갖지 않았고, 초기화되지 않은 상태 INSTALLED 설치 완료 STARTING start() method 가 실행되기 직전 상태 ACTIVE start() 된 상태 STOPPING stop() method가 실행되기 직전 상태 STOPPED stop() 후 상태 UntoC@순제군용 45 Coprocessor Loading • Loading from configuration(hbase-site.xml) UntoC@순제군용 46 Coprocessor Loading • sequence diagram UntoC@순제군용 47 Ⅲ. Using HBase UntoC@순제군용 Using HBase 대량 데이터를 다루면서 데이 터 일관성이 요구되는 서비스 데이터 일관성 및 트랜잭션 필요한 서비스 쓰기보다는 읽기 요청 Hadoop을 사용하여 대량 데 이터를 분석하는 서비스 UntoC@순제군용 49 HBase 적용사례 WorldLingo UntoC@순제군용 50 HBase 이용 예 1. 대형 SNS서비스의 주 스토리지 2. 다수의 저가 서버 분산하여 사용하는 관계형 DB UntoC@순제군용 51 Thank you for your attention! Q&A UntoC@순제군용