Skip to content

Latest commit

 

History

History
1622 lines (1548 loc) · 191 KB

apache.md

File metadata and controls

1622 lines (1548 loc) · 191 KB

Apache

Airflow

Ambari

Apex

Arrow

Atlas

Beam

BookKeeper

Brooklyn

Camel

Commons

Cordova

Crunch

Doris

Drill

Druid

Eagle

Falcon

Flink

Flume

Geode

Goblin

HAWQ - advanced enterprise SQL-on-Hadoop query engine and analytic database

Hivemall

Hop

Hudi

Iceberg

Ignite

Impala

Jena

Kafka

Kafka Library

Kafka Client library

Kafka Installation & Management

Kafka Monitoring

Kafka Platform

  • Aiven - Data infrastructure made simple
    • 아파치 카프카를 포함한 많은 데이터 플랫폼을 위한 매니지드 솔루션 제공
    • 스키마 레지스트리와 REST 프록시 역할을 수행하는 카라스페이스(Karapace) 개발
      • 두 컨플루언트 솔루션의 API와 호환되지만 아파치 2.0 라이선스를 따르기 때문에 제한되는 활용 사례 같은 것은 없음
    • 3개 주요 클라우드 제공자 외에도 디지털오션(DigitalOcean)과 업클라우드(UpCloud) 지원
  • Amazon MSK 완전관리형 Apache Kafka – Amazon MSK – Amazon Web Services
    • REST 프록시는 직접적으로 지원되지 않지만, 스키마 지원은 AWS Glue와의 통합을 통해 제공
    • 크루즈 컨트롤, 버로우, 컨플루언트 REST 프록시와 같은 커뮤니티 툴 사용을 권장
      • 하지만, 직접 지원은 없으므로 다른 것들에 비해 통합성은 약간 떨어지지만 여전히 코어 카프카 클러스터는 지원
  • Azure HDInsight - Hadoop, Spark, and Kafka | Microsoft Azure
    • HDInsight 안에 하둡, 스파크, 다른 빅데이터 컴포넌트들과 함께 매니지드 카프카 플랫폼 제공
    • MSK와 비슷하게, HDInsight는 코어 카프카 클러스터에 초점
      • 스키마 레지스트리와 REST 프록시를 포함한 다른 컴포넌트들은 사용자의 선택
    • 몇몇 서드 파티들이 이러한 시스템들을 설치할 수 있도록 해 주는 템플릿을 제공하지만 마이크로소프트 지원은 없음
  • Cloudera Apache Kafka supported by Cloudera Enterprise
    • 클라우데라는 아파치 카프카 초기부터 카프카 커뮤니티의 일원
    • 클라우데라 데이터 플랫폼(Cloudera Data Platform, CDP) 제품의 스트림 데이터 컴포넌트로서 매니지드 카프카 제공
    • CDP는 단순한 카프카 이상의 것에 초점을 맞추지만, 프라이빗 옵션은 물론이고 퍼블릭 클라우드 환경에서도 동작
  • CloudKarafka - Apache Kafka Message streaming as a Service
    • 데이터독(DataDog)이나 스플렁크(Splunk)와 같이 널리 쓰이는 인프라스트럭처 서비스와의 통합과 함께, 매니지드 카프카 솔루션을 제공하는 데 초점
    • 컨플루언트의 스키마 레지스트리와 REST 프록시 역시 사용할 수 있도록 지원
      • 컨플루언트 측의 라이선스 변경으로 인해 5.0 버전까지만 지원
    • AWS와 구글 클라우드 플랫폼에서 사용 가능
  • Confluent Cloud: Fully Managed Kafka as a Cloud-Native Service
    • 여러 필수 툴들(스키마 관리, 클라이언트, REST 인터페이스, 모니터링)과 함께 제공
    • 3개 주요 클라우드 플랫폼(AWS, Microsoft Azure, Google Cloud Platform) 모두에서 사용 가능
    • 컨플루언트에서 일하고 있는 상당수의 아파치 카프카 코어 개발자들에 의한 지원 제공
    • 스키마 레지스트리와 REST 프록시와 같이 플랫폼에 포함되어 있는 많은 컴포넌트들은 몇몇 활용 사례를 제한하는 컨플루언트 커뮤니티 라이선스 하에 단독으로 사용 가능

Kafka Stream

Karaf

Kudu

Kylin

Kyuubi

Mesos

Metron

  • Metron 보안에 포커스를 둔 분석 시스템

Nifi

Nutch

Oozie

Ozone

Parquet

Phoenix

Pig

Pinot

  • Apache Pinot™ (Incubating): Realtime distributed OLAP datastore | Apache Pinot™ (Incubating)
  • Introducing Apache Pinot 0.5.0. We are excited to announce that Apache… | by Ting Chen | Apache Pinot Developer Blog | Sep, 2020 | Medium
  • Intro to Apache Pinot - YouTube
  • What is Apache Pinot? (and User-Facing Analytics) | A StarTree Lightboard by Tim Berglund - YouTube
  • Uber Freight Carrier Metrics with Near-Real-Time Analytics | Uber Blog
  • An Intro to Realtime Distributed Datastores with Apache Pinot • Tim Berglund • CodeCrafts 2022 - YouTube
  • Introduction to Real-Time Analytics with Apache Pinot • Tim Berglund • GOTO 2023 - YouTube
  • Making Kafka Queryable with Apache Pinot • Tim Berglund • GOTO 2023 - YouTube
    • VidiGo Making Kafka Queryable with Apache Pinot • Tim Ber
      • 컴퓨팅 역사와 아키텍처 변화
        • 컴퓨팅의 역사를 통해 배치 분석에서 트랜잭션 컴퓨팅으로의 전환 설명
        • 클라이언트서버 아키텍처의 등장과 데이터가 분산되기 시작하면서 데이터 웨어하우스의 필요성 발생
        • 인터넷과 스마트폰의 등장으로 정보 접근성이 크게 향상되었으며, 이는 새로운 아키텍처 혁명으로 연결
      • Kafka와 Apache Pino 소개
        • 현재 비즈니스 소프트웨어 아키텍처는 마이크로서비스가 기본, 이들 서비스는 주로 kafka를 통해 서로 통신
        • 로그는 쿼리하기 어렵기 때문에 실시간 분석을 위해 apache pinot 같은 새로운 데이터베이스가 필요
        • Pinot는 실시간 분석 데이터베이스로서, 로그 데이터 쿼리 용이
      • 데이터 세그먼트의 불변성과 분석 데이터베이스의 특성
        • 세그먼트는 한 번 작성되면 변경할 수 없는 불변 속성
        • 분석 데이터베이스인 pinot은 필터링과 집계를 주요 기능으로 설계
        • 트랜잭셔널 데이터베이스와 달리, 분석 데이터베이스는 대량의 데이터를 읽고 집계하는 것에 최적화
      • Pinot 아키텍처와 실시간 분석의 중요성
        • Pinot은 서버에서 대부분의 작업 처리, 이 서버들은 데이터를 저장하고 쿼리 계산 담당
        • 실시간 분석을 가능하게 하는 것은 사용자 상호작용 루프 내에서 쿼리 결과를 반환하는 것을 목표
        • Linkedin에서 개발된 pinot은 kafka 토픽 위에서 대규모 분석 쿼리를 실행할 수 있는 필요성에서 출발
      • Pinot 쿼리 처리 과정과 인덱싱 전략
        • Pinot은 브로커가 쿼리를 받아 처리해야 할 서버로 전달하고 결과를 다시 클라이언트에게 반환하는 구조
        • Sql을 통한 읽기 작업은 적절한 인덱스 선택에 크게 의존. pinot은 다양한 인덱싱 옵션을 제공하여 읽기 성능 최적화
        • 스타 트리 인덱스는 사전 집계를 통해 필터 및 집계 쿼리를 최적화하여 매우 빠른 쿼리 성능 제공
      • 데이터 쿼리의 다차원 처리
        • 데이터 쿼리에서 나라, 브라우저, 지역 설정 등 세 가지 차원이 어떻게 사용될지 미지수
        • 특정 조건에 따라 빠르게 인상 수를 계산하기 위해 트리 구조 사용
        • 예를 들어, 스페인어 지역 설정을 사용하는 모든 광고 인상을 알고 싶을 때는 루트 노드에서 시작하여 필요한 정보 탐색
      • 데이터 수집 및 처리 방법
        • 데이터 수집 방법에 대해 설명하며 csv 파일 예시를 들어 설명
        • 스키마 파일 생성과 테이블 설정 파일을 통해 데이터 구조와 처리 방식 정의
        • 카프카(kafka)와 같은 스트리밍 데이터 소스로부터 실시간으로 데이터를 읽어들여 쿼리 가능하게 만드는 과정 설명
      • 마이크로서비스와 카프카의 결합
        • 마이크로서비스와 카프카의 결합이 어떻게 현대적인 애플리케이션 아키텍처에 영향을 주었는지 탐구
        • 카프카가 로그 관리와 이벤트 기반 아키텍처에서 중심적인 역할을 하며 어떻게 실시간 분석과 상호작용에 기여하는지 설명
        • 사용자 경험 개선과 의사결정 과정에 실시간 데이터 분석의 중요성 강조
    • 아파치 피노로 카프카 쿼리 가능 만들기 - 팀 버글런드 - GOTO 2023 | The fastest way to absorb knowledge | Lilys AI | Lilys AI
        1. 데이터 보관 혁명: 메인프레임에서 데이터웨어하우스로
        • 1980년대에 클라이언트-서버 혁명이 일어나며, 메인프레임에서의 데이터 보관 방식 변화
        • 메인프레임 위주의 코드와 데이터가 아닌, 클라이언트-서버 환경에서의 새로운 접근이 시작되었고, 이는 데이터웨어하우스의 탄생으로 연결
        • 이로 인해 데이터는 여러 곳에 흩어지게 되었고, 새로운 분석 방식의 혁명 발생
        • 1990년대 다수 기업들이 데이터웨어하우스 구축, 데이터를 한 곳에 모아 전반적인 상황을 파악할 수 있었던 것이 비즈니스 소프트웨어 산업에 큰 영향
        1. 프로그램구조 변화: 클라이언트-서버에서 이벤트주도 아키텍처로
        • 클라이언트-서버 패러다임은 인터넷 전환을 거쳐 수월히 적응, 데이터웨어하우징 등도 시간이 지나며 압박 증가
        • 거기서 급등하는 빅데이터 개념이 안정적 산업 확산 알고리즘을 주는 와중에, 하둡 등의 등장으로 데이터 웨어하우스는 데이터 레이크로 변화
        • 시작은 마이크로서비스 구축이 어려웠으나, 클라이언트-서버 패러다임이 무너지며 소프트웨어 구축 방식 변화
        • 데이터는 더 이상 데이터베이스에만 존재하는 것이 아니라 로그에서 이벤트로 존재함에 따라 이벤트 기록을 통해 서로 소통하는 시스템이 우세
        • 로그 쿼리는 어렵지만, 다음 메시지 가져오기는 용이. 최근 5분 또는 1시간 동안 무슨 일이 있었는지 질문하기 어려움
        1. ️Apache Pinot: 설계와 데이터 테이블 구조 살펴보기
        • Apache Pinot은 실시간 분석 데이터베이스, 이와 유사한 데이터베이스의 필요성에 대한 역사적 배경을 설명하며 일관적인 패러다임 변경 강조
        • 데이터는 테이블에 저장, 세그먼트로 분할, 대용량 데이터 처리 위해 설계. 오프라인 테이블/실시간 테이블로 구분, 데이터 세그먼트는 불변 작성되어 큰 장점 제공
        • 트랜잭션 데이터베이스 대신 분석 데이터베이스에서 집계 및 필터링에 특화된 구조를 가져 위치
          • 트랜잭션 데이터베이스는 갱신이 주요 목표, 분석 데이터베이스는 집계 및 필터링을 통해 데이터 처리 최적화 추구
        • 데이터는 세그먼트로 구성 이들은 물리적인 시간 분할 데이터로 표현, 여러 대의 컴퓨터에 분산 저장
          • 이는 데이터 확장 및 처리 최적화를 위한 중요한 특징으로 효과적으로 활용된다.
        • Pinot은 분석적 데이터 처리를 위해 구축된 데이터베이스, 주된 목표는 집계 및 필터링 기능 효율적 수행
        1. 실시간 분석 데이터베이스 Pinot의 작동 및 구조
        • Pinot은 컬럼 지향적 데이터베이스, 세그먼트 내의 모든 컬럼은 함께 저장되어 정렬 및 인덱싱 최적화 가능
        • 세그먼트 내 어디에도 한 행의 모든 데이터가 직렬화되어 저장되지 않아
          • OLAP 쿼리를 위한 최적화된 데이터베이스에서 데이터를 추출하는 데 상대적으로 어려움
        • 여러 세그먼트가 서버라 불리는 기계에 존재, Pinot은 실시간 분석 데이터베이스로, 사용자 상호작용 루프에서 실제 쿼리 수행 가능
        • LinkedIn에서 개발된 Pinot은 실시간으로 사용자 상호작용 루프에 집중, 응답 지연 시간 최소화, 식사 배달 및 분석 쿼리 등 다양한 용도로 활용
        1. 데이터 처리와 쿼리 라우팅
        • 서버가 세그먼트를 저장, 대부분의 쿼리 연산은 서버에서 처리
        • 결과적으로 밀접하게 결합된 컴퓨팅과 저장소를 갖게 되며, 매우 큰 데이터 세트에 대한 쿼리를 수행할 때 이러한 아키텍처 필요
        • 쿼리 브로커는 세그먼트 위치를 파악하고 쿼리를 서버로 보내 결과를 클라이언트에 반환
        • 컨트롤러는 메타데이터 변경 조정, 미니언 워커는 데이터 투입부터 다양한 계산 작업까지 다루며 서버에 미치는 영향을 줄이는 역할
        • SQL을 통해 데이터를 읽고, Java SPI 인터페이스를 통해 새로운 인덱스를 작성 및 배포 가능
        1. 인덱스 종류: Forward, Inverted, Range, Star Tree
        • Forward Index: 각 행에 고유한 ID 할당, 열의 값 조회를 위한 도큐먼트 ID로 사용
        • Inverted Index: 값에 해당하는 도큐먼트 ID 반환. 낮은 카디널리티 컬럼에 유용
        • Range Index: 숫자를 범위로 나눠 역인덱스로 필터링. 타임스탬프에도 적용 가능
        • Star Tree Index: 사전 집계를 통해 쿼리 최적화, 필터 및 집계 쿼리에 적합
        1. 빠르고 정확한 쿼리 및 데이터 삽입을 위한 기술 설명
        • 'ADD Impressions' 메트릭을 통해 나라, 브라우저, 로케일과 같은 다양한 차원에서 Impressions 합계를 빠르게 계산하는 방법 설명
        • 쿼리에서 사용되는 차원들을 예측하지 못해도 쿼리를 빠르게 계산할 수 있는 트리를 빌드하여 데이터 접근 방법 설명
        • 인덱스를 활용해 Spanish locale을 사용하는 사람들의 Ad Impressions 수를 빠르게 찾는 방법, 조회 속도 및 쿼리 성능을 최적화하는 방법 설명
        • 데이터 사이즈 및 클러스터 배포에 따라 P95 지연 시간이 수십 밀리초에 불과한 놀라운 성능, CSV 데이터 신속 삽입 방법에 대한 간략한 설명 제공
        1. Schema 생성과 데이터 삽입에 관한 설명
        • 먼저 스키마 파일을 생성, 각 열에 대한 이름과 데이터 유형을 가진 JSON 파일, 차원, 메트릭, 및 날짜-시간 필드로 열이 분류
        • 테이블 구성 파일은 보통 'CREATE TABLE'문의 역할을 하며, 벤더별 확장을 포함한 JSON 파일로 구성
        • 'CREATE INDEX'는 JSON 파일에 추가되는 DDL로, 인덱스 정의와 벤더별 확장 포함
        • 데이터를 삽입하기 위해 'CREATE TABLE' 문과 인덱스 정의가 모두 포함된 JSON 파일을 사용, Kafka 구성 파일도 함께 필요
        • 데이터 소스를 읽어 세그먼트를 생성하고 컨트롤러에 전달하는 minion 작업 진행, 수집된 데이터는 서버 전체 분산
        1. ️초콜릿과 피넛 버터, 카프카와의 밀접한 관골
        • 미국에서 초콜릿과 피넛 버터가 잘 어울리는지 물어보고, 그에 대한 의견을 나누는 장면
        • Pinot을 Kafka 토픽에서 소비하는 방법에 대한 설명과 그 과정에 대한 세부적인 내용 설명
        • 실시간 테이블이 소비 세그먼트를 포함하여 동작하고, 이후 생성된 세그먼트로 계속 확장되는 방식도 기술
        • 카프카 연결없이 스트리밍 데이터를 소비하는 실시간 테이블이 존재하지 않으며, JSON 파일에 필요한 설정과 연결 정보가 담겨 있다는 설명
        1. 카프카와 피노의 통합으로 데이터 위치 더 효율적으로 관리
        • 카프카와 피노의 통합은 파티션된 주제를 통해 개별 서버가 소비자를 시작하게 함
        • 피노는 소비자 그룹을 사용하지 않고, 서버가 파티션을 개별적으로 할당하여 데이터 위치를 효율적으로 관리
        • 파티션과 세그먼트로 데이터 위치가 결정되므로, 효율적인 데이터 위치 관리 가능
        • 카프카와 피노의 밀접한 통합을 통해 데이터의 지속적인 유지 및 사용자 경험을 향상

PredictionIO

Pulsar

Ranger

River

Samza

SeaTunnel

ShardingSphere

SINGA

  • SINGA a general distributed deep learning platform for training big deep learning models over large datasets

Slider

Solr

Spot

  • Spot 네트워크 데이터를 분석하여 infosec 위협을 탐지하는데 사용
  • Apache Spot (incubating) and Cloudera on AWS in 60 Minutes
    • Apache Kafka(처리용), Apache Spark(처리 및 ML 분석용), Apache Hadoop(처리 및 저장용) 등을 기반으로 한 Apache Spot의 아키텍처 소개
    • Spot은 파일 시스템의 변경 사항을 감지하고 이벤트를 발생시키는 Python Watchdog 라이브러리를 사용

Sqoop

Storm

Superset

SystemML

Tajo

Thrift

Tika

Toree

Traffic Server

UIMA

WEEX

  • WEEX A framework for building Mobile cross-platform UIs

Zookeeper