Lambda 구조

3494 단어 Hadoop
글 목록
  • 1. 배경
  • 2. 왜 Lambda Architecture
  • 를 사용 합 니까?
  • 3. 구성
  • 3.1 Batch Layer
  • 3.2 Speed Layer
  • 3.3 Serving Layer
  • 4. Lambda Architecture 의 수익
  • 1. 배경
    Q :
    A : , , , 。
    2. 람 다 아 키 텍 처 를 왜 쓰 나
    빅 데이터 처리 시스템 에서 데이터 처리 의 신뢰성 과 실시 성 은 한 쌍 의 모순 으로 왕왕 겸 할 수 없다.신뢰성 이란 어떠한 이상 이 발생 한 상황 에서 도 데이터 처 리 는 다시 잃 어 버 리 지 않 고 최종 적 으로 정확 한 결 과 를 얻 을 수 있다 는 것 을 말한다.실시 성 이란 데이터 가 입력 에서 처리 완료 출력 까지 의 시간 간격 을 말한다.일반적으로 Hadoop MapReduce 와 같은 일괄 처리 시스템 에 있어 신뢰성 이 높 고 실시 성 이 떨어진다.Storm 과 같은 흐름 처리 시스템 에 있어 서 는 상황 이 정반 대 이다.그렇다면 데이터 처리 시스템 이 높 고 신뢰 할 수 있 으 며 낮은 지연 을 할 수 있 는 방법 은 없 을 까?람 다 아 키 텍 처 가 이 문제 의 답 이다.
    Lambda Architecture 는 다음 과 같은 수 요 를 만족 시 키 기 위해 서 입 니 다.
    •              
    •        
    •           
    •            
    

    Lambda Architecture 는 batch layer, speed layer, serving layer 로 구성 되 어 있 습 니 다.
    입력 단 에서 데 이 터 를 집중 적 으로 수신 하고 데 이 터 를 복사 하여 각각 batch layer 와 speed layer 로 가 져 옵 니 다.
    3. 구성
    3.1 Batch Layer
    • 이 층 의 기능 은 주로 두 가지 가 있다.
    1.        
    2.             ,        view
    

    • Batch layer 의 직책 은 데이터 처리 의 정확성 과 신뢰성 을 확보 하 는 것 입 니 다.
    • Batch layer 는 먼저 데 이 터 를 HDFS 에 원본 형식 으로 저장 하여 시스템 의 신뢰성 을 강화 합 니 다.그리고 Hadoop MapReduce 작업 을 이용 하여 데 이 터 를 처리 하고 결 과 를 저장 합 니 다 (이러한 처리 후의 데 이 터 를 batch view 라 고 합 니 다).Hadoop 작업 은 매우 좋 은 노 봉 성 을 가지 고 있어 운행 과정 에서 각종 이상 이 발생 할 때 데 이 터 를 손실 하지 않 는 다.저장 시스템 에 있어 이런 일괄 처리 방식 은 무 작위 읽 기, 추가 쓰기 만 필요 하고 무 작위 쓰기, 잠 금, 데이터 일치 성 등 문 제 를 처리 할 필요 가 없 기 때문에 저장 시스템 의 설 계 를 크게 간소화 했다.그러나 batch layer 는 데이터 처리 지연 이 매우 크 고 보통 몇 시간 에서 며칠 입 니 다.
    3.2 Speed Layer
    • Speed layer 의 직책 은 모든 실시 간 처리 수 요 를 만족 시 키 는 것 이다.
    • Speed layer 는 보통 Storm 과 같은 스 트림 컴 퓨 팅 플랫폼 을 바탕 으로 빠 른 증분 식 알고리즘 을 통 해 분 급, 초 급, 심지어 밀리초 급 으로 데 이 터 를 읽 고 분석 하 며 저장 합 니 다.저장 시스템 에 대해 서 는 지속 적 인 update 작업 을 지원 해 야 하기 때문에 디자인 이 복잡 합 니 다.문 제 를 간소화 하기 위해 서 는 보통 창 을 그 리 는 체 제 를 사용 하여 한 동안 의 데 이 터 를 저장 합 니 다. 창 을 그 리 는 시간 은 보통 batch layer 의 데이터 처리 와 일치 합 니 다.
    • 스 트림 처 리 는 메모리 로 계산 하 는데 이것 은 이상 (예 를 들 어 업그레이드 나 작업 노드 이상) 이 발생 할 때 데이터 의 손실 이나 계산 결과 의 오 류 를 초래 할 수 있다 는 것 을 의미한다.그러나 Lambda Architecture 는 이러한 문 제 를 지나치게 고려 할 필요 가 없습니다. 다음 batch layer 작업 은 모든 데 이 터 를 다시 처리 하고 정확 한 결 과 를 얻 을 수 있 기 때 문 입 니 다.
    3.3 Serving Layer
    • Serving layer 의 직책 은 speed layer 출력 데 이 터 를 batch layer 출력 데이터 에 merge 하여 완전한 출력 데 이 터 를 얻 고 HBASE 와 같은 NoSQL 데이터베이스 에 저장 하여 온라인 검색 응용 에 서 비 스 를 제공 하 는 것 입 니 다.batch 계산 결과 위 에 meger 소량의 실시 간 데이터 가 있 는데 그 결 과 는 완전히 batch 계산 을 사용 하 는 것 에 비해 매우 좋 은 근사 성 을 가진다.
    4. Lambda Architecture 의 수익
    • 알고리즘 은 역사 데이터 와 단기 실시 간 데 이 터 를 동시에 분석 하여 정확성 과 실시 성 을 동시에 고려 할 수 있 습 니 다.
    • 저장 매체 에 대한 무 작위 기록 이 크게 줄 어 들 고 성능 이 향상 되 었 습 니 다.
    • Batch Layer (HDFS 에) 는 원본 데 이 터 를 저장 하여 인위적인 오류 로 인 한 데이터 손실 을 피 할 수 있 습 니 다.
    잘못 사용 하 다Speed Layer 에서 처 리 된 데이터 도 Batch Layer 에 계속 기 록 됩 니 다. Batch Layer 에서 재 계산 한 데이터 세트 가 Speed Layer 에서 처리 한 데이터 세트 를 포함 하면 현재 Realtime View 를 버 릴 수 있 습 니 다. 이 는 Speed Layer 처리 에 도 입 된 오 류 를 Batch Layer 에서 재 계산 할 때 수정 할 수 있 음 을 의미 합 니 다.
    복잡성 격 리Batch Layer 는 오프라인 데 이 터 를 처리 하여 잘 제어 할 수 있 습 니 다.Speed Layer 는 증분 알고리즘 으로 실시 간 데 이 터 를 처리 하 는데 복잡성 이 Batch Layer 보다 훨씬 높다.Batch Layer 와 Speed Layer 를 분리 하여 복잡성 을 Speed Layer 로 격 리 하면 전체 시스템 의 노 봉 성과 신뢰성 을 높 일 수 있다.
    물론 이런 수익 을 얻 는 데 도 대가 가 있다.Batch layer 와 speed layer 는 사실상 중복 계산 을 했다.자원 의 측면 에서 볼 때 Lambda architecture 는 더 많은 자원 을 소모 했다.

    좋은 웹페이지 즐겨찾기