데이터 엔지니어링(46)
-
[🔥Spark] 스파크 AccessControlException: Permission denied 해결방법
개요 스파크를 실행하려고 할 때 권한 오류가 발생할 수 있다. 이 경우에는 AWS EMR의 Zeppelin에서 스크립트를 실행하는데에 오류가 발생했다. org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/":hdfs:hdfsadmingroup:drwxr-xr-x 해결방법 권한을 검사하지 않게 하는 방법도 있지만, 간단한 해결 방법은 유저에게 권한을 주면 해결할 수 있다. dfs.permissions.superusergroup 을 보면 어떤 그룹이 superusergroup인지 확인할 수 있다. >> cat /etc/hadoop/conf/hdfs-site.xml ... dfs..
2021.10.29 -
[Airflow] Airflow + Celery Executor 구축(Docker)
개요 에어플로우를 LocalExecutor를 사용해서 하나의 인스턴스에 실행시키고 있었다. 그러나 인스턴스에 문제가 생기면 Airflow도 동작하지 않을 수 있는 문제가 있고, 인프라가 커졌을 때 확장이 힘들어서 Worker를 분리해야했다. airflow에서 공식적으로 제공하는 docker-compose에서는 celery를 사용하며, 보통 airflow를 구축할 때 celery를 사용하는 것 같다. 이렇게 클러스터로 구축을 하게 되면 리소스가 필요할 때 worker의 갯수만 늘리면 되고, 리소스가 필요 없을 때 불필요하게 낭비하지 않고 worker의 갯수를 줄이면 되기 때문에 좋다. 구축할 때는 AWS ECS, AWS EFS 환경에서 구축했다. 구축 과정 Dask Cluster를 활용하여 구축 시도 가장..
2021.10.15 -
[🧙Kafka] Confluent License
개요 카프카를 구축할 때 Confluent에서 제공해주는 서비스가 정말 유용한데, 일부는 무료이고 일부는 사용기간 이후에는 라이센스가 필요한 경우가 있다. 서비스마다 다르므로 잘 확인하고 사용해야한다. 라이센스 정보 Enterprise (Subscription) License Confluent Server Confluent Control Center Confluent for Kubernetes Confluent Replicator MQTT Proxy Community License Confluent REST Proxy ksqlDB Confluent Schema Registry Confluent Admin REST API Connector의 경우 커넥터는 종류에 따라 라이센스가 다르다. 이 링크에서 확인할..
2021.10.14 -
[Redshift] Federated Query(연합 쿼리)란?
개요 Redshift는 데이터 웨어하우스를 만들 수 있게 도와준다. AWS에서 제공하는 서비스이며, 다양한 소스와 쉽게 결합할 수 있는 기능이 있는데, 연합 쿼리라고 하며 하나의 쿼리 안에 S3, Athena, RDS, Redshift에 있는 데이터를 이용할 수 있다. 레드시프트는 비용이 비싸서 모든 데이터를 여기에 넣을 수 없어서 큰 데이터들은 S3에 넣는 경우가 많으며, 서비스는 RDS를 사용하는데 이 기능을 사용하면 쉽게 결합할 수 있다. S3에서 데이터를 가져올 경우 Redshift 인스턴스는 사용하지 않고 독립적인 인스턴스를 사용하는 Redshift Spectrum을 이용하게 되는데 비용은 1TB에 5$정도 된다. 사용 방법: https://docs.aws.amazon.com/redshift/l..
2021.10.14 -
[⚡AWS] Redshift 기초 이해하기
레드시프트란? AWS에서 제공하고, AWS와 쉽게 통합할 수 있으며 컬럼 기반, PostgreSQL을 기반으로 만들어져 있다. 리더 노드와 실제로 쿼리를 처리하는 컴퓨터 노드가 있는 클러스터로 구성되어 있어서 쉽게 확장할 수 있다. 클라우드 데이터 웨어하우스를 만들 때 사용한다. 레드시프트 기능 정렬 키(SORT KEY) 정렬키에 따라 순서대로 데이터베이스에 저장한다. 자동 테이블 최적화 작업을 하면 정렬키를 선택할 필요가 없다. AUTO 키워드를 사용하여 자동으로 정렬키를 선택할 수 있다. 자주 사용되거나 조인되는 경우 사용하면 된다. 분산 테이블을 생성할 때 4가지(AUTO, EVEN, KEY, ALL)중 하나를 선택할 수 있다. 분산키를 선택하지 않으면 AUTO를 사용한다. 기본 키 및 외래 키 제..
2021.10.12 -
private PyPI 구축하기(S3 backend)
개요 파이써 패키지를 만들어서 사용해야하는데, public pypi 에 올릴 수 없는 경우 private PyPI 서버를 만들어야한다. 서버를 띄워둘 때 새로운 EBS를 연결하지 않은 EC2나 EFS를 연결하지 않은 ECS 등의 상태가 유지되지 않을 수 있는 환경에서 띄우기엔 애매할 때 S3를 백엔드로 사용할 수 있다. 내용 S3를 백엔드로 사용하려면 pypicloud라는 라이브러리를 사용하면 된다. S3외에도 GCS, Blob Storage를 사용할 수 있다. 공식 페이지 https://pypi.org/project/pypicloud/ Getting Started https://pypicloud.readthedocs.io/en/latest/topics/getting_started.html#uploadi..
2021.10.11