표제지
목차
약어표 9
논문요약 10
제1장 서론 11
제2장 이론적 배경 13
2-1. Web Crawling 13
2-2. Kafka 14
2-3. Elastic Stack 16
2-3-1. Elasticsearch 16
2-3-2. Logstash 19
2-3-3. Kibana 20
2-3-4. Filebeat 20
2-4. Spark 21
2-5. Machine Learning 알고리즘 22
2-5-1. 의사 결정 트리(Decision Tree) 23
2-5-2. Random Forest 25
2-6. 선행연구 26
2-6-1. 가격 결정 26
2-6-2. 플랫폼 연구 27
제3장 플랫폼 구성 및 분석 방안 28
3-1. 기존 Kafka 구성 방법 28
3-2. 제안하는 Kafka 구성 방법 29
3-3. Topic 이중 구현 31
3-3-1. Single Cluster 구성 31
3-3-2. Multi Cluster 구성 34
3-3-3. Producer, Consumer 구성 35
3-4. Log를 통한 실시간 모니터링 37
3-5. Spark를 이용한 분석 40
3-5-1. Data load 40
3-5-2. Data Transform 42
3-5-3. Data Analysis 43
제4장 실험 및 비교분석 44
4-1. 제안한 Kafka 이중 구조에 의한 실험 44
4-2. Spark ML 성능 평가 비교 46
제5장 결론 및 활용 방안 49
참고문헌 51
ABSTRACT 53
[표 2-1] Elasticsearch Vs Relational DB 용어 비교 17
[표 2-2] CAP 기준으로 RDBMS와 NoSQL 비교 17
[표 2-3] RDMBS와 NoSQL 장·단점 및 특성 비교 18
[표 3-1] Partition과 Consumer Group 관계 32
[표 3-2] Log4j Level 38
[그림 2-1] Data ETL 과정 13
[그림 2-2] Kafka 핵심 API 15
[그림 2-3] Topic과 Partition 관계 15
[그림 2-4] Partition과 Consumer 대응 16
[그림 2-5] Logstash 기본 구조 19
[그림 2-6] Apache Spark Executor Components 22
[그림 2-7] Decision Tree Diagram 24
[그림 2-8] Decision Tree 공식 24
[그림 2-9] Random Forest Diagram 26
[그림 3-1] 기존 Producer / Broker / Consumer 구성 28
[그림 3-2] 이중 구조의 Producer / Broker / Consumer 구성 30
[그림 3-3] Topic과 Partition 구성(Single Cluster) 32
[그림 3-4] Consumer Daemon List 33
[그림 3-5] Topic과 Partition 구성(Multi Cluster) 34
[그림 3-6] 새 Leader 선출 35
[그림 3-7] Group A에 대한 Consumer 소스 36
[그림 3-8] Producer Topic 분배 소스 37
[그림 3-9] Grok Pattern Matching 38
[그림 3-10] Logstash MySQL 연결 39
[그림 3-11] Kibana Logtrail을 이용한 모니터링 40
[그림 3-12] Spark에서 Elasticsearch 조회 41
[그림 3-13] Data Schema 42
[그림 3-14] One-Hot 인코딩 데이터 변환 43
[그림 3-15] Feature, Label 변환 43
[그림 4-1] CrawlerConsumer1 log 44
[그림 4-2] CrawlerConsumer2 log 45
[그림 4-3] CrawlerConsumer8 log 45
[그림 4-4] CrawlerConsumer21 log 45
[그림 4-5] Log 최신 날짜순으로 정렬 46
[그림 4-6] Decision Tree 성능 평가 47
[그림 4-7] Random Forest 성능 평가 47
[그림 4-8] Decision Tree, Random Forest 성능 비교 47