분류 전체보기 131

Hive - TEZ

TEZ ? (Hive 2.0이상 버전은 MR보단 TEZ사용)YARN기반의 데이터 처리를 위한 프레임워크.방향성 비순환 그래프(DAG)를 사용해서 Dataflow Gragh 정의한다는 점이 특징.이러한 특징 덕분에 SQL실행 전에 작업량, 리소스에 대해 최적화된 실행 계획을 설계할 수 있다.실행중에 동적으로 그래프를 변경하며 실행 계획을 최적화하는데 도움을 줄 수 있습니다.TEZ는 MapReduce동작 방식과 동일하게 Yarn을 통해 container를 할당받는데 이러한 container를 재사용.재사용함으로써 container 리소스를 재할당 받는 메모리의 오버헤드를 줄일 수 있다. MapReduce와의 차이MR은 Map단계에서 데이터를 읽고 중간 산출물을 생성하고,Reduce 단계에서 중간 산출물을 다..

ETC 2024.07.23

MySQL - HINT

MySQL에서 사용 가능한 쿼리 힌트인덱스 힌트옵티마이저 힌트 인덱스 힌트STRAIGHT_JOINUSE INDEX STRAIGHT_JOINSTRAIGHT_JOIN은 여러 개의 테이블이 조인되는 경우 조인 순서를 고정하는 역할을 한다.즉, 옵티마이저에게 드라이빙 테이블과 드리븐 테이블에 대한 힌트를 주는 기능이다.옵티마이저는 각 테이블의 통계 정보와 쿼리의 조건을 기반으로 최적의 순서로 조인을 수행한다.일반적으로 조인을 하기 위한 컬럼들의 인덱스 여부로 조인의 순서가 결정되면, 조인 컬럼의 인덱스에 아무런 문제가 없는 경우 레코드가 적은 테이블을 드라이빙으로 선택한다.이런 쿼리의 조인 순서를 변경하려는 경우에는 다음과 같이 STRAIGHT_JOIN 힌트를 사용해 테이블의 조인 순서를 유도할 수 있다.SEL..

DB 2024.07.17

Hadoop - HDFS 페더레이션

HDFS 페더레이션?네임 노드의 확장성 문제를 해결하기 위한 네임노드 연합체(2.x 릴리즈 버전부터 지원) 여러대의 네임노드가 파일 시스템의 네임스페이스를 일부 나누어 관리하는 방식이다.ex) A네임노드는 /user/* 디렉토리의 모든 파일관리.      B네임노드는 /share/* 디렉토리의 모든 파일관리. HDFS 페더레이션을 적용하면 각 네임노드는 네임스페이스 볼륨과 블록 풀을 관리한다.네임스페이스 볼륨 : 네임스페이스의 메타데이터를 구성. 서로 독립되어 있다. 네임노드끼리 서로 통신할 필요가 없다. 특정 네임노드가 장애가 나도 가용성에 영향을 주지않는다.블록 풀 : 네임스페이스에 포함된 파일의 전체 블록을 보관.  모든 데이터노드는 클러스터의 각 네임노드마다 등록되어 있고, 여러 블록 풀로부터 블..

Hadoop 2024.07.04

Hadoop - 다수의 작은 파일 vs 하나의 큰 파일

하둡에서 다수의 작은 파일보다는 하나의 큰 파일을 처리하는게 속도면에서 더 빠르고 효율적이다.파일에 따라서 작은 용량의 다수 파일을 전처리하여 큰파일로 전처리 작업 후 다음 작업을 실행하는게 더 효율적일 수 있다. 왜?오버헤드 감소: 많은 작은 파일을 읽으려면 많은 메타데이터 작업이 필요하다. 각 파일에는 열기, 메타데이터 읽기 및 닫기가 필요하므로 단일 대형 파일을 읽는 것에 비해 상당한 오버헤드가 추가된다.효율적인 데이터 현지화: Hadoop의 HDFS는 대용량 파일을 큰 블록(default 128MB)으로 분할하여 효율적으로 처리하도록 설계되었다. 이러한 블록은 여러 노드에서 병렬로 처리되어 처리량과 효율성을 극대화할 수 있다. 작은 파일이 많으면 노드 전체에 걸쳐 이러한 파일을 배포하고 관리하는 ..

Hadoop 2024.07.04

Kafka - 최종 정리 ( 추가 중 )

Broker최소 3대, 권장 4대 이상의 Broker로 Kafka Cluster 구성Topic 내의 Partition을 분산, 유지, 관리Broker 장애 시? - Broker는 partition을 미리 다른 Broker에 Replication(복제)하여 대비한다. Leader/Follower구조Replication Factor 3 ? - Leader 1, Follower 2 (복제2), Follower는 leader에 Fetch Request를 요청하며 commit Log 데이터 요Producer와 Consumer는 Broker Leader하고 통신한다. Leader 장애 시 Kafka Cluster에서 follower중 Leader선출Leader선출 하는 방법? - ISR, In Sync Replic..

Kafka 2024.06.28

자료구조 - 비선형

비선형 자료구조?하나의 데이터에 N개이 데이터가 이어지는 구조. 1:N, N:N 구조로 되어있다.계층적 구조를 나태내기에 편리. 그래프?데이터를 포함하는 정점vertex(노드node)과 정점edge을 잇는 간선으로 구성되어 있다.G = (V,E) 1. 무방향 그래프간선에 방향성이 없는 그래프.정점 개수가 n일때 최대 간선의 개수는 n x (n-1) / 2이다. 2. 방향 그래프간선에 방향성이 있는 그래프.정점 개수가 n일때 최대 간선의 개수는 n x (n-1) 이다. 경로 탐색 1. 너비 우선 탐색(BFS)탐색을 시작하는 정점에서 가까운 정점을 먼저 탐색하는 방식.먼저 탐색하는 정점과 인접한 정점을 탐색하면서 큐에 삽입한다.큐에 넣기 전에 이전에 방문했는지 확인 필요. 2. 깊이 우선 탐색(DFS)시작 ..

CS/자료구조 2024.06.21

자료구조 - 빅오표기법, 선형 자료구조

최악 : 빅오 표기법평균 : 빅세타 표기법최선 : 빅오메가 표기법 빅오 표기법?입력 값(n)에 대한 수식에서 최고차항을 기준으로 알고리즘이 수행되는 최악의 시간 복잡도. O(1) : ex)  stack의 push, popO(log N) : ex) binary search 알고리즘, tree 형태 자료구조 탐색. 연산이 한 번 실행될 때 마다 데이터의 크기가 절반 감소하는 알고리즘 (log의 지수는 항상 2)O(N) : ex) 1중 for문 입력값(N)이 증가함에 따라 실행시간도 선형적으로 증가하는 알고리즘O(N log N) : ex) 퀵 / 병합 / 힙 정렬. O(N)의 알고리즘과 O(log N)의 알고리즘이 중첩된 형태O(N^2) : ex) 2중 For 문, 삽입/거품/선택 정렬. O(N)의 알고리즘과..

CS/자료구조 2024.06.21

데이터베이스 - ORM, 트랜잭션, 락, 이상, 정규화

ORM?객체와 관계형 데이터베이스를 매핑하는 도구를 의미.{}객체 ORM 관계형 데이터베이스 SQL문을 사용하지 않고 객체 지향적 코드를 작성할 수 있어서 코드의 가독성을 높이고 개발자 편의성을 증대할 수 있다.대표적인 ORM 프레임워크 :java- 하이퍼네이트. Hibernatepython- 장고. Djangoruby- 레코드. AvtiveRecord트랜잭션?테이터베이스의 상태를 바꾸기 위해 수행하는 작업, 일련의 연산. 트랜잭션의 특징 : ACID원자성(Atomicity) : 트랜잭션이 데이터베이스에 완전히 반영되거나 아예 실행되지 않아야함.일관성(Consistency) : 트랜잭션 수행이 완료된 데이터베이스는 일관성있게 유지되어야 한다.독립성(Isolation) : 수행 중인 트랜잭션에 다른 트..