일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- 우선순위큐
- ES6
- 시뮬레이션
- priorityqueue
- procedure
- wrapper class
- Spring
- greedy
- JPA
- hdfs
- Parquet
- 구현
- database
- S3
- Algorithm
- bigdata
- BFS
- namenode
- boto3
- BIT연산
- MySQL
- ACID
- datanode
- SQL
- Transaction
- EventScheduler
- spark
- MVC
- 백준
- Today
- Total
목록전체 글 (20)
IT 개발일지

1. Apache Parquet- 대량의 데이터를 효율적으로 저장하는 방식 중 하나, 하둡 생태계에서 많이 사용되는 파일 포맷- 열 지향 저장 방식 1. Parquet 특징- 적은 오버헤드만으로도 중첩 데이터(nested data)를 효율적으로 저장할 수 있음- 열 기반으로 저장하기 때문에 특정 열만 저장하는 쿼리의 경우 전체 데이터를 읽지 않아도 된다.- 같은 열에 동일한 타입의 데이터가 많기 때문에, Snappy, gzip, LZO 등 다양한 압축 알고리즘을 사용할 수 있다.- 스키마 기반 저장을 하여 데이터의 구조를 명확히 할 수 있다- 대용량 데이터에 대한 배치 처리에 적합하며, Spark, Hive, Presto 등과 같은 데이터 처리 엔진과의 통합 용이하다. 2. Parquet 데이터 타입-..

1. Limitation of MapReduce- 여러 job을 만들고 실행하기 위해서는 복잡한 과정을 거쳐야 해서 multi-pass 분석에서는 원활하지 않음- interactive, ad-hoc query에서는 불리함- 실시간(real-time) 처리에서는 불리함 => 주로 batch 작업에 용이- HDFS => intermediate data : file disi IO + reduce 에서 불러오려면 disk io + outputdata를 hdfs에 씌우려면 output => replication이 disk-io에 의해 느림! 2. Apache Spark1. Spark 특징 - 클러스터 환경에서 데이터를 병렬로 처리하는 오픈소스 엔진- python, Java, 스칼라, R 등의 언어를 지원- 인 메..

Event Scheduler정의- DB내에서 스케줄링이나, 특정 스케줄에 맞춘 이벤트를 실행할 때 사용한다.- Unix의 crontab이나 Windows의 Task Scheduler와 비슷하다.- Trigger과 혼동할 수 있는데, Trigger은 특정 SQL statement가 지정된 테이블의 데이터를 변화시킬 때 자동으로 발현하는 것이고, event는 미리 정해진 시간에 따라 interval하게 진행된다는 차이가 있다. 사용하는 이유1. 주기적, 또는 특정 시간에 작업이 필요한 경우에 자동으로 처리할 수 있다.- 주기적으로 발생하는 작업을 수작업으로 할 필요없이 자동화할 수 있다.- 정기적인 데이터 백업- 시간의 흐름에 따른 데이터 변경 2. 실시간 처리 시 DB에 과부하가 걸리는 작업을 스케줄링할 ..

HDFS 설치1. Pre-requirement포스트 작성 기준 사용하고 있는 환경입니다. 1. Java 1.8(OpenJDK)2. Ubuntu 20.04 - 기타 Linux, MacOS도 가능3. Naver Cloud Platform(s2-g2-s50(vCPU 2EA, Memory 8GB, [SSD]Disk 50GB)) - 최소 요구사항 : 1Core 2GB Memory(AWS EC2 Free-Tier 가능) Operation Modes 1. Pseudo-distributed operation mode (우리가 할 모드)- 여러 클러스터를 모두 만들고 흉내내볼 수 없으니, 우선 single-node가지고 disributed node를 흉내내보는 모드다. 2. Standalone Operation- 기..

Stored Procedure정의- 일련의 SQL 쿼리를 선언하여 MySQL에 저장하고 해당 SQL문을 함수처럼 실행하기 위한 쿼리의 집합- 만들어 두기만 하면 함수처럼 편하게 사용할 수 있다. 사용하는 이유1. 하나의 요청으로 여러 SQL문을 실행할 수 있어, 네트워크 부하를 줄일 수 있다.- 50줄 이상의 복잡한 Select 문장이 있고, 각 실행시마다 Where 절 조건문이 조금식 변한다고 가정할때, 이 문장을 저장 프로시저에 넣을 경우 네트워크를 통해 전달되는 데이터 소통량이 상당히 감소 => 해당 프로시저가 자주 실행될수록 성능향상 효과 증대- 즉 매번 전체 쿼리 텍스트를 네트워크를 통해 전달될 필요가 없는 것! 2. 성능 향상 또한 가능하다. 저장 프로시저가 최초로 실행되면, SQL 서버는 해..

Namenode & Datanode구조- 하둡은 마스터-워커(master-worker) 패턴으로 동작한 네임노드와, 데이터노드로 구성되어 있음. 1. 네임노드(NameNode)- 파일 시스템의 네임스페이스(namespace)를 관리(파일시스템의 트리와 해당 트리의 모든 파일, 디렉토리의 메타데이터를 관리)- 파일을 저장, 읽기작업 관리하며 메타데이터를 유지하며 어떤 파일이 어떤 블록에 있고, 어떤 데이터노드에 저장되는지 파악- 즉, 어떤 파일들이 어떤 블록에 속해있고, 블록들이 어떤 데이터노드에 관리되어 있는지 등 메타정보를 저장하면서 파일 시스템을 관리하는 주체라고 보면 된다. * FsImage : 파일의 매핑된 블럭 등을 포함한 전체 네임스페이스 정보를 저장한다.* EditLog : FsImage정보..

HDFS (Hadoop Distributed File System)등장 배경1. 다수 개의 디스크에 저장의 한계- 하나의 Drive에 모든 데이터를 저장하는 것은 많은 시간이 걸린다- 그렇다면 여러 개의 디스크에 데이터를 나누어서 저장하면, 더 효율적이지 않을까?- 예상 문제 a. Hardware Failure에 취약(디스크에 문제가 생겨 데이터 유실 등) => replication으로 해결 b. 흩어져 있는 데이터를 combine하는 데 리소스 및 문제 발생 가능성 2. 분산 파일 시스템의 필요성 부각- 하나의 디스크보다 훨씬 많은 데이터를 저장하기에 separate machines에 partition하는 작업이 필요- 네트워크 베이스로 여러 개의 머신을 관리하는 분산 파일 시스템(distrib..

실습1. AWS Access Key 발급- 우선 AWS에서 자신의 이름 클릭 > Security credentials(보안 자격 증명) 클릭- Access Keys 항목에서 key가 없다면 하나 생성한다.Acess key를 발급받아야 하는 이유 - AWS의 CLI, API를 사용할 때 인증이 되는 Access Key는 크게 다음과 같이 나뉜다. 1. 엑세스 키 ID 2. 보안 엑세스 키- 따라서 이후에 서술된 boto3라이브러리를 활용해 실습을 진행하기 위해서는 AWS CLI를 통해 S3의 각종 설정을 하기 위해서는 미리 Access Key 설정은 필수다. 2. AWS 설정 파일 생성- Linux, MacOS기준으로 다음과 같이디렉토리를 생성하고 설정 파일을 생성한다.mkdir ~/.awsvim ~..