본문 바로가기

전체 글

(750)
[Real MySQL] MySQL 아키텍처 보호되어 있는 글입니다.
[하둡] 하둡 분산처리시스템 구성요소 분산 처리 시스템 하나의 작업에 여러대의 machine을 두고, MPI(Message Passing Interface)를 사용하는 시스템입니다. 하지만, 분산처리 시스템에도 문제가 있습니다. 분산 처리 시스템의 문제점- 복잡한 프로그래밍(데이터 프로세스의 sync 유지) : MPI가 프로그래밍 하기 굉장히 복잡합니다.- Partial failures : 수많은 컴퓨터를 사용하는 경우에 일부의 컴퓨터가 고장나는 경우 시스템이 동작하지 않습니다. GFS(구글파일시스템)과 MapReduce가 나오기전, 분산처리 시스템은 Message Passing Inteface가 너무 복잡하여 프로그래밍하기가 어려웠습니다. 또한, 수만대의 분산 컴퓨터들이 하나만 고장이나도 동작을 안하게 되는 문제가 있었습니다. 이 문제를 ..
[하둡] 아파치 하둡이란? 아파치 하둡이란? Apache Hadoop은 빅데이터를 저장, 처리, 분석할 수 있는 소프트웨어 프레임워크입니다. 아파치 하둡의 특징은 다음과 같습니다.- Distributed: 수십만대의 컴퓨터에 자료 분산 저장 및 처리 - Scalable: 용량이 증대되는 대로 컴퓨터 추가 - Fault-tolerant: 하나 이상의 컴퓨터가 고장나는 경우에도 시스템이 정상 동작 - Open source: 공개 소프트웨어 구글이 나오면서 굉장히 많은 데이터를 가져온 사례가 있었습니다. 구글에서 데이터들이 빅데이터가 되었고, 빅데이터를 분석하고 처리하는 프레임워크가 존재하지 않았습니다. 그래서 구글이 생각한게 데이터를 모아서 처리할 수 있는 프레임워크가 필요하다고 생각하였고, 실제 빅데이터를 처리할 수 있는 프레임워크..
[파일I/O] 자바 Path 및 메타데이터 파일 속성 NIO.2 Path 클래스 NIO.2 API(JSR 203: More New I/O APIs for the Java Platform)를 시작하기에는 새 추상 클래스 java.nio.file.Path 가 좋습니다. I/O 작업과 관련된 모든 애플리케이션은 Path 클래스의 강력한 기능을 이용합니다. 모든 I/O 작업이 Path 리소스에 기반하므로 Path 클래스는 NIO.2에서 가장 널리 사용하는 클래스입니다.Path 클래스 사용 용도는 1) 문법적인 용도로 파일시스템에 접근하지 않고 경로를 조작하는 작업에 주로 사용됩니다. 이는 메모리상에서 행해지는 논리적 조작입니다. 2) 경로를 참조하는 파일에 대한 작업에서 쓰이게 됩니다. NIO.2 API 메타데이터 파일 속성 파일이나 디렉토리가 숨김(Hidden)..
[병렬프로그래밍] 멀티 스레드와 동기화 멀티 스레드와 동기화 스레드를 사용하게되면 필연적으로 만나게되는 문제가 바로 동기화(Synchronization)입니다. 아래는 여러개의 스레드가 실행되는 과정을 도식화한 그림입니다. 여러개의 스레드들이 있다면 이 스레드들은 서로 번갈아가면서 실행이 될 것입니다. CPU가 하나이기때문에 OS의 스케줄링 정책에 따라 쓰레드를 조금씩 실행시키는 방식이 됩니다. 어떤 스레드가 실행될지는 OS 스케줄러만 알고 있습니다. - 애플리케이션에서 하나 이상의 스레드 사용시 새로운 스레드를 한개라도 생성해서 운영한다면 멀티스레드 프로그램이 됩니다.- 스레드는 별도로 실행되는 하나의 실행이므로 동시에 여러 스레드가 실행되면 스레드들이 공유하는 자원에 대해 동기화가 발생할 수 있습니다. 만약 스레드들이 서로 침범하는 영역없..