Spark가 Lazy Evaluation을 사용하는 이유 게으른 게 아니라 완벽주의라는 오은영 박사님의 말씀.. 스파크도??? Lazy Evaluation이란? 우선 Lazy Evaluation이란 개념은 Spark에서 생긴 개념은 아니며 프로그래밍에서 불필요한 연산을 줄이고자 생긴 연산 전략이다. Transformation과 Action...
이번글에서는 Hive에서 작성된 SQL이 어떠한 과정을 통해 M/R, Tez, Spark로 작업이 처리되는지 알아보려고 한다. 1. Hive에서 M/R 작업을 실행 시키는 과정. Hive Driver에 Compiler는 Hive Metastore에서 필요한 읽기/쓰기 정보를 사용하여 쿼리를 구문 분석해 실행 계획을 생성. ...
Spark를 활용해서 Upsert를 구현하는 아이디어는 아래와 같다. 1. 기존에 있던 데이터중 신규 데이터에는 없는 데이터 추출. A를 기준으로 left anti join 수행. 2. 신규로 추가되는 테이블만 추출 B를 기준으로 left anti join 수행. 3. 공통된 테이블은 신규로 추가되는 테이블로 대체. 키값을 기준으로 A와 B...
이번 글에서는 업무에서 사용하면서 Spark 성능을 높이기 위해서 적용한 튜닝포인트들을 정리하도록 하겠다. Spark를 사용하면서 느꼈던 것은 쉽게 사용하려면 얼마든 쉽게 사용하겠지만 기본적인 작동원리를 잘 알고 사용한다면 2~3배의 성능향상을 얻을 수 있다는 것을 알게 되었다. 1. coalesce와 repartition의 차이. - shuff...
이번에 샤딩된 데이터베이스에서 유입되는 데이터베이스에 어떤 데이터베이스 인스턴스에서 데이터가 유입되었는지 파악하기 위한 컬럼이 필요해 스파크를 활용해 컬럼을 추가해 보았다. 인터넷에 컬럼 추가 방법을 검색하면 withColumn 함수를 사용하는게 많이 검색이 되었는데 withColumn 함수를 그냥 사용하면 Parquet파일 맨뒤에 컬럼이 추가가 되어...
오늘은 opensource ELT솔루션인 Airbyte에 대해 알아보려고 한다. 중점적으로 알아볼것들은 설치 방법, 사용 방법, 장단점이다. 설치와 사용을 해보고 다시 보니 Airbyte는 ETL솔루션이 아닌 ELT솔루션으로 소개되어있는걸 보아 글 마지막에 정리되어있는 단점이 이해가 가게되었다. 1. 설치 방법 설치는 간단하게 도커위에 컨테이너...
1. Stack에 HIVE 추가. Stack 디렉토리에 HDFS에 metainfo 파일을 보니 common-service라는 디렉토리에 있는 파일을 가지고 설치를 진행하는듯하다. metainfo.xml 파일 위의 xml 파일을 보니 common-service가 뭘까 찾다 ambari-server디렉토리에서 아래와 같이 발견했다. 경로 : /var/...
1.Apache Bigtop이란? Bigtop은 Hadoop Ecosystem을 패키징, 테스트, 가상화를 지원해주는 프로젝트로 3.0 기준으로 아래 Hadoop Ecosystem 패키징을 지원한다. Bigtop Release3.0(출처:https://cwiki.apache.org/confluence/display/BIGTOP/Bigtop+3....
1.1 컨슈머 주요 옵션. - 카프카의 컨슈머는 올드 컨슈머와 뉴 컨슈머 2개의 종류가 있다. - 올드 컨슈머는 오프셋을 주키퍼의 지노드에 저장하는 방식을 지원. - 뉴 컨슈머는 오프셋을 주키퍼가 아닌 카프카의 토픽에 저장. - 아래의 옵션은 뉴 컨슈머 기준으로 작성됨. bootstrap.servers : 카프카 클러스터의 주소 fetch....
1.1 콘솔 프로듀서로 메시지 보내기 server.properties 파일에 auto.create.topics.enable = true 옵션을 설정하면 카프카에 존재하지 않는 토픽을 전송하면 자동으로 토픽 설정. 아래명령어로 토픽 이름 : khg, 파티션: 1, 리플리케이션 팩터:3인 토픽 생성 /opt/kafka/bin/kafka-top...