일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- linux
- rhcsa
- data
- 빅데이터
- 설치
- 스프링
- docker
- 아마존
- 하둡
- sort
- Data Structure
- Redshift
- recursive
- big data
- storage
- 리눅스
- 자바
- Spring
- 스토리지
- algorithm
- 자료구조
- redhat
- java
- Amazon
- AWS
- 레드햇
- 재귀
- hadoop
- 도커
- Today
- Total
목록분류 전체보기 (60)
Developer MJ
Priority Queue(우선순위 큐) push, pop, show import java.util.Scanner; class Item { int data; Item(int _data) { data = _data; } } public class PriorityQueue { final static int MAX_QUEUE_SIZE = 100; static int heapSize = 0; static Item[] heap = new Item[MAX_QUEUE_SIZE]; static void initHeap() { heapSize = 0; } static boolean isFull() { if (heapSize + 1 > MAX_QUEUE_SIZE) { System.out.println("PQ is full..
더블 링크드 리스트 insert, extract ( remove ), show 구현 import java.util.Scanner; class Node { int data; Node prev; Node next; Node(int _data) { data = _data; } static void insert(Node _head, Node _node) { Node next = _head.next; _head.next = _node; _node.prev = _head; if (next != null) { next.prev = _node; _node.next = next; } } static Node extract(Node _head, int _data) { Node current = _head.next; whi..
단일 노드 YARN 클러스터 설치 하둡 배포판에 포함된 맵리듀스 예제 프로그램을 단일 워크스테이션에서 테스트 해볼 수 있도록 간소화된 설치 및 설정 방법이다. 예제 프로그램의 경로는 아래와 같다. /opt/yarn/hadoop-2.2.0/share/hadoop/mapreduce 아파치 하둡 다운로드 cd /root wget http://mirrors.ibiblio.org/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz mkdir -p /opt/yarn cd /opt/yarn tar xvzf /root/hadoop-2.2.0.tar.gz JAVA_HOME 설정 OS 사용자와 그룹 생성 groupadd hadoop useradd -g hadoop yarn us..
Hadoop YARN 의 배경 하둡 온디맨드 공유 HDFS 내에 존재하는 영속적인 데이터를 공유하기 위한 private computing cluster를 수동으로 배포하고 해체하는 multitenency 이슈를 해결하기 위해 개발된 하둡 플랫폼 범용 하드웨어의 공유 클러스터에서 작동하는 하둡 맵리듀스와 HDFS 인스턴스를 프로비저닝하고 관리하는 YARN의 선행 프로젝트 단점 : 데이터 로컬리티 : 맵리듀스 잡트래커는 HDFS 내 입력데이터 인접한 곳에 잡을 배치하려고하지만, HOD의 리소스매니저인 토크sms HDFS에 데이터가 어떻게 분산되어있는지 데이터 로컬리티에 대한 정보가 없기 때문에 적은 양의 큰 작업과 많은 양의 작은 작업을 야기해 작은 작업들이 호스트에서 동작하게 만들었다. 토크/마우이의 일시..
인덱스 대용량 테이블에서 필요한 데이터만 빠르게 엑세스 하기 위해 사용하는 오브젝트 인덱스는 구성하는 컬럼 순서를 기반으로 정렬되기 때문에 범위 스캔이 가능하다. 구조 B-tree 구조로 되어 있어 리프노드까지 빠르게 접근할 수 있고 데이터 정렬 순서에 따라 다음 데이터 리프노드와 연결. 상위 노드는 하위 노드들을 가르키는 주소값을 가지고 있고, 리프노드는 테이블 레코드의 주소값을 가지고 있다. Range Scan 조건절에서 인덱스 컬럼을 사용하면 정렬된 인덱스 트리를 스캔하면서 조건을 만족하는 데이터만 골라서 엑세스한다. 그래서 조건에 만족하지 않는 인덱스 내 탐색 및 데이터 레코드 엑세스를 줄여서 응답속도를 높여준다. 반면에 인덱스를 구성하는 컬럼을 조건으로 사용하지 않거나 인덱스 구성 컬럼 중에서 ..

대용량 데이터에서 일부 데이터를 빠르게 자주 읽는 OLTP성 작업은 원하는 데이터에 얼마나 빠르게 접근하는 지가 성능을 좌우한다. 그래서 SQL을 튜닝하여 불 필요한 데이터 스캔을 막음으로써 데이터 엑세스 속도를 높여 성능을 개선할 필요가 있다. 이에 대해 공부한 내용을 옵티마이저, 인덱스, 조인 순서로 정리하고자 한다. 참고로 대용량 데이터 가끔 Full Scan하는 경향을 띄는 OLAP 처리의 경우 튜닝의 주요 포인트가 Hash Join, 병렬처리 등이기 때문에 SQL 튜닝은 큰 효율을 발휘하지 못한다. SQL 옵티마이저 옵티마이저(Optimizer)는 SQL을 가장 빠르고 효율적으로 수행할 최적(최저비용)의 처리경로를 생성해 주는 DBMS 내부의 핵심엔진이다. 사용자로부터 입력 받은 SQL문장과 데..