본문 바로가기

[빅데이터]

[빅데이터] 적재1 - 대용량 로그 파일 적재

내/외부 원천 데이터 정리

 

내/외부 원천 데이터 정리
정형 데이터 데이터베이스
(관계/계층/객체/네트워크)
반정형 데이터 HTML, XML, JSON, 서버로그
비정형 데이터 소셜미디어, 문서, 이미지, 오디오, 비디오, loT 

 

1. 빅데이터 적재에 활용하는 기술 

 

* 하둡

하둡은 빅데이터의 핵심 소프트웨어이다. 하둡은 크게 두가지 기능이 있는데, 첫 번째가 대용량 데이터를 분산 저장하는 것이고, 두번째는 분산 저장된 데이터를 가공/분석 처리하는 기능이다. 하둡은 두번째 기능인 데이터 가공/분석을 위해 분산 병렬 처리 기술을 사용한다.

 

하둡의 맵리듀스

분산 병렬 처리에서의 핵심은 여러 컴퓨터에 분산 저장돼 있는 데이터로부터 어떻게 효율적으로 일을 나눠서(Map)실행 시킬 수 있느냐고, 여러 컴퓨터가 나눠서 실행한 결과들을 어떻게 하나로 모으냐(Reduce)는 것이다.

이를 쉽고 편리하게 지원하는 프레임워크가 하둡의 맵리듀스(MapReduce)다.

 

하둡 아키텍처

하둡 1.x에서 클라이언트에서 하둡에 파일을 읽기/쓰기 할대는 우선 NameNode를 참조해서 파일을 읽기/쓰기할 DataNode 정보를 전달받고 클라이언트는 해당 정보를 이용해 DataNode에 직접 연결해 파일을 읽기/쓰기한다. 하둡에 적재된 데이터를 분석해야 할 때는 클라이언트가 JobTracker에게 맵리듀스 실행을 요청하게 되며, JobTracker가 스케줄링 정책에 따라 작업할 DataNode/TaskTracker를 선정한다.

선정된 TaskTracker 맵리듀스 프로그램이 전달되어 저장된 파일들을 이용해 맵리듀스 작업들이 실행된다.

하지만 이와 같은 하둡1.x의 아키텍처에서 NameNode의 이중화 기능 미지원으로 SPOF(단일 장애 접점)가 존재 한다는 점이다. 하둡의 파일 적재/관리를 위해서는 NameNode를 참조하는데, NameNode에 문제가 생기면 하둡 클러스터 전체에 장애가 발생했다. 

 

이에 하둡 2.x아키텍처에는 클라이언트가 DataNode로부터 파일을 읽고 쓰기 전에 NameNode를 참조하게 되는데 1.x과 다르게 Active/Standby로 이중화돼 있음을 알 수 있다. 또한 메모리에서 관리되는 파일들의 네임스페이스 정보를 주기적으로 관리하기 위해 JournalNode가 추가됐고 주키퍼까지 사용됐다.

무엇보다도 큰 변화는 Resource Manager, Node Manager가 생긴 것이다.  이는 효율적인 잡 스케줄링이 가능해 졌고 DataNode의 리소스 불균형 현상 문제도 해결됐다. 

이렇게 변화된 하둡 2.x 플랫폼을 YARN(Yet Another Resource Negotiator)이라고 한다.

 

하둡 활용 방안 

내 프로젝트에서 스마트카 상태 정보 로그는 비교적 큰 크기의 파일로서, HDFS의 특정 디렉터리에 일자 단위로 파티션해서 적재한다. 이렇게 일 단위로 분리 적재된 데이터는 다양한 시계열 집계 분석을 효율적으로 수행할 수 있다.

파일럿 환경에서는 이러한 일련의 작업을 처리하기 위해 주로 하이브를 사용하며, 대규모 하이브 작업에서는 분산 병렬 처리를 위해 맵리듀스 프로세스가 내부적ㄹ으로 작동한다. 하이브에서 처리된 결과는 다시 HDFS의 특정 영역에 저장되고 분석하여 사용된다.

 

cf) HDFS란?(Hadoop Distributed File System)

대용량 파일을 분산된 서버에 저장하고, 그 저장된 데이터를 빠르게 처리할 수 있게 하는 파일 시스템

 

* 주키퍼

수십~수천 대의 서버에 설치돼 있는 빅데이터 분산 환경을 더욱 효율적으로 관리하기 위해서는 서버 간의 정보를 쉽고 안전하게 공유해야 한다. 공유된 정보를 이용해 서버 간의 중요한 이벤트를 관리하면서 상호작용을 조율해 주는 코디네이터 시스템이 필요한데, 이것이 바로 분산 코디네이터인 아파치 주키퍼(Apache Zookeeper)다. 

 

주키퍼 아키텍처

주키퍼는 3대 이상의 홀수 개의 서버로 구성돼야 하며, 그중 반드시 1대는 리더 서버가 되고 나머지 서버는 팔로워 서버가 된다. ZNode정보를 전달하고 브로드캐스트 함.

 

주키퍼 활용방안

내 프로젝트에서는 주키퍼를 직접적으로 활용하지는 않지만, 하둡,HBase,카프카,스톰의 내부에서 주키퍼에 의존해 클러스터 멤버십 기능 환경설정의 동기화 등을 사용하고 있어 없어서는 안될 소프트웨어이다.

 

 

'[빅데이터]' 카테고리의 다른 글

[빅데이터] 분석  (0) 2023.05.02
[빅데이터] 탐색  (0) 2023.05.02
[빅데이터] 적재2 - 실시간 로그/분석  (0) 2023.04.26
[빅데이터] Cloudera Manager  (0) 2023.04.25
[빅데이터] 수집  (0) 2023.04.24