본문 바로가기
반응형

BigData 기술37

Hive 트랜잭션 테이블 (Hive update, delete) 개요 Hive에서 update 또는 delete 쿼리를 사용하기 위해서는 트랜잭션 설정이 필요하다. Hive 트랜잭션 테이블의 개념과 설정하는 방법을 알아본다. ACID 란? DB 트랜잭션의 주요한 특징이다. Atomicity an operation either succeeds completely or fails, it does not leave partial data 작업은 성공하거나 실패하거나 둘 중 하나이다. Consistency once an application performs an operation the results of that operation are visible to it in every subsequent operation 하나의 작업이 전체 시스템에 반영된다. Isolation .. 2021. 1. 3.
[spark] spark streaming + kafka 개요 spark-in-action 책을 보면서 공부한 내용을 정리한다. 스파크 스트리밍에서 kafka 토픽(orders) 데이터를 읽어서 kafka 토픽(metrics)에 결과를 전송해본다. 스파크 스트리밍이란? (Spark Streaming) 스파크 스트리밍(Spark Streaming)은 다양한 데이터 소스(Kafka, HDFS 등)로부터 데이터를 받아서 실시간 스트리밍 처리를 한다. 스트리밍 데이터를 구조적으로(테이블 형태) 사용하려면 Spark Structurec Streaming을 사용한다. DStream 스파크 스트리밍에서 사용할 수 있도록 재구성한 데이터 형태를 Discretized Stream 혹은 DStream이라고 한다. StreamingContext 스파크 스트리밍에서 사용하는 객체이.. 2020. 8. 10.
SPARK에서 저장소(HDFS, Hive 등)에 접근하는 방식 SPARK에서 저장소(HDFS, Hive 등)에 접근하는 방식 (1) 저장소 바로 접근 HDFS, S3 등의 저장소를 지원한다. (2) hive metastore hive metastore를 통해 저장소에 접근한다. 저장소에 저장된 hive 테이블을 사용할 수 있다. (3) spark thrift server jdbc/odbc 프로토콜을 통해 접속한다. 이후 metastore를 통해 저장소에 접근한다. 저장소에 저장된 hive 테이블을 사용할 수 있다. 참고링크 Using Spark SQL - Hortonworks Data Platform Using SQLContext, Apache Spark SQL can read data directly from the file system. This is usefu.. 2020. 7. 31.
[Presto] Memory Pool / Memory configuration (config.properties) Presto Memory 각 Memory Pool 에서 메모리를 할당한다. 무조건 General Pool에서 먼저 할당한다. 메모리의 종류는 2가지이다. user 메모리 group by, join 등 쿼리에 따른 메모리이다. system 메모리 input/output buffer 등에 대한 메모리이다. Presto Memory Pool headroom 메모리를 제외한 나머지 메모리(General, Reserved)가 Presto Worker가 실제 사용할 수 있는 메모리이다. (1) General Pool 쿼리를 실행하면 General Pool에서 제일 먼저 메모리가 할당된다. jvm 메모리 용량에서 headroom 메모리 용량을 뺀 나머지가 모두 General Pool 에 잡힌다. jvm - Reser.. 2020. 7. 22.
[HDFS] 하둡 Balancer 과정 개요 하둡 클러스터의 데이터 불균형 현상이 일어나는 원인과 밸런싱 과정을 알아본다. 하둡 클러스터 데이터 쏠림 현상 새로운 데이터 노드를 추가할 때 밸런서를 따로 돌리지 않으면 기존 데이터들은 새로운 데이터노드에 저장되지 않는다. 클라이언트 프로그램 클라이언트가 HDFS 쓰기 작업을 요청한다. 근데 어차피 어떤 데이터 노드에 쓸 건지는 네임노드가 결정해주는 건데 클라이언트 프로그램 때문에 데이터 쏠림이 발생하는 건가? HDFS 블록 할당 HDFS에 블록을 할당할 때 데이터노드들의 용량까지 고려되지 않는다. 그러다 보면 HDFS 언밸런싱이 생기게 된다. 나름의 할당 기준은 있다. 복제본 3개. Node local -> Rack local -> off switch 기준으로 블록이 할당된다. 하둡 클러스터 밸.. 2020. 7. 20.
[HDFS] Rack Awareness 란 HDFS 데이터 블록 복제 HDFS는 기본적으로 블록을 3개씩 복제한다. 복제시 아래와 같은 순서로 블록을 저장할 데이터노드를 선정한다. Node local > Rack local > off switch Node local : 작업하는 노드가 데이터노드의 일부라면, 여기에 블록을 저장한다. Rack local : 작업하는 노드와 동일한 랙에 있는 노드에 블록을 저장한다. off switch : 작업하는 노드와 다른 랙에 있는 노드에 블록을 저장한다. 이렇게 나누어 저장함으로써 장애가 생겨도 데이터 유실이 없도록 한다. 근데 하둡이 어떻게 노드의 위치를 알 수 있을까? 하둡의 Rack Awareness 설정을 통해 노드의 위치를 파악하는 것이다. 만약 namenode가 topology를 알아오지 못하면 무.. 2020. 7. 15.
반응형