SlideShare a Scribd company logo
1 of 23
적용 및 활용
로엔엔터테인먼트
플랫폼개발팀
2015.10.22
송준이(socurites@gmail.com)
목차
• 들어가기 전에
– 검색이란
• 시연
– Developer Guide
• 설치하기
– 검색엔진이란?
• 색인과 검색
• 검색하기
– 형태소 분석이란?
• 한글 형태소 분석
• 동의어 처리
– 응용하기
• 파워 네트워크
목차
• 추가 설명 자료
– about elasticsearch
– inside a cluster
– inside a shard
들어가기 전에…
• 가사에 “사랑”을 포함하는 곡을 찾는다면
검색이란
title: 1
lyrics: …..
…………….
……..
문서
title lyrics
1 ……………………………
2 ……………………………
… ……………………………
table in RDBMS
색인
검색
• “사랑”을 포함하는 row full scan
=> 1M
term docs
사랑 1, 7, 3, …
행복 23, 54, …
… ……………………………
inverted index in search engine
색인
• “사랑”을 포함하는 row full scan
=> 1
검색
시연
melon-helloEs
http://socurites.com:8088/melon-helloes-0.0.1-SNAPSHOT/overview/intro
elasticsearch-head
http://socurites.com:9200/_plugin/head/
Marvel Sense
http://socurites.com:9200/_plugin/marvel/sense/index.html
about elasticsearch
개요
• 분산 환경의 문서 지향(distributed document-oriented)
– 데이터 저장소(data store)
• 수백 대의 서버로 scale out
• PB 급의 데이터 저장
• document(serialized JSON object) 기반 data structure
• partial document update 지원
– document는 근본적으로 수정이 불가능(immutable)
– update = replacement(internally)
– 검색 엔진(search engine)
• 루씬(lucene)을 내부 엔진으로 사용
• 모든 필드를 indexing하여 검색 가능
– 실시간 분석 플랫폼(real-time analytic platform)
• aggregation 지원
• approximate aggregation = (big data + real-time analysis) – precision
– 빅 데이터를 정확도를 낮춰서 실시간으로 분석
storing indexing
searching
analyzing
filtering ordering
aggregation
저장
검색
분석
life inside a cluster
node & cluster
• 0개의 index를 가진 > 1개의 node로 구성된 > 1개의 cluster
– node: 실행중인 elasticsearch instance
• master node
– 클러스터를 관리
» index 추가 / 삭제
» node 추가 / 삭제
– 투표를 통해 master node 선출
– document 단위의 변경 또는 search는 모두 데이터 노드에서 이루어지므로
master node는 bottleneck이 되지는 않음
– cluster: 동일한 cluster.name을 가지는 node들의 집합
참고) cluster / node / index
https://github.com/socurites/elasticsearch-foot
index & shard
• 3개의 primary shard로 구성된 > 1개의 index를 가진 > 1개의 node로 구성된
1개의 cluster
– index: 관련성이 있는 데이터의 저장 단위
• 물리적인 shard에 대한 논리적인 이름 공간
– shard: index의 데이터 일부를 저장하여 전체 index를 구성
• indexing된 document가 실제 저장되는 곳
• document들은 여러 shard에 분산되어 저장되므로 scale out을 지원
• primary shard
– 모든 document 단 하나의 primary shard에 위치
– primary shard의 개수는 index를 생성할 때 결정되며 바꿀 수 없음 (default: 5)
• replica shard
– primary shrad의 복사본
– 장애 발생시 recovery / searching에 대한 concurrent read 보장
1 replica
• 3개의 primary shard와 1개의 replica로 구성된 > 1개의 index를 가진 >
2개의 node로 구성된 1개의 cluster
scale out – shard reallocation
• 3개의 primary shard와 1개의 replica로 구성된 > 1개의 index를 가진 >
3개의 node로 구성된 1개의 cluster
– shard는 새로운 노드로 재할당되어, 새로 추가된 computing power를 완전히 활용할
수 있음
2 replica
• 3개의 primary shard와 2개의 replica로 구성된 > 1개의 index를 가진 >
3개의 node로 구성된 1개의 cluster
recovery on failure
• 3개의 primary shard와 2개의 replica로 구성된 > 1개의 index를 가진 >
2개의 node로 구성된 1개의 cluster
– master node 1이 shutdown된 경우,
• primary node selection
– node 2가 새로운 primary node가 선출된다
• recovering primary shard
– node 1에 위치한 primary shard 1, 2가 사라짐
– replica node를 새로운 primary shard로 지정
inside a shard
flush, refresh, optimize
• elasticsearch에서
– search는 near real-time: indexing한 document를 기본적으로 1s 이후 search 가능
– CRUD는 real-time
– data persistence를 보장
– delete operation을 하더라도 disk가 바로 해제되지 않음
• Why?
– refresh
– flush
– optimize
dynamically updatable indices
• index의 immutable한 장점은 그대로 유지한 채, index를 수정 가능하게 하기
– “여러 개의 index를 사용하자”
• 기존의 커다란 inverted index는 그대로 유지
• 새로운 document는 주기적으로 새로운 index로 생성
• search 요청 발생시, 여러 개의 index를 차례대로 검색한 후 결과를 병합하여 리턴
– segment: 이러한 여러 개의 index들 중 하나
• 용어 정리
– index = segements + commit point
– commit point
= 현재 segment 목록
index
shard
segment
http://socurites.com/big-data/elasticsearch/elasticsearchs-index-structrue-
segment-merging

More Related Content

What's hot

Meteor Elasticsearch 연동 Trial
Meteor Elasticsearch 연동 TrialMeteor Elasticsearch 연동 Trial
Meteor Elasticsearch 연동 TrialSangwon Lee
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문SeungHyun Eom
 
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & RankingIan Choi
 
엘라스틱 서치 세미나
엘라스틱 서치 세미나엘라스틱 서치 세미나
엘라스틱 서치 세미나종현 김
 
검색 서비스 간략 교육
검색 서비스 간략 교육 검색 서비스 간략 교육
검색 서비스 간략 교육 Rjs Ryu
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민종민 김
 
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.jsHeeJung Hwang
 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaHyeonSeok Choi
 
엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나종민 김
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Gruter
 
Apache solr소개 20120629
Apache solr소개 20120629Apache solr소개 20120629
Apache solr소개 20120629Dosang Yoon
 
Elasticsearch development case
Elasticsearch development caseElasticsearch development case
Elasticsearch development case일규 최
 
Solr development case
Solr development caseSolr development case
Solr development case일규 최
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8HyeonSeok Choi
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWSGruter
 
Data analysis with Tajo
Data analysis with TajoData analysis with Tajo
Data analysis with TajoGruter
 

What's hot (20)

Meteor Elasticsearch 연동 Trial
Meteor Elasticsearch 연동 TrialMeteor Elasticsearch 연동 Trial
Meteor Elasticsearch 연동 Trial
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
 
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
 
엘라스틱 서치 세미나
엘라스틱 서치 세미나엘라스틱 서치 세미나
엘라스틱 서치 세미나
 
검색 서비스 간략 교육
검색 서비스 간략 교육 검색 서비스 간략 교육
검색 서비스 간략 교육
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, Kibana
 
엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나
 
Elastic stack
Elastic stackElastic stack
Elastic stack
 
Feature perf comp_v1
Feature perf comp_v1Feature perf comp_v1
Feature perf comp_v1
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014
 
Apache solr소개 20120629
Apache solr소개 20120629Apache solr소개 20120629
Apache solr소개 20120629
 
Elasticsearch development case
Elasticsearch development caseElasticsearch development case
Elasticsearch development case
 
Learning spark ch1-2
Learning spark ch1-2Learning spark ch1-2
Learning spark ch1-2
 
Solr development case
Solr development caseSolr development case
Solr development case
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
 
Data analysis with Tajo
Data analysis with TajoData analysis with Tajo
Data analysis with Tajo
 

Viewers also liked

[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화NAVER D2
 
Elastic{ON} 2016 Review - 김종민 님
Elastic{ON} 2016 Review - 김종민 님Elastic{ON} 2016 Review - 김종민 님
Elastic{ON} 2016 Review - 김종민 님NAVER D2
 
딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetectJunyi Song
 
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님NAVER D2
 
20140512 node.js를 활용한 실시간 웹채팅
20140512 node.js를 활용한 실시간 웹채팅20140512 node.js를 활용한 실시간 웹채팅
20140512 node.js를 활용한 실시간 웹채팅Junyi Song
 
Elasticsearch 설치 및 기본 활용
Elasticsearch 설치 및 기본 활용Elasticsearch 설치 및 기본 활용
Elasticsearch 설치 및 기본 활용종민 김
 
형태소 분석기를 적용한 elasticsearch 운영
형태소 분석기를 적용한 elasticsearch 운영형태소 분석기를 적용한 elasticsearch 운영
형태소 분석기를 적용한 elasticsearch 운영창훈 정
 
사용자 스토리 기반의 스크럼
사용자 스토리 기반의 스크럼사용자 스토리 기반의 스크럼
사용자 스토리 기반의 스크럼Junyi Song
 
딥러닝을 이용한 얼굴인식 (Face Recogniton with Deep Learning)
딥러닝을 이용한 얼굴인식 (Face Recogniton with Deep Learning)딥러닝을 이용한 얼굴인식 (Face Recogniton with Deep Learning)
딥러닝을 이용한 얼굴인식 (Face Recogniton with Deep Learning)Daehee Han
 
아디다스 마케팅
아디다스 마케팅아디다스 마케팅
아디다스 마케팅guestea731b6
 
소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategy소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategyKenu, GwangNam Heo
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN StackValeri Karpov
 
[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화Henry Jeong
 
[비즈스프링] 웹로그분석 서비스 LOGGER(로거) 소개서 / 국내환경에 최적화된 분석툴
[비즈스프링] 웹로그분석 서비스 LOGGER(로거) 소개서 / 국내환경에 최적화된 분석툴[비즈스프링] 웹로그분석 서비스 LOGGER(로거) 소개서 / 국내환경에 최적화된 분석툴
[비즈스프링] 웹로그분석 서비스 LOGGER(로거) 소개서 / 국내환경에 최적화된 분석툴BizSpring Inc.
 
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016Amazon Web Services Korea
 
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Web Services Korea
 

Viewers also liked (20)

[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화
 
Elastic{ON} 2016 Review - 김종민 님
Elastic{ON} 2016 Review - 김종민 님Elastic{ON} 2016 Review - 김종민 님
Elastic{ON} 2016 Review - 김종민 님
 
딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect
 
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님
 
20140512 node.js를 활용한 실시간 웹채팅
20140512 node.js를 활용한 실시간 웹채팅20140512 node.js를 활용한 실시간 웹채팅
20140512 node.js를 활용한 실시간 웹채팅
 
Elasticsearch 설치 및 기본 활용
Elasticsearch 설치 및 기본 활용Elasticsearch 설치 및 기본 활용
Elasticsearch 설치 및 기본 활용
 
형태소 분석기를 적용한 elasticsearch 운영
형태소 분석기를 적용한 elasticsearch 운영형태소 분석기를 적용한 elasticsearch 운영
형태소 분석기를 적용한 elasticsearch 운영
 
사용자 스토리 기반의 스크럼
사용자 스토리 기반의 스크럼사용자 스토리 기반의 스크럼
사용자 스토리 기반의 스크럼
 
딥러닝을 이용한 얼굴인식 (Face Recogniton with Deep Learning)
딥러닝을 이용한 얼굴인식 (Face Recogniton with Deep Learning)딥러닝을 이용한 얼굴인식 (Face Recogniton with Deep Learning)
딥러닝을 이용한 얼굴인식 (Face Recogniton with Deep Learning)
 
Openface
OpenfaceOpenface
Openface
 
아디다스 마케팅
아디다스 마케팅아디다스 마케팅
아디다스 마케팅
 
소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategy소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategy
 
Mean stack Start
Mean stack StartMean stack Start
Mean stack Start
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN Stack
 
[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화
 
Cache governance
Cache governanceCache governance
Cache governance
 
Social Dev Trend
Social Dev TrendSocial Dev Trend
Social Dev Trend
 
[비즈스프링] 웹로그분석 서비스 LOGGER(로거) 소개서 / 국내환경에 최적화된 분석툴
[비즈스프링] 웹로그분석 서비스 LOGGER(로거) 소개서 / 국내환경에 최적화된 분석툴[비즈스프링] 웹로그분석 서비스 LOGGER(로거) 소개서 / 국내환경에 최적화된 분석툴
[비즈스프링] 웹로그분석 서비스 LOGGER(로거) 소개서 / 국내환경에 최적화된 분석툴
 
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
 

Similar to 20151022 elasticsearch 적용및활용_송준이_sds발표용

Real-time full-text search with Luwak and Samza
Real-time full-text search with Luwak and SamzaReal-time full-text search with Luwak and Samza
Real-time full-text search with Luwak and Samza명현 이
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106SangHoon Lee
 
정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)크몽
 
cassandra overview & spark to cassandra
cassandra overview & spark to cassandra cassandra overview & spark to cassandra
cassandra overview & spark to cassandra SuseongPark
 
SQL Server Access Patterns
SQL Server Access PatternsSQL Server Access Patterns
SQL Server Access PatternsSung wook Kang
 
5일차.map reduce 활용
5일차.map reduce 활용5일차.map reduce 활용
5일차.map reduce 활용주영 송
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Gruter
 
Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-uploadDong-Hwa jung
 
1 mysql아키텍쳐 v1
1 mysql아키텍쳐 v11 mysql아키텍쳐 v1
1 mysql아키텍쳐 v1resoliwan
 
뇌자T etc.windows multi threading programming
뇌자T   etc.windows multi threading programming뇌자T   etc.windows multi threading programming
뇌자T etc.windows multi threading programmingcancan21st
 
전문 검색 기술
전문 검색 기술전문 검색 기술
전문 검색 기술kidoki
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorialMinho Kim
 
DeepWalk: Online Learning of Social Representations
DeepWalk: Online Learning of Social RepresentationsDeepWalk: Online Learning of Social Representations
DeepWalk: Online Learning of Social RepresentationsSOYEON KIM
 

Similar to 20151022 elasticsearch 적용및활용_송준이_sds발표용 (14)

Real-time full-text search with Luwak and Samza
Real-time full-text search with Luwak and SamzaReal-time full-text search with Luwak and Samza
Real-time full-text search with Luwak and Samza
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
 
정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)
 
cassandra overview & spark to cassandra
cassandra overview & spark to cassandra cassandra overview & spark to cassandra
cassandra overview & spark to cassandra
 
SQL Server Access Patterns
SQL Server Access PatternsSQL Server Access Patterns
SQL Server Access Patterns
 
5일차.map reduce 활용
5일차.map reduce 활용5일차.map reduce 활용
5일차.map reduce 활용
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
 
Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-upload
 
1 mysql아키텍쳐 v1
1 mysql아키텍쳐 v11 mysql아키텍쳐 v1
1 mysql아키텍쳐 v1
 
뇌자T etc.windows multi threading programming
뇌자T   etc.windows multi threading programming뇌자T   etc.windows multi threading programming
뇌자T etc.windows multi threading programming
 
전문 검색 기술
전문 검색 기술전문 검색 기술
전문 검색 기술
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorial
 
DeepWalk: Online Learning of Social Representations
DeepWalk: Online Learning of Social RepresentationsDeepWalk: Online Learning of Social Representations
DeepWalk: Online Learning of Social Representations
 

20151022 elasticsearch 적용및활용_송준이_sds발표용

  • 2. 목차 • 들어가기 전에 – 검색이란 • 시연 – Developer Guide • 설치하기 – 검색엔진이란? • 색인과 검색 • 검색하기 – 형태소 분석이란? • 한글 형태소 분석 • 동의어 처리 – 응용하기 • 파워 네트워크
  • 3. 목차 • 추가 설명 자료 – about elasticsearch – inside a cluster – inside a shard
  • 5. • 가사에 “사랑”을 포함하는 곡을 찾는다면 검색이란 title: 1 lyrics: ….. ……………. …….. 문서 title lyrics 1 …………………………… 2 …………………………… … …………………………… table in RDBMS 색인 검색 • “사랑”을 포함하는 row full scan => 1M term docs 사랑 1, 7, 3, … 행복 23, 54, … … …………………………… inverted index in search engine 색인 • “사랑”을 포함하는 row full scan => 1 검색
  • 11. 개요 • 분산 환경의 문서 지향(distributed document-oriented) – 데이터 저장소(data store) • 수백 대의 서버로 scale out • PB 급의 데이터 저장 • document(serialized JSON object) 기반 data structure • partial document update 지원 – document는 근본적으로 수정이 불가능(immutable) – update = replacement(internally) – 검색 엔진(search engine) • 루씬(lucene)을 내부 엔진으로 사용 • 모든 필드를 indexing하여 검색 가능 – 실시간 분석 플랫폼(real-time analytic platform) • aggregation 지원 • approximate aggregation = (big data + real-time analysis) – precision – 빅 데이터를 정확도를 낮춰서 실시간으로 분석 storing indexing searching analyzing filtering ordering aggregation 저장 검색 분석
  • 12. life inside a cluster
  • 13. node & cluster • 0개의 index를 가진 > 1개의 node로 구성된 > 1개의 cluster – node: 실행중인 elasticsearch instance • master node – 클러스터를 관리 » index 추가 / 삭제 » node 추가 / 삭제 – 투표를 통해 master node 선출 – document 단위의 변경 또는 search는 모두 데이터 노드에서 이루어지므로 master node는 bottleneck이 되지는 않음 – cluster: 동일한 cluster.name을 가지는 node들의 집합
  • 14. 참고) cluster / node / index https://github.com/socurites/elasticsearch-foot
  • 15. index & shard • 3개의 primary shard로 구성된 > 1개의 index를 가진 > 1개의 node로 구성된 1개의 cluster – index: 관련성이 있는 데이터의 저장 단위 • 물리적인 shard에 대한 논리적인 이름 공간 – shard: index의 데이터 일부를 저장하여 전체 index를 구성 • indexing된 document가 실제 저장되는 곳 • document들은 여러 shard에 분산되어 저장되므로 scale out을 지원 • primary shard – 모든 document 단 하나의 primary shard에 위치 – primary shard의 개수는 index를 생성할 때 결정되며 바꿀 수 없음 (default: 5) • replica shard – primary shrad의 복사본 – 장애 발생시 recovery / searching에 대한 concurrent read 보장
  • 16. 1 replica • 3개의 primary shard와 1개의 replica로 구성된 > 1개의 index를 가진 > 2개의 node로 구성된 1개의 cluster
  • 17. scale out – shard reallocation • 3개의 primary shard와 1개의 replica로 구성된 > 1개의 index를 가진 > 3개의 node로 구성된 1개의 cluster – shard는 새로운 노드로 재할당되어, 새로 추가된 computing power를 완전히 활용할 수 있음
  • 18. 2 replica • 3개의 primary shard와 2개의 replica로 구성된 > 1개의 index를 가진 > 3개의 node로 구성된 1개의 cluster
  • 19. recovery on failure • 3개의 primary shard와 2개의 replica로 구성된 > 1개의 index를 가진 > 2개의 node로 구성된 1개의 cluster – master node 1이 shutdown된 경우, • primary node selection – node 2가 새로운 primary node가 선출된다 • recovering primary shard – node 1에 위치한 primary shard 1, 2가 사라짐 – replica node를 새로운 primary shard로 지정
  • 21. flush, refresh, optimize • elasticsearch에서 – search는 near real-time: indexing한 document를 기본적으로 1s 이후 search 가능 – CRUD는 real-time – data persistence를 보장 – delete operation을 하더라도 disk가 바로 해제되지 않음 • Why? – refresh – flush – optimize
  • 22. dynamically updatable indices • index의 immutable한 장점은 그대로 유지한 채, index를 수정 가능하게 하기 – “여러 개의 index를 사용하자” • 기존의 커다란 inverted index는 그대로 유지 • 새로운 document는 주기적으로 새로운 index로 생성 • search 요청 발생시, 여러 개의 index를 차례대로 검색한 후 결과를 병합하여 리턴 – segment: 이러한 여러 개의 index들 중 하나 • 용어 정리 – index = segements + commit point – commit point = 현재 segment 목록 index shard segment