일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- dataengineer
- 클라우데라
- recommendation system
- BigData
- 빅데이터플랫폼
- 데이터엔지니어
- Terraform
- kafka
- 개발자혜성
- 데이터엔지니어링
- kubernetes
- DataEngineering
- 추천시스템
- Python
- redis bloom filter
- pyspark
- 개발자
- Spark structured streaming
- 하둡에코시스템
- apache spark
- mlops
- 빅데이터
- AWS SageMaker
- 블로그
- eks
- Data engineering
- hadoop
- spark
- 하둡
- cloudera
- Today
- Total
목록데이터엔지니어 (14)
Hyesung Oh
웹에서 사용하는 대표적인 인증 방식 두 가지인 Cookie&SessionId 그리고 JWT에 대해 정리해보았다. Bcrypt 두 가지 방식에서 공통적으로 User의 최초 회원가입 정보를 암호화하고 추후 verification에 사용하는 password hasing function이다. User의 password는 위와 같이 암호화 되어 database에 저장된다. Bcrypt는 이 때 사용되는 hasing function이며 가변길이의 문자열을 고정길이의 문자열로 hashing 하는데 사용되는 1. Algorithm, 2. 그 결과인 Hashed password, 그리고 가운데 Salt라는 값으로 결과를 리턴한다. Salt가 없다면 Hashed password가 유출되었을 때 이를 복호화 하기 수월하다...
Kafka 내부 동작 원리 이해하기 (1) Replication 편에 이어서. 다시 한번 강조하면 이 책은 고승덕님의 실전 카프카 개발부터 운영까지를 스터디하며 이해한 내용을 내 나름대로 정리한 포스팅입니다. 따라서 책과 다른 내용이 있다면 그것은 본인이 실수이니 수정 코멘트 부탁드리겠고, 자세하고 정확한 내용은 책을 참고바랍니다. 컨슈머 오프셋 관리 컨슈머가 제대로 동작하려면 오프셋(Offset) 관리가 핵심이다. 어디까지 읽었는지에 대한 북마크라고 이해하면 된다. 그렇다면 오프셋 정보는 어디에서 관리될까? 카프카에 맡길 수도 있고, 컨슈머 자체적으로 HDFS compatible storage에 저장하여 관리할 수도 있다 (ex. Spark Structured Streaming). 전자 방식의 경우 컨..
시작하기에 앞서 이번 시리즈는 고승덕님의 실전 카프카 개발부터 운영까지를 스터디하며 이해한 내용을 내 나름대로 정리한 포스팅임을 밝힌다. 양질의 저서를 출판해주신 고승덕님께 깊이 감사의 말씀을 전합니다. EDA(Event Driven Architecture)에서 Kafka는 SPOF(Single Point of Failure)가 될 수 있다. 따라서 Kafka는 물론이고 Hadoop 등의 분산 시스템에서는 애플리케이션의 HA(High Availability)를 위해 내부적으로 replication 동작을 수행하게 된다. Kafka에서 Topic 생성시 replication factor 지정은 필수이다. 그 외에도 많은 기업에선 클러스터간 미러링, 서버의 지리적 분산 등의 기본적인 조치를 취하게 된다. 분..
Structured Streaming + Kafka Integration Guide (Kafka broker version 0.10.0 or higher) 기준 내용이며, 실무에서 Kafka를 컨슈밍하는 Spark 스트리밍 어플리케이션을 운영하며 나름대로 적용하고 실험해본 옵션들에 대한 본인만의 노트인 점 참고바란다. kafka.group.id (default None) kafka consumer는 항상 하나의 consumer group에 속하게 되는데 이에 대한 식별자이다. Spark 내부적으로 스트리밍 쿼리마다 default generation 대상이며, 이를 특별히 지정하고자 하는 경우 사용한다(예를 들어 Kafka group-based authorization). 하지만 이를 사용하게 되면 bat..
GTM vs GA 구글태그매니저(GTM) 와 구글 애널리틱스(GA)의 설치면에서 차이를 본다면 아래 그림과 같다. 구글애널리틱스(GA) : 웹사이트에 GA 스크립트를 삽입한다. 구글 태그매니저는(GTM) : 웹사이트의 GTM 스크립트를 삽입 후, GTM 을 통해 GA를 연결한다. 이로써, 구글 태그매니저는 GA의 관리자 역할을 한다. 구글애널리틱스(GA)는 여러 유입/행동 레포트나 중요사항에 대한 목표/전환을 설정할 수 있다. 구글 태그매니저는(GTM)은 레포트나, 목표/전환을 제공하지는 않는다. 다만 여러 GA 같은 tool 을 설치/관리하게 해준다. middle-man 개념으로 보면 되겠다. 구글애널리틱스(GA)는 구글 태그매니저는(GTM) 없이도, 설치되어 사용될 수 있다. 구글 태그매니저는(GTM..
조금만 검색해보면 spark Performance tuning과 관련된 좋은 참고자료들이 많이 있습니다. 그 중에서 실제 팀에서 적용하여 효과를 보고있는 내용만 선별하여 공유하고자 합니다. 크게 코드 레벨에서의 최적화와 configuration 레벨에서의 최적화 두 가지가 있을 것 같습니다. 1. Code Level Opimization point 1. filter -> aggregation. aggregation을 하게 되면 driver 노드에 많은 부하가 있을 수 있습니다. 따라서 이럴 경우 reduceByKey를 이용하여 driver로 전송되는 데이터 사이즈를 최대한 줄이는게 포인트입니다. point 2. Iterator 최대한 활용하기 driver node로 데이터를 불러와서 작업을 해야하는 경우..
Pyspark로 이전하면서 느꼈던 가장 큰 아쉬움 한가지는 바로, Scala의 Dataset API가 지원되지 않는다는 점이었습니다. Dataset API를 통해 객체지향 인터페이스를 마음껏 누리면서도 Spark tunsgten project 이후 (Scala code -> java object -> 자연스레 cpu, memory 오버헤드) CPU, Memory 작업에서 많은 최적화가 이루어져 성능도 우수한 편이었기에 개인적으로 선호했기 때문입니다. Pyspark에서 이러한 아쉬움을 달래기 위해 노력한 과정과 그 과정에서 바뀌게된 생각들을 공유하고자 합니다. Code Style Guide 코드 스타일 가이드는 https://github.com/palantir/pyspark-style-guid를 우선적으로..
Spark가 JVM 위에서 동작하는 사실은 Spark 개발자라면 누구나 아는 사실입니다. Pyspark 구동의 핵심 부분인 Python process와 JVM process간의 객체 레벨 통신에 대해서 궁금증이 생겼습니다. 아래 본문은 Pyspark 소스코드를 파헤치며 파악한 내용들이며 잘못된 내용에 대한 피드백 주시면 책임감을 가지고 수정하겠습니다. Overview PySpark is built on top of Spark's Java API. Data is processed in Python and cached / shuffled in the JVM The In the Python driver program, SparkContext uses Py4J to launch a JVM and create a..