Data engineering(18)
-
[MYSQL] Docker MYSQL 로그에서 "mbind: Operation not permitted" 이슈 해결방법
개요 mysql은 도커 컨테이너로 올라가있는 상태이고, 로컬에 볼륨이 공유된 상태로 사용하고 있었다. mysql에서 로그를 확인해보니 아래와 같은 로그를 확인할 수 있었다. 해결 방법 mbind는 리눅스 명령어로 메모리 범위에 대한 메모리 정책 설정을 뜻한다. mbind를 사용하는 명령어에서 권한이 없는 문제로 예상된다. 도커 공식 문서에 보면 아래와 같은 내용이 있다. --cap-add=sys_nice Grants the container the CAP_SYS_NICE capability, which allows the container to raise process nice values, set real-time scheduling policies, set CPU affinity, and other ..
2021.06.07 -
[간단 데이터 엔지니어링] 프레스토(Presto)란?
개요 Presto는 페이스북에서 아주 많은 데이터를 빠르고 효율적으로 분석하기 위해 개발되었다. 페이스북에서는 300PB 규모의 데이터 웨어하우스에 쿼리할 때 사용하고 있으며 현재는 Airbnb와 Dropbox 등에서도 사용되고 있다. 다양한 소스를 지원해주는데 Hive, Cassandra, RDB, AWS S3 등에서 데이터를 읽을 수 있다. Hive는 처리할 때 중간 결과를 디스크에 저장하지만 Presto는 메모리에 저장하기 때문에 속도가 훨씬 빠르다. 하지만 리소스를 더 사용하게 된다. Architecture Presto는 하나의 Coordinator가 다양한 소스에서 데이터를 가져와 Worker에게 전달을 해주는 역할을 한다. 쿼리 처리 방법 클라이언트에서 Coordinator로 쿼리를 보낸다. ..
2021.06.02 -
[🔥Spark] 스파크로 머신러닝 시작하기
스파크 기본 파이썬에서 스파크 사용하기 SparkContext의 인스턴스를 만들면 스파크 클러스터에 연결해서 사용할 수 있게 해준다. SparkConf로 스파크에 대한 구성을 할 수 있다. sc = SparkContext.getOrCreate() # Verify SparkContext print(sc) # Print Spark version print(sc.version) 데이터프레임 사용하기 스파크의 코어 데이터 구조는 RDD라고 하는데 Resilient Distributed Dataset(탄력성있는 분산된 데이터셋) 이라는 뜻이다. RDD는 낮은 레벨에 있어서 사용하기 어렵기 때문에 Spark DataFrame 이라는 더 높은 레벨의 데이터프레임을 사용하는 것이 편하다. Spark DataFrames..
2021.04.10 -
[🧙Kafka] 카프카 구축 (7) - 카프카 프로듀서 파이썬에서 구현하기
About 카프카는 Java를 제공하지만 go, python 등에서 서드파티에서 사용할 수 있도록 해주기도 한다. 이번에는 파이썬 애플리케이션에서 카프카로 보내는 방법과 추가 구성들을 알아보려고 한다. Example bootstrap.servers 최초 연결을 위한 브로커 서버 목록을 설정한다. 모든 브로커를 포함할 필요는 없지만 여러개로 설정해두어야 부트스트랩 서버 중 하나가 문제가 생겼을 때 다음 서버로 시도할 수 있다. key.serializer 메시지의 키를 직렬화할 직렬처리기의 이름을 여기에 설정한다. 직렬처리기는 객체를 Byte Array로 변환해준다. ByteArraySerializer, StringSerializer, IntegerSerializer라는 직렬처리기가 존재하고 사용자가 직접 ..
2021.04.09 -
[🔥Spark] Spark Streaming 이란?
Spark Streaming 개요 스트리밍 처리는 실시간으로 들어오는 데이터를 처리하는 것을 말하는데, 스파크 스트리밍은 배치 처리를 해준다. 배치 처리란 A시간 부터 B시간까지의 처리를 한 묶음, B시간 부터 C시간까지의 처리를 한 묶음으로, 처리를 하는 것을 말한다. n초에 한 번씩 실행하는 등의 지정을 할 수 있다. 스파크 스트리밍은 특정 포트를 통해 데이터를 받아들일 수 있으며 데이터를 전부 불러와서 처리하는 것이 아닌 특정 시간 사이에 들어온 데이터를 처리하는 방식이다. Example 1. 스파크 세션을 생성한다. 2. 스트리밍 데이터프레임 생성한다. 3. 변형 작업을 한다. 4. 목적지로 출력한다. 5. 1을 더하는 출력 결과 예시는 다음과 같다. -------------------------..
2021.04.01 -
[데이터 엔지니어링] Apache Parquet 정리
Apache Hadoop 에코 시스템의 column-oriented 데이터 스토리지 포맷입니다. Hadoop에서 사용할 수 있는 column-oriented 파일 형식 RCFile, ORC와 유사합니다. 향상된 성능과 함께 효율적인 데이터 압축 및 인코딩 체계를 제공합니다. 기존 Hadoop 컬럼 스토리지 형식인 Trevni을 개선하기 위해 설계되었습니다. 기능 column-oriented 1. 각 열의 값은 인접한 메모리 위치에 물리적으로 저장됩니다. 2. 열 단위 압축은 효율적이어서 저장 공간을 절약합니다. 3. 같은 열의 값은 비슷한 유형이므로 유형별 압축 기술이 필요하지 않습니다. 4. 특정 열 값을 가져오는 쿼리는 전체 행을 읽지 않고 일부 열만 읽습니다. 5. 열마다 다른 인코딩을 적용할 수 ..
2021.03.08