Apache Storm 개요: 아키텍처 및 사용 이유
게시 됨: 2020-03-23데이터는 유비쿼터스이며 디지털화가 증가함에 따라 데이터 관리 및 처리와 관련하여 매일 새로운 문제가 발생하고 있습니다.
실시간 데이터에 액세스하는 것은 "있으면 좋은" 기능처럼 보일 수 있지만 디지털 영역에 상당한 투자를 하는 조직에게는 거의 필수입니다.
목차
어떤 업계 리더가 Apache Storm을 사용하고 있습니까?
종종 주어진 시간에 분석되지 않은 데이터는 곧 회사에 중복될 수 있습니다. 회사에 유리할 수 있는 패턴을 찾기 위해 데이터를 분석하는 것이 요구 사항입니다. 패턴은 오랜 시간에 걸쳐 추론할 필요가 없습니다. 실시간, 현재 추세를 나타내는 관련 데이터만 추출해야 합니다.
실시간 데이터 분석의 필요성과 결과를 고려하여 조직은 다양한 분석 도구를 생각해 냈습니다. 그러한 도구 중 하나는 Apache Storm입니다.
아파치 스톰이란?
Twitter에서 출시한 Apache Storm은 다양한 소스의 대용량 데이터를 처리하는 분산형 오픈 소스 네트워크입니다. 이 도구는 데이터를 저장하지 않고 이를 분석하고 결과를 UI 또는 기타 지정된 대상으로 업데이트합니다. Apache Storm에 대해 자세히 알아보세요.
Apache Storm은 데이터 일괄 처리에 대한 Hadoop의 처리 패턴과 유사하게 무제한 데이터 청크에 대한 실시간 처리를 수행합니다.

원래 소셜 분석 회사인 Black Type의 Nathan Marz가 만들었으며 나중에 Twitter에서 인수하여 오픈 소스로 만들었습니다. Java 및 Clojure로 작성되었으며 업계의 실시간 데이터 처리 표준으로 계속 사용되고 있습니다.
아파치 스톰 아키텍처
1. 님버스(마스터 노드)
Nimbus는 데몬, 즉 대화형 사용자의 제어 없이 백그라운드에서 실행되는 프로그램입니다. Hadoop의 작업 추적기 작동과 유사한 Apache Storm에서 실행됩니다. 이 기능을 사용하려면 기계에 코드와 작업을 할당하고 성능을 모니터링해야 합니다.
2. 감독자 서비스(작업자 노드)
Storm의 작업자 노드는 Supervisor라는 서비스를 실행합니다. 이 노드는 Nimbus가 이 기계에 할당한 작업을 수신하는 역할을 합니다. Nimbus가 할당한 모든 작업을 처리하는 것 외에도 요구 사항에 따라 프로세스를 시작하거나 중지합니다.
감독자의 이러한 각 프로세스는 프로세스의 일부를 실행하여 토폴로지를 완료하는 데 도움이 됩니다.
3. 토폴로지
Storm Topology는 스파우트와 볼트로 구성된 네트워크입니다. 시스템의 모든 노드는 논리와 링크를 처리하고 데이터가 전달되는 경로를 보여줍니다.
토폴로지가 Storm에 제출될 때마다 Nimbus는 작업자 노드에 대해 감독자에게 문의합니다.
4. 스트림
스트림은 병렬 분산 방식으로 생성 및 처리되는 튜플의 시퀀스입니다. 그러나 튜플은 무엇입니까? 그것들은 Storm의 주요 데이터 구조입니다. 정수, 바이트, 플로트, 바이트 배열 등과 같은 다양한 값의 명명된 목록입니다.
5. 주둥이
Spout은 튜플의 모든 데이터에 대한 진입로입니다. 실제 데이터 소스에 접속하고, 지속적으로 데이터를 수신하고, 이를 튜플로 변환하고, 최종적으로 처리할 볼트로 보내는 역할을 합니다.

6. 볼트
Bolt는 Storm의 모든 논리 처리의 핵심입니다. 따라서 토폴로지의 모든 처리를 수행합니다. 볼트는 필터링, 기능, 집계 및 데이터베이스 연결을 포함한 다양한 기능에 사용할 수 있습니다.
자세히 알아보기: Apache Spark 아키텍처
왜 아파치 스톰인가?
Apache Storm의 작동은 Hadoop의 작동과 매우 유사합니다. 둘 다 빅 데이터 처리에 사용되는 분산 네트워크입니다. 확장성을 제공하며 비즈니스 인텔리전스 목적으로 널리 사용됩니다. 그렇다면 왜 Storm과 왜 그렇게 다른 걸까요?
Storm을 선택하는 주요 이유는 다음과 같습니다.
- Storm은 실시간 스트림 처리를 수행하는 반면 Hadoop은 대부분 일괄 처리를 수행합니다.
- Storm 토폴로지는 사용자가 종료할 때까지 실행됩니다. Hadoop 프로세스는 결국 순차적으로 완료됩니다.
- Storm 프로세스는 몇 초 만에 클러스터에 있는 수천 개의 데이터에 액세스할 수 있습니다. Hadoop 분산 시스템은 MapReduce 프레임워크를 사용하여 몇 분 또는 몇 시간이 소요되는 방대한 양의 프레임워크를 생성합니다.
Apache Storm을 사용하는 조직
Storm은 일단 배포되면 작동하기 쉬울 뿐만 아니라 몇 초 만에 데이터를 처리할 수 있습니다. Storm의 충분한 이점을 고려하여 많은 조직에서 이를 사용하고 있습니다.
1. 트위터
Apache Storm은 Twitter의 다양한 기능을 지원합니다. Storm은 Cassandra, Memcached, Mesos, 메시징 인프라, 모니터링 및 경고 시스템과 같은 데이터베이스 시스템이 있는 나머지 Twitter 인프라와 잘 통합됩니다.
2. 정보침팬지
Infochimps는 Storm을 클라우드 데이터 서비스 중 하나인 Data Delivery Services의 소스로 사용합니다. Storm을 사용하여 선형 확장 가능한 데이터 수집, 전송 및 클라우드 서비스의 복잡한 인스트림 처리를 제공합니다.
3. 스포티파이
의심할 여지 없이 스트리밍 음악 플랫폼의 선두 주자입니다. 전 세계적으로 5천만 명의 사용자와 천만 명의 구독자를 보유한 이 서비스는 음악 추천, 분석, 광고 제작 등과 같은 방대한 실시간 콘텐츠를 제공합니다. Apache Storm은 Spotify가 이러한 기능을 정확하게 제공하도록 지원합니다.
또한 회사는 지연 시간이 짧은 내결함성 배포 시스템을 쉽게 제공할 수 있었습니다.
4. 로켓퓨얼
RocketFuel은 인공 지능의 힘을 활용하여 디지털 미디어에서 마케팅 ROI를 확대하는 회사입니다. 그들은 노출, 클릭, 입찰 요청 등을 실시간으로 추적할 수 있는 Storm에서 플랫폼을 구축하려고 합니다. 이 플랫폼은 Hadoop 기반 ETL 파이프라인의 중요한 워크플로를 복제하여 작동해야 합니다.
5. 플립보드
Flipboard는 관심 있는 모든 뉴스를 검색하고 저장할 수 있는 원스톱 상점입니다. Flipboard에서 Apache Storm은 Hadoop, ElasticSearch, HBase 및 HDFS와 같은 시스템과 통합되어 매우 확장 가능한 플랫폼을 생성합니다.
여기에서 콘텐츠 검색, 실시간 분석, 사용자 지정 매거진 피드 등과 같은 서비스는 모두 Apache Storm의 도움으로 제공됩니다.
6. 위고
Wego는 싱가포르에서 시작된 여행 메타 검색 엔진입니다. 여기에서 데이터는 전 세계에서 서로 다른 시간에 제공됩니다. Storm의 도움으로 Wego는 실시간 데이터를 검색하고 공존하는 문제를 해결하며 최종 사용자에게 최상의 결과를 제공할 수 있습니다.
또한 읽기: 빅 데이터에서 Apache 스파크의 역할.

결론
Storm이 작성되기 전에는 대기열과 작업자 스레드 접근 방식을 사용하여 실시간 데이터를 처리했습니다. 일부 대기열은 지속적으로 데이터를 쓰고 다른 대기열은 지속적으로 읽고 처리합니다. 이 프레임워크는 매우 취약할 뿐만 아니라 시간이 많이 걸립니다. 실제 작업을 수행하는 대신 데이터 손실을 처리하고 전체 프레임워크를 유지 관리하며 메시지를 직렬화/역직렬화하는 데 많은 시간이 소요됩니다.
Apache Storm은 데이터를 Spout 및 Bolt로 제출하고 나머지 처리를 토폴로지로 제출하는 영리한 방법입니다.
Apache Storm은 데이터의 실시간 분석을 위한 널리 사용되는 오픈 소스 및 스트림 처리 계산 프레임워크입니다. 많은 조직에서 이미 사용하고 있습니다. 사실, 일부는 그것으로 더 좋고 유용한 소프트웨어를 개발하고 있습니다.
빅 데이터에 대해 더 알고 싶다면 PG 디플로마 빅 데이터 소프트웨어 개발 전문화 프로그램을 확인하세요. 이 프로그램은 실무 전문가를 위해 설계되었으며 7개 이상의 사례 연구 및 프로젝트를 제공하고 14개 프로그래밍 언어 및 도구, 실용적인 실습을 다룹니다. 워크샵, 400시간 이상의 엄격한 학습 및 최고의 기업과의 취업 지원.
세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정 을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.