"에디터의 참고"의 단점 Hadoop의 미 덕-큰 대기 시간, 느린 응답, 및 복잡 한 작업으로 스 탁 있습니다. 널리 비판 하지만 기본적으로 큰 데이터 헤게모니를 마련 하는 Hadoop에 창조에 대 한 수요가, 많은 오픈 소스 프로젝트는 Hadoop의 실시간 특성을 위해 목표를 만든 폭풍은 알고 보 니이 시간에, 폭풍은 배포, 무료 오픈 소스 높은 결함 허용 실시간 컴퓨팅 시스템입니다. 폭풍 쉽게 연속 흐름 계산, Hadoop 일괄 만날 수 없는 실시간 요구 사항에 대 한 만들기.
다음은 원래의 텍스트입니다.
배경 UAE (UC 응용 프로그램 엔진) 내에서 UC, PAAs 플랫폼 이며 전체 아키텍처 Cloudfoundry, 약간 유사 하다 등:
배포: 지원 Node.js, 플레이!, PHP 및 다른 프레임 워크 정보 투명: 프로세스, 시스템 상태, 비즈니스 상황 회색조 시행 착오의 작동: IP 회색조, 지리적 회색 기본 서비스: 키 값 저장, MySQL 고가용성, 그림 플랫폼, 등.
여기 그것은 주인공, 상세한 소개에는 영향을 주지 않습니다.
UAE, 아랍 에미리트 연방을 통해 라우팅되는 모든 요청 실행 하는 웹 응용 프로그램의 수백이 있다, Nginx 액세스 로그 크기는 테라바이트 일, 각 비즈니스의 액세스 동향, 광고 데이터, 페이지 시간, 액세스 품질, 사용자 정의 보고서, 모니터링 하는 방법 및 실시간 예외 경보?
Hadoop, 통계의 요구를 충족할 수 있지만 두 번째 수준의 실시간 만족 하지 스파크 스트리밍 및 동시에 화려의 일부와 함께 우리가 하지 않아도 스파크 공학 경험; 곤란 분산된 프로그램 자체를 작성 일정 및 확장, 메시지 흐름; 고려해 야
마지막으로, 우리의 기술 선택은 폭풍: 상대적으로 가볍고, 유연, 의사 소통을 쉽게 하 고 유연한.
또한, UC 클러스터 더 많은, 때문에 클러스터 로그에 걸쳐 전송도 상대적으로 큰 문제입니다.
기술 준비 카디널리티 카운트 (카디널리티 세)
큰 데이터 분산 컴퓨팅, PV (페이지 뷰) 쉽게 추가할 수 있습니다 함께, 그러나 UV (고유 방문자)가 되지 않습니다.
분산 컴퓨팅, 비즈니스의 수백의 경우 같은 Url의 수천 수백 시간 UV의 통계 통계 (매 분 마다 5 분 병합/시간별 병합/매일 병합), 메모리 소비는 용납할 수 시간으로 분할 하려는 경우.
이 시점에서 확률의 힘 반영 됩니다. 우리가 웹 분석 및 데이터 마이닝에 대 한 확률 데이터 구조 정확한 해시 테이블 통계 UV 및 카디널리티 메모리 비교는 크기 순서 계산을 볼 수 있습니다. 카디널리티가 카운트를 사용 하면 UV, 최소 메모리 소비가의 조합을 구현 이며 오류 허용 한도 내에서 전적으로.
Loglog 계산 먼저 이해할 수 있습니다, 방법 해시 유니폼의 전제를 이해, 대략적인 견적의 출처를 건너뛸 수 있습니다.
특정 알고리즘, 적응형 계산 이며 계산된 기본 사용은 스트림-2.7.0.jar.
실시간 로그 전송
두 번째 수준에서 실시간 로그 전송에 의존 해야 합니다 실시간 컴퓨팅 고 추가 혜택 단계적된 전송으로 인 한 네트워크 혼잡을 피하기 위해 하는 것입니다.
실시간 로그 전송 성숙 하 고 안정적인 클라이언트 (MCA) 및 서버 측 (MCS) 등 직접 사용은 아랍 에미리트 연방에서 사용할 수 있는 경량 로그 전송 도구입니다.
클라이언트 각 클러스터 로그 파일의 변경 내용을 수신 하 고 정상적인 로그 파일로 저장 되어 있는 지정 된 폭풍 클러스터의 각 컴퓨터에 그들을 전송 합니다.
우리는 각 폭풍 컴퓨터에 로그 파일 있었으니 대략 같은 크기, 주 둥이 읽기 원시 데이터를 전송 전략을 조정.
데이터 소스 큐
와 같은 카프카, Metaq, 등, 주로 너무 무거운 우리가 일반적으로 사용 되는 폭풍 큐를 사용 하지 않는...
Fqueue는 경량 memcached 프로토콜 큐는 일반적인 로그 파일 memcached 서비스에 그 폭풍 오 르네 Memcached 프로토콜에 직접 읽을 수 있습니다.
이 데이터 소스는 간단 하 게, 그것은 재생을 지원 하지 않습니다, 레코드 제거 되 고 튜플 처리 실패 하거나 시간이 초과, 데이터가 손실 됩니다.
그것은 상대적으로 가볍고, 로컬 파일 읽기에 따라 캐시의 얇은 층을 만들어, 아니라 순수 메모리 큐, 그것의 성능 병목은 디스크 IO, 디스크 초당 처리량 속도 일관 된 읽기. 하지만 우리를 위해이 시스템은 순수 메모리 큐를 변경 하려면 충분 한, 후속 계획.
아키텍처
위의 기술 예약을 통해 우리는 사용자의 방문의 몇 초 후 사용자의 로그를 얻을 수 있습니다.
전체적인 구조는 비교적 간단 하 고, 또한 이유 왜 계산 볼트의 두 종류가 있다, 균일 한 분포 고려의 계산에 기반. 비즈니스의 볼륨 크게 변화 하 고 전산 자원의 균형 됩니다 경우에 비즈니스 ID는 fieldsgrouping.
주 둥이 URL 그룹 (fieldsgrouping, 각 서버의 계산의 균형을 유지 하기 위해), 원래 로그 표준화 각 배포 해당 Stat_bolt; Stat_bolt은 주요 계산 볼트 빗질 하 고 각 비즈니스의 Url을 계산 PV, UV, 총 응답 시간, 백 엔드 응답 시간, HTTP 상태 코드 통계, URL 정렬, 트래픽 통계, 등 merge_bolt UV PV 번호, 각 비즈니스 데이터 병합 됩니다. 물론, UV 병합 여기 위에서 언급 한 카디널리티 카운트, 간단한 코디 네이 터 조정 클래스, streamid 사용 하 여 "코디 네이 터", 기능 분류: 시간 조정 (분할 배치), 확인 작업 완료, 타임 아웃 처리. 원리는 폭풍우와 트랜잭션 Topolgoy와 비슷합니다. 에 스파 우 트, 볼트 유통 각 서버에서의 동적 조정 매개 변수를 유연 하 게 얻기 위해 API 통해 스케줄러의 구현 서버 리소스를 할당 합니다. 매끄러운에 대 한 지원 업그레이드 토폴로지: 토폴로지 업그레이드 되 면 새 토폴로지 및 기존 토폴로지 스위칭 시간을 조정 하는 동시에, 새로운 토폴로지 Fqueue 이상 걸립니다, 사다리, 기존 토폴로지를 죽이고.
참고 포인트:
스톰 기계 같은 캐비닛에 가능한 클러스터의 대역폭 영향을 주지 않습니다; 우리의 Nginx 로그 분할 시간, 시간 00 분에 정확 하 게 분할 하지 않으면 볼 수 있습니다 데이터, 명백한 변동 그래서, 로그, 잘라 Nginx 모듈을 사용 하 여 최대한 crontab으로 신호 전송에 있는 지연이 있다. 잘라 로그인이 10-2 차 지연, 대규모 통계, 거기에 아무 문제가, 통계 동요의 두 번째 수준은 매우 분명 하다; 힙을 죽이고, 그래서 구성 매개 변수는-XMX; 강제로 woker 너무 작습니다 사용자 지정 정적 리소스: 정적 리소스 필터링 옵션, 콘텐츠 형식에 의해 특정 정적 리소스 또는 접미사를 필터링 합니다. 자원 병합: 병합 후 표시, 치수 통계를 쉽게 편안한 리소스 처럼 URL 병합: ANTLR v3 통해 구문, 어휘 분석, 완전 한 사용자 정의 크기 및 통계, 그리고 후속 경보는 또한 사용자 지정 식을 지원. 다른
우리 또한 다른 방법으로 그것을 구현 했습니다.
Mysql/memcached 등 링크에 대 한 모니터링 서버의 디스크/메모리/io/커널 매개 변수/언어 환경/환경 변수/편집 환경 등 비즈니스 종속 서비스를 모니터링 하는 비즈니스 프로세스 수준 (cpu/메모리/포트): nginx 로그 폭풍에 따라 실시간 모니터링 시스템 (Zebian/웨이 웨이)
무료 구독 "CSDN 클라우드 컴퓨팅 (왼쪽) 및 csdn 큰 데이터 (오른쪽)" 마이크로-편지 공개 번호, 실시간의 이해 원래 클라우드 뉴스, 최신 큰 데이터 진행을 이해 하기!
CSDN 게시 관련된 클라우드 가상화, 독 노동자, OpenStack, Cloudstack, 및 데이터 센터 등의 정보를 컴퓨팅, 스트림 컴퓨팅, 하 둡, Nosql/newsql, HBase, 임 팔 라, 스파크 메모리 계산, 공유 기계 학습 및 지능형 알고리즘 및 기타 큰 데이터 뷰를 제공 하는 클라우드 컴퓨팅 및 대형 데이터 기술, 플랫폼, 연습 및 산업 정보 서비스 관련.