일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- EMR 구조
- Spark 최적화
- AWS Crawler
- 카프카
- 빌드도구
- Spark
- 문맥교환
- 하둡
- 데이터파이프라인
- 데이터엔지니어링
- freenom
- 스파크
- 런타임데이터영역
- Databricks
- kafka 설치
- 하둡1.0
- 지연연산
- 프로그래머스힙
- 데이터 수집
- ORACLE문법
- lazy evaluation
- 프로그래머스
- 실행엔진
- 서버간 복사
- 프로그래머스 큰 수 만들기
- ORACLE MSSQL차이
- 하둡2.0
- 하둡에코시스템
- Catalyst Optimizer
- 데이터베이스복사
- Today
- Total
목록전체 글 (86)
띵유로그
파이썬 주요 특징중 하나는 GIL(Global Interpreter Lock) 입니다. GIL 이란? 파이썬의 최초 구현체는 CPython 인데, CPython은 스레드세이프 하지 않기때문에 메모리 관리를 쉽게 하기 위해서 GIL로 파이썬 객체에 접근을 제한 했습니다. 일종의 Mutex인 셈입니다. GIL이 필요했던 이유 Python 은 모든 것이 객체입니다. Python 객체는 참조횟수를 저장하고 있습니다. 저장해둔 참조 횟수에 따라서 GC(Garbage Collection)을 하게 됩니다. 참조횟수가 0이면 자동으로 메모리에서 삭제해주는 것입니다. 참조횟수는 sys의 getrefcount 함수를 통해서도 확인할 수 있습니다. >>> import sys >>> a = [] >>> b = a >>> sy..
이번 글에서는 효율적인 코드 작성을 위한 스파크 튜닝 방법에 대해서 정리해보겠습니다. 1. 파티셔닝 사용 적절한 파티션의 개수를 두어 데이터의 분포를 적절하게 하는것이 중요합니다. 한 파티션에 너무 많은 데이터가 들어간다면, 처리하는데 비용이 너무 많이 들것이고 적은 데이터를 가진 파티션들이 너무 많다면 스케쥴링하는데에 비용이 많이 들것입니다. 또 모든 메타데이터를 저장하고 있어야합니다. 예를들어 RDD를 filter 하고 난 후에는 파티션별로 데이터의 양이 상이할 수 있습니다. 이때 repartition을 해주어서 데이터를 재분배해주는 것이 좋습니다. 2. 캐싱 RDD는 액션함수가 실행될 때마다 데이터로드부터 다시 계산됩니다. 그래서 동일한 RDD를 가지고 여러번의 연산을 해야할 때는 중복실행을 줄이기..
Gradle은 maven이후에 나온 빌드도구입니다. maven과의 차이점 maven gradle 처리속도 느림 빠름 (maven보다 최대 100배 빠름) 작성언어 xml Groovy 스크립트 설정파일 pom.xml build.gradle 멀티모듈 상속관계 Configuration injection(설정주입) -> 설정 주입시 프로젝트 조건 설정가능 - maven 보다 빠른 이유 : 이미 빌드가 되어있으면 다시 빌드하지 않고 패스함. - maven은 특정 설정을 몇개의 모듈에서만 공통적으로 사용하게 하려면, 부모프로젝트를 생성해서 자식들이 상속받게 해야합니다. 또 부모중 조금이라도 설정이 다르면 상속받지 못하고 설정을 하나하나 프로젝트에 넣어줘야합니다. gradel은 공통설정을 조건에 따라서 특정 프로젝트..
이번 포스팅은 Maven 과 관련된 용어와 지식을 정리하는 글입니다. 우선 Maven 은 빌드도구입니다. 프로젝트를 진행하다보면 여러 라이브러리를 참조해야할 때가 많은데요, 이때마다 라이브러리를 다운받는것은 매우 힘듭니다. 그래서 maven은 라이브러리를 네트워크(maven 저장소)에서 다운받아와 관리해줍니다. modelVersion maven의 버전 description 프로젝트의 간략한 설명 properties pom.xml 파일내에서 여러번 사용되는 중복상수. ${태그명} 으로 사용 Archetype 메이븐 프로젝트 toolkit입니다. 메이븐 프로젝트에서 사용하는 모델이나 패턴을 템플릿화 해서 빠르게 구현할 수 있도록 해줍니다. 그냥 템플릿이라고 보면됩니다. intellij 에서 maven 기반 ..
Elasticsearch를 간단하게 사용해보겠습니다. Elasticsearch는 Apache Lucene( 아파치 루씬 ) 기반의 Java 오픈소스 분산 검색 엔진입니다. 방대한 양의 데이터 거의 실시간( Near Real Time )으로 저장, 검색, 분석할 수 있습니다. Elasticsearch는 단독으로 사용되기도 하며, ELK( Elasticsearch / Logstatsh / Kibana )스택으로 사용되기도 합니다. ELK스택에서 Elasticsearch의 역할은 간단하게 말하면, 정보를 검색, 집계하여 필요한 정보를 획득한다고 할 수 있겠습니다. EC2 서버에 logstash 를 설치해서 S3 -> elastic search 로 데이터를 옮겨온 후 kibana 로 데이터를 표출해보겠습니다. ..
스파크의 기본 아키텍쳐에 대해 알아보겠습니다. 스파크는 컴퓨터의 리소스를 관리하는 Cluster Manger와 그 위에 동작하는 Spark application으로 구성되어있습니다. 1. 클러스터 매니져 클러스터 매니져는 스파크 어플리케이션의 리소스를 효율적으로 분배하는 역할을 합니다. 스파크는 태스크를 할당하기 위해 클러스터 매니져에 의존합니다. 할당가능한 excutor를 전달받으면 그대로 할당하는 역할만을 수행하기 때문에 매우 중요합니다. 클러스터 매니져는 스파크와 떼었다 붙일 수있고 3.0기준으로 스파크 standalone 클러스터 매니저, 하둡 YARN, 메소스, Kubernetes 등이 사용가능합니다. 각 종류에 대해 잘 정리되어있는 글이 있어 남겨둡니다. https://paranwater.ti..
지난 포스팅에서는 프레스토를 알아봤는데요, 이번 포스팅에서는 Mysql 과 연동해보겠습니다. Presto에 대한 기본적인 내용부터 각종 DBMS와의 연결방법은 https://prestodb.io/docs/current/overview.html에도 자세히 나와있으니 참고하면 좋을 것같습니다. 먼저, Emr 생성시 Presto를 선택해주고 띄운후 접속해줍니다. 운영중인 mysql 은 이미 있고, 인바운드, 아웃바운드 규칙은 이미 설정되어있다고 가정합니다! /etc/presto/conf/catalog 폴더에 가면 기본적으로 hive.properties 파일만 존재하는것을 볼 수 있습니다. (awsdatacatalog.properties는 hive.properties 파일로의 링크임) 1. 카탈로그 추가 (my..
Presto는 분산환경에서의 SQL쿼리 엔진입니다. 서로 다른 DB의 data도 join 할 수 있는 기능이 있습니다. Hive는 중간에 데이터를 디스크에 저장하지만 Presto는 메모리에 올리기 때문에 더 빠르다는 장점이 있습니다. 또 AWS 아테나도 Presto 엔진으로 구성되어있어 쿼리를 실행할 수 있지만, 이기종간의 data join이 불가능합니다. 또 아테나는 서버리스이기때문에 데이터 용량에 따라 요금이 부과되지만, Presto는 사용한 computing power을 사용한 시간에따라 요금이 부과됩니다. Presto CLI에서 명령어를 제출하면 코디네이터는 분석 후 실행계획을 세웁니다. 그 후 실행계획에 따라 worker에게 task를 줍니다. 따라서 당연히 worker노드를 관리합니다. wor..