HDFS Hadoop Distributed File System 데이터 저장을 위한 것. NameNode(master) DataNode(slave)가 있다. 데이터노드는 여러개 있다. 데이터를 여러 블록으로 나눠서 저장한다. 기본값은 128메가인데 바꿀 수 있다. 반응속도보다는 시간당 처리량에 최적화 돼있다. 한번 쓰고 여러번 읽는 모델에 적합하다. 즉, write가 한번 있으면 수정이 없는 모델에 적합하다. 계산 할 때 자료가 워낙 크니까 자료를 옮기기 보다는 계산 작업을 자료 쪽으로 옮긴다. 데이터노드에서 직접 알고리즘을 처리하는 건가. 이걸 데이터 지역성이라 한다. 네임노드에 저장되는 메타데이터는 네임스페이스와 블록 정보가 담겨있는 Fsimage파일과, 파일의 생성, 삭제에 대한 트랜잭션 로그, 메모리에 저장하다가 주기적으로 생성되는 Edits파일이 있다. 네임노드가 구동되고 나면 Edits파일이 빠른 속도로 주기적으로 생성된다. 이 때문에 디스크 부족이 발생하고 재구동 되는 시간도 느려진다. 따라서 세컨더리 네임노드가 Fsimage와 Edits파일을 주기적으로 머지해서 Edits파일을 삭제하기 때문에 디스크 부족 문제를 해결한다. Yarn Yet Another Resource Negotiator Cluster resource management 노드의 뭉텅이를 관리한다. Resource Manager(master) NodeManager(slave)가 있다. 하둡2.0부터 제공되는 리소스 관리 플랫폼으로 MapReduce의 단점을 보완한다. 하둡1.0에서는 MapReduce의 JobTracker가 두 가지 기능을 했는데 하나는 클러스터 전체의 리소스 관리이고 다른 하나는 잡 스케쥴링 및 모니터링이다. TaskTracker는 slave node에서 map reduce 작업을 수행했다. YARN(하둡2.0)에서는 JobTracker의 기능은 ResourceManager, Application Master의 두 가지 프로세...
Apache MPM: 아파치 서버가 클라이언트의 요청을 자식 프로세스들에게 분배하는 모듈이다. 동접자수가 많거나 확장성이 필요한 사이트는 worker 방식을 택하고, 안정성과 오래된 소프트웨어와 호환성이 필요한 사이트는 prefork 방식을 사용한다. /docs/conf/extra/httpd-mpm.conf파일에서 각 모듈에 대한 설정을 바꿀 수 있다. Prefork 실행 중인 프로세스를 메모리 영역까지 미리 복제해서 준비한다. 자식 프로세스가 각각 하나의 스레드를 가지며 자식 프로세스는 총 1024개를 가질 수 있다. 스레드 간 메모리 공유가 없어서 안정적이지만 메모리가 많이 필요하다. 응답 프로세스를 미리 띄워놓고 클라이언트 요청 시 자식 프로세스가 반응한다. 몇몇 idle process가 유지돼있으므로 요청이 들어오면 바로 처리하여 빠르지만 동시에 많은 접속이 들어오면 많은 자원을 쓰게 된다. 싱글 CPU 혹은 듀얼 CPU에서 성능이 좋다. 안전하지 않은 제 3자가 만든 모듈을 사용할 수 있고, 디버깅이 빈약한 플랫폼에서 쉽게 디버깅 할 수 있다. StartServers : 아파치 시작시 생성되는 기본 프로세스 개수 MinSpareServers : 최소 프로세스의 개수 MaxSpareServers : 최대 프로세스의 개수 MaxClients : 아파치 시작시 최대로 실행할 자식프로세스의 개수 MaxRequestWorkers : 동시에 처리할 수 있는 최대 연결 수(기본적으로는 256까지 사용가능하며, 컴파일 전에 파일을 수정(./server/mpm/prefork/prefork.c)하면 1024까지 올릴 수 있다.) MaxConnectionsPerChild : 서버 프로세스가 종료되기 전에 제공되는 최대 연결 수입니다. 0의 경우 제한이 없다라는 의미다. Worker Prefork보다 메모리 사용량이 적기 때문에 동시 접속자가 많고 통신량이 많은 서버에 적절하다. 프로세스당 최대 64개의 스레드 처리가 가능하고...
댓글
댓글 쓰기