빅데이터/Hadoop (7) 썸네일형 리스트형 [Hadoop] corrupt/missing block Datanode의 디스크가 문제가 생기던지 혹은 Namenode에 너무 많은 Metadata를 가지고 있어서 block에 대한 문제가 발생할 수 있습니다. Corrput block, Missing block이 이에 따른 문제입니다. Corrput block block replicas 중에서 일부가 손상된 상태입니다. Namenode는 주기적으로 Datanode로 부터 heartbeat와 block report를 받기 때문에 Datanode 별 최신정보를 업데이트 합니다. 그렇기 때문에 corrupt block은 Namenode가 자동으로 채워줍니다. 복구가 가능한 상황이기 때문에 별도의 리포트 또한 없습니다. 만약 Missing block 복제본이 아예 없는 경우로 block이 복구 불가능한 상태입니다... Block Count / Small files 해결 Block Count snappy, gzip 등 compress/decompress 라이브러리들이기 때문에 어느 데이터 파일 포맷에 사용하는지, 그리고 데이터(테이블) 특성에 따라 성능은 달라질 수 있습니다. gzip Deflate알고리즘을 사용하며, Snappy 보다 더 많은 CPU리소스를 사용하지만 더 높은 압축을 할 수 있습니다. 그러나 압축률이 snappy보다 약 2배 높기 때문에 자주 사용하지 않는 콜드 데이터(잘 사용하지 않는 백업용 데이터)에 적합합니다. 실제로 HIVE 통해서 MapReduce의 결과로 cpu extenseive time을 확인했을 때 snappy보다 더 높은 시간이 나왔습니다. snappy 구글에서 자체 개발한 압축 라이브러리로, 압축률을 적당한 수준으로 제공하면서 빠르게.. 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와 함께.. 하둡 아키텍처 참고 글 [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.. [Hadoop/Impala] File Descriptor & Data block count 문제 하둡을 운영할 때, small files problem, increasing data block count 등 이러한 문제를 보는 경우가 있다. Hadoop의 block size는 128MB인데 파일 사이즈가 128MB보다 작으면 성능이 떨어진다. 해당 문제가 있으면 다음과 같은 문제를 유발 할 수 있다. Hdfs에서 데이터를 찾거나 MapReduce 작업 시 Namenode, AM이 관리해야 할 block 수가 많아지기 때문에 성능이 떨어진다. 물론 여러 해결책 중 Clouder Manager 혹은 Hadoop에서 limit(임계치)를 올리는 방법이 있을 수 있지만 해당 방안은 최후로 쓰는게 좋을 듯하다. 여러 방안을 찾다가 찾아낸 해결책이다. 1. [Hive]hive 작업 시 작은 파일들 합치기 sm.. 이전 1 다음