빅데이터 (22) 썸네일형 리스트형 MapReduce 원리 MapReduce의 기본원리는 입력 파일을 일정 단위로 나눠서 처리하는 Mapper과 개별적인 결과를 집계하는 Reduce로 나누어져있습니다. InputSplits MapReduce 작업에서 map task를 구성하는 작업의 단위입니다. 기본적으로 HDFS 기본 block 단위(126 or 256mb로 나누게 됩니다. 이렇게 단위를 나누어서 여러 node에 분배하면 해당 node에서 작업을 진행하는 data locality라는특징을 갖습니다. Map 데이터를 key,value 형태로 만들어서 작업을 처리하는 과정입니다. 맵 결과는 우선 메모리 버퍼에 저장되지만 limit을 넘으면 디스크에 spill됩니다. Combiner 네트워크의 bottleneck을 줄이기 위해 Reducer로 보내기 전에 적은 양의.. Hadoop HA 아키텍처 NN, JournalNode 하둡은 HA는 NN이 하나가 아닌 Standby NN이 같이 있어서 Zookeeper가 모니터링 하고 있다가 ZKFC통해서 standby를 active로 승격시키는 구조로 이루어집니다. Active NN과 Standby NN은 Journal node를 통해서 트랜잭션 내역을 공유합니다. Active만 Journal node에 있는 edits log(로컬 디스크에 저장)에 대한 write 권한이 있습니다. 그러면 QJM을 통해서 Journal node 전체에 해당 내역을 쓰고, Standby NN은 해당내역을 반영시킵니다. 그리고 edits log를 주기적으로 fsimage에 병합(merge)시킵니다. 해당 작업은 CPU와 IO가 많이 필요해서 별도의 노드에서 수행하고 다시 N.. Yarn 동작 원리 & Scheduler ResourceManager Client가 JOB을 제출하면 ResourceManager가 클러스터들의 자원들을 관리하며, 어디에 자원을 할당할지 결정하게 됩니다. 크게 Scheduler와 AM으로 구성되어 있습니다. AM은 job제출 수락하고, ApplicationID 생성하며, Application Master를 생성합니다. 그 후 Application Master는 리소스 할당 위해 Scheduler에게 요청하여, Scheduler는 Node Manager한테 보고받은 사항 바탕으로 컨테이너 할당합니다. 참고로 워커 노드에서 컨테이너 생성은 NodeManager가 합니다. Application Master 단일 작업은 하나의 Application Master를 갖으며, Node Manager와 함께.. NIFI Clustering NIFI의 클러스터 특징은 하둡의 namenode, 카프카의 controller 같은 SPOF 위험성이 없는 zero-leader Clustering 아키테처를 가지고 있습니다. 각 노드들에 동일한 flow를 가지고 있고, 각 노드에 있는 데이터에 대해 동일하게 처리하게 됩니다. Zookeeper가 노드 중 하나를 코디네이터로 정해서, 코디네이터는 각 노드들의 상태 체크하고, 연결을 끊거나 추가하는 역할을 하게 됩니다. * Primary Node 주키퍼에 의해서 선출됩니다. 클러스터 내에는 반드시 Primary Node 하나가 있는데 GetSFTP경우에 단일 노드에서만 프로세서가 작동해야합니다. 그래야 한 번만 외부데이터를 가져오게 됩니다. 다른 경우에는 Round-robin 등 다양한 로드밸런스 전략이.. 주키퍼(1) 주키퍼란 분산 시스템을 위한 코디네이터로, 분산 시스템의 메타 정보 관리하고, 마스터/코디네이터 등을 선출합니다. 카프카 경우는 컨트롤러, NIFI는 코디네이터, 하둡은 NN 선출합니다. 그 외, 락/동기화 서비스, 클러스터 설정 정보 최신 유지 등 역할 합니다. 클러스터에 쓰기 연산이 빈번할 경우 경쟁상태에 들어갈 가능성이 커집니다. 이는 데이터 불일치를 발생시킵니다. 이 때, 클러스터 전체를 대상을 동기화해( 락을 검 ) 경쟁상태에 들어갈 경우를 사전에 방지합니다. Master-Slve 아키텍처 기반의 여러 주기퍼 서버로 이루어진 앙상블, 그리고 앙상블 데이터 불일치 방지하고자 쿼럼 그리고 데이터를 트리 형태로 key-value 구조로 갖는 znode로 이루어져있습니다. znode는 key를 통해 접.. 하둡 아키텍처 참고 글 [journal node] https://eyeballs.tistory.com/251 [Hadoop] 고가용성(HA) 설명과 주키퍼 동작 방법 하둡2부터는 High Availability (이하 HA)라는 용어를 사용합니다. High Availability란 하나의 네임노드와 보조네임노드를 설정하는것이 아닌, 두 개의 네임노드를 설정하는 방법입니다. NameNode 에 장애가. eyeballs.tistory.com [quorum] 쿼럼 개수 : 2n+1 과반수 : (n+1)/2 https://paulsmooth.tistory.com/156 [zookeeper] 과반수 구성 이유 (majority voting/quorums) zookeeper를 구성하는 경우 과반수 선출(majority voting/quo.. [빅데이터] LOCK & Sqoop 이슈 - ORA-01555 LOCK 종류(기본 개념) Shared lock (공유 잠금, Read lock) 어떤 트랜잭션에서 데이터를 읽고자 할 때 다른 shared lock은 허용이 되지만 exclusive lock은 불가하다. 리소스를 다른 사용자가 동시에 읽을 수 있게 하되 변경은 불가하게 하는 것이다. - 어떤 자원에 shared lock이 동시에 여러개 적용될 수 있다. - 어떤 자원에 shared lock이 하나라도 걸려있으면 exclusive lock을 걸 수 없다. Exclusive lock (배타적 잠금, Write lock) 어떤 트랜잭션에서 데이터를 변경하고자 할 때 해당 트랜잭션이 완료될 때까지 해당 테이블 혹은 레코드(row)를 다른 트랜잭션에서 읽거나 쓰지 못하게 하기 위해 Exclusive lock을 .. [ELK] ES, Kibana ElasticSearch - 분산 검색 엔진으로 보통 Cluster구성하고, shard로 데이터 저장하며 replica를 저장하기 때문에 높은 HA를 제공한다. - 실시간으로 색인되어 데이터 검색과 분석 가능 - JSON 기반으로 저장해서 Rest API 기반으로 처리한다. Analzer 데이터가 들어오면 Tokernizer, Token Filter가 특정 기준으로 토큰을 분리해서 검색 가능하도록(searchable) 가공한다. Term Query vs Full-Text Query Term Query경우에는 analyzer거치지 않고 검색어와 일치하는 문서 찾기. 정형 데이터 예시로는 날짜, IP주소, 제품ID 등. Full-Text Query경우에는 analyzer 거쳐서 좀 더 복잡한 조회에 적합 R.. 이전 1 2 3 다음