반응형 🌿 Data Engineering/Study16 [Elasticsearch] 동작원리, shard와 replica를 몇개로 설정해야하는가? 이전에 이해한 개념을 바탕으로 이젠 원래 주 목적이였던 성능튜닝에 대해서 정리해보려고한다. 그 전에 es검색원리를 이해해야했다.(쉽지않다..) 검색하는데 어떤 영향이 있는지 알아아야 몇개로 설정할지 감이 잡힐테니까! 검색하는데 shard와 replicar가 어떤 영향을 미치길래 성능튜닝을 하는거지? 그래서 결국 primary shard와 replica를 몇개로 설정해야하는가? 참고로, Replica는 나중에 변경 가능하지만, primary shard는 인덱스를 처음 생성할때만 설정할 수 있다. (변경하려면 reindex해야함) https://localhost:9200/index명/_setting API를 통해서 primary shard와 replica 개수를 확인할 수 있다. 검색원리 일단 기본적인 원리.. 2021. 12. 23. [Elasticsearch] 내부구조, cluster/index/replica/shard 개념정리 최근에 회사에서 elasticsearch를 써먹어보면서 성능튜닝을 몇가지 진행했다. 파라미터들을 조절하면서 결론적으로 뭐 이렇다는걸 대략적으로 보긴했지만 이런 의문이 들었다. es 성능은 shard개수보다 replica개수에 영향을 준다 왜? why? 특히 es 성능은 shard개수보다 replica개수에 영향을 준다 라는 이야기를 들었는데, 사실 나는 아직 shard랑 replica개념도 안잡혀 있어서 그런데 왜 그런지, 도대체 내부에선 어떻게 동작하길래 그런 결론이 나왔는지 궁금증이 생겨서 조금더 깊게 알아보기로 했다! 내부구조 먼저 전체적인 es의 내부구조를 살펴보면 이렇다. es가 '클러스터'를 구성한다고 하면 여러개의 '노드'들이 묶여서 있는 모습을 볼 수 있다. 그리고 각 노드에 데이터를 저장.. 2021. 12. 23. [Kafka] Docker로 Kafka구축하기 | 트위터API사용해서 실시간데이터 전송하기 이번엔 실제 트위터 실시간 데이터를 kafka로 보내려고 한다!! 두둥! 기대된다. 이걸 하기 위해선 트위터 key가 필요하다 (무려4개나..) 그래서 트위터api 사용 신청을 사전에 해야한다! 나는 이미 빅데이터를 지탱하는 기술 책의 실습을 진행하기 위해서 신청받았었다! (엄청오래걸리고 승인이 까다롭다ㅠ) Producer 구현 나는 트위터의 실시간데이터 중에서 '김연경'키워드를 가지고 필터링을 할 예정이다. 이걸 실행하면 필터링한 데이터를 producer가 가져와서 consumer에서 보이겟지!? from tweepy.streaming import StreamListener from tweepy import OAuthHandler from tweepy import Stream from kafka imp.. 2021. 8. 11. [Kafka] Docker로 Kafka 구축하기 | Python으로 Producer,Consumer 구현 Kafka 테스트해보기2-Python으로 메세지 생성 이번엔 이렇게 python으로 Producer와 Comsumer를 구현해 볼 것이다. 그래서 연속적으로 데이터를 보내는걸 테스트해보려고 한다. Producer 구현 from kafka import KafkaProducer from json import dumps import time topic_name = "topic_test" producer = KafkaProducer( acks=0, compression_type='gzip', bootstrap_servers=['localhost:9092'], value_serializer=lambda x: dumps(x).encode('utf-8') ) start = time.time() print("[begi.. 2021. 8. 11. [Kafka] Docker로 Kafka 구축하기 | Producer에서 Consumer로 메세지 전송 목표 카프카를 이전에 간단한 이론정도로 학습해봤지만, 뭔가 제대로 와닿은 느낌이 없었다. 그냥 대략적으로 훑어본 수준이고, 프로젝트를 하긴 했지만 뭔가 시착오가 있어서 제대로된 결과물이 만족스럽지 않아서 다시 도전 해보려고한다! 특히 그때는 ec2에다가 직접 카프카를 설치했지만, 이번엔 도커로 해보자! 그래서 나의 목표는 아래와 같이 3가지이다. - docker로 카프카 구축해보기 : topic만들고, 메세지를 직접 입력해보면서 프로듀서와 컨슈머 확인해보기 - Python으로 실시간 데이터 전송하기 : 연속적으로 들어오는 임의의 데이터를 python으로 만들고 메세지 전송확인하기 - 트위터API를 사용해서 실제데이터 전송하기 : 이제 python코드를 직접 수정해서 실제 데이터를 전송해보는 것이다. Do.. 2021. 8. 10. [ELK] Flask 웹로그 분석해보기2-Flask 로그남기기 이렇게 docker로 간단하게 elk를 구성했다. 이제 내가 만든 웹서버를 켜서 로그를 보내려고한다. 그러니까 내가 만든 웹서버안에 로그를 남겨두면 된다. 아 그전에 EC2의 스펙을 늘렸다. 이전에 왠지모르게 ELK설치 후 계속 인스턴스가 버벅거렸다. 알고보니 docker로 ELK세팅을 할 경우 메모리가 최소2기가 이상 필요했다. 메모리가 2기가인 t2.small도 버벅거렸다. 그래서 결국 t2.medium 타입으로 인스턴스 스펙을 올렸다. >> elk구성시 물리적인 스펙에 관련해서 여기를 참고했다. Flask 추가설정 일단 테스트페이지에 대한 로그를 남겨두도록 Flask에서 추가로 설정했다. ( 이분 블로그참고) -app.py 수정 : 로그를 가져올 메인py(my_test.py) 를 라우트등록 -log.. 2021. 7. 9. [ELK] Flask 웹로그 분석해보기1-Docker로 ELK Stack 설치 elk stack에 대해서 간단하게 알아봤으니, 직접 해보려고 한다. 수집할 웹은 이전에 개발했던 뉴스레터 구독서비스를 사용하기로 했다. 큰 로그는 없을것 같긴하지만, 일단 Flask로 개발한 웹서비스가 있으니 일단 해보자! Docker로 ELK Stack설치 ELK Stack 일일이 설치해도 되지만, 두렵고 엄두가 나지 않는다. (세상에서 제일 골치아픈 config..) 그래서 대부분 docker로 설치하는 듯하다. Elastic Search, Logstash, Kibana를 한번에 설치 할 수 있다! 훨씬 설치가 간단하고, 삭제도 깔끔하다. docker를 이용할 수 있는 모든 플랫폼에서 동일한 방식으로 적용이 가능한 이점이 있다 물론 docker말고 직접 레이어별로 설치를 해보면서 구성해볼 수도 있다.. 2021. 7. 6. 📊ELK Stack이란? Elastic Search, Logstash, Kibana ELK를 왜 쓰는가? 로그분석이 왜 필요한가? 사실 내가 진행한 상에선 굳이 로그분석을 할 필요는 없다. 참고한 프로젝트의 키바나 대시보드가 부러웠기에 초기 기획단계에서부터 해보고 싶었던 부분이였다. 뭔가 내가 말하고 상상하던걸 바로 이뤄내는 기분이라 왠지모를 성취감과 뿌듯함이 든다. 그렇다면 ELK를 사용해보고 싶어서 적용하는거긴한데, 실무적으로 왜 로그분석이 필요하고 ELK를 사용해야하는지 먼저 알아보았다. 일반적인 로그는 이렇게 TXT파일로 떨궈서 살펴보기도 한다. 나는 람다를 자주 사용해서 그런지 lambda cloudwatch에 찍히는 로그를 살펴봤지 이렇게 text파일론 보지 못했다. 그런데 이렇게 로그를 따로 관리하지 않고 이렇게 파일에 쌓아두게 되면 아래와 같은 문제점이 생긴다. 로그레벨 .. 2021. 7. 5. [Spark] Apache Spark 실행하기 | Local에서 Spark설치 와 이제 본격적으로 spark를 설치해서 해볼 준비가 되었다. 오늘의 목표는 Spark설치하기..그냥 무작정해보기.. * pyspark와 spark차이점은? * pyspark를 쓰려면 그냥 spark는 다운받지 않아도 되는건가? * 왜 하둡을 받아야하는거지? * spark를 시작하려면 코드를 처음에 어떻게 써야하지? 근데 아직 감을 잡지 못했다. 아직 잘 와닿지 않는다. Spark 설치하기 나는 python으로 spark를 사용할 것이다. 즉, pyspark를 사용할꺼다. 간단하게 python에서 pip으로 설치하면 바로 spark를 쓸 수 있다고 생각했다. (현재 로컬환경은 python,java이미 설치된 상태) 물론 되긴 되지만, winutils도 없고, 하둡 디렉토리를 가져올수 없다며 하둡환경이 아.. 2021. 4. 22. [Spark] Apache Spark란? | 구조 및 동작방식 앞서 Apache Spark의 정의를 파악하기까지 나름 머나먼 여정이였다. 2021.04.21 - Apache Spark란? | Spark정의를 알아보기까지 빅데이터흐름 2021.04.21 - Apache Spark란? | 빅데이터 처리단계 -수집과 저장/ETL/HBase 2021.04.22 - Apache Spark란? | 빅데이터 처리단계-분산처리/하둡/맵리듀스 이제 본격적으로 Spark를 알아보려고 한다. Spark는 4가지 기능을 제공한다. 또한 Scala언어로 만들어졌지만, Java, R,Python 등 프로그래밍 언어API도 제공한다. 머신러닝을 위한 ML Lib 실시간 처리와 방대한 연산을 위한 Structured Streaming도구 구조화된 데이터를 처리하기 위한 Spark SQL 그래프.. 2021. 4. 22. 이전 1 2 다음 728x90