Impala
- Clouder 버전의 Hive
- Hadoop위에 구축된 거대 병렬 SQL engine
- 오픈소스 이지만 cloudera가 관리
- Impla의 가장 큰 특징은 always running
- Hive를 실행할때의 start-up 비용을 줄여서 빠르다.
- BI-style query를 위해 만들어 졌다.
- Impala가 Hive에 비해 빠르지만 Hive는 많은 곳에서 사용되고 connectivity가 Impala에 비해서 좋다.
- Cloudera를 사용한다면 Hive대신 Impala를 사용하는 것을 고려해볼만 하다.
Accumulo
- HBase와 유사한 Bigtable clone
- 더 나은 보안 기능을 제공함
- Cell-based access control
- server-side programming을 제공. 서버측에서 데이터를 변환할 수 있음
- 복잡한 보안 요구 사항이 있고 HBase 같은 NoSQL 데이터베이스가 필요하다면 Accumulo를 고려해볼만 하다.
Redis
- Memcache와 직접적인 관련은 없지만 같은 목적을 가지고 있음
- 애플리케이션이 빈번히 액세스하는 정보를 메모리 안에 저장할 수 있게해줌
- Memcache처럼 단순히 key-value 데이터를 저장하지 않고 해시 맵 등의 전체 데이터 구조를 저장
- 또한 그 데이터를 자동적으로 디스크에 유지할 수도 있다.
- 추가적인 기능을 함에도 불구하고 Memcache 만큼 빠르다.
- 웹 앱에서 Redis는 유명한 캐시 레이어
Ignite
- Ignite는 Redis의 대안
- Ignite는 Apache project이며 in-meory data fabric
- database에 더 가깝다.
- financial transaction을 하는 app에 적합
- 데이터를 in-memory processing 해야하고 database처럼 사용해야한다면 고려해볼만함
Elasticsearch
- distributed document search and analytics engine
- Wikipedia, Stack Overflow ... 등에서 이용
- Wikipedia에서 검색하면 Elasticsearch가 가장 적절한 문서를 찾아줌
- Hadoop과 직접적인 연관은 없지만 Elasticsearch에 데이터를 보내거나 가져오는 일을 해야할 수도있음
- realtime query를 다룰 수 있음
- Kibana와 함께 사용하면 interactive exploration이 가능함
- AWS에서 Elasticsearch 서비스를 제공
AWS
- Kinesis - Kafka
- 그 외의 AWS 서비스
- 분산저장 솔루션 : S3 - HDFS
- Elasticsearch Service/ CloudSearch
- DynamoDB - Cassandra
- Amazon RDS - MySQL
- in-memory cache : ElasticCache - Redis
- AI / ML services
- EMR(Elastic MapReduce) - Hadoop + Spark
Apache NiFi
- data routing하는 directed graph
- 클러스터로 들어오는 데이터의 흐름을 체계화하는 수단으로 사용
- Kafka, HDFS, Hive 같은 소스에 연결할 수 있음
- Web UI를 통해 복잡한 시스템이나 dataflow를 디자인할 수 있음
- IoT sensor 데이터를 관리하는데 자주 쓰임
- SparkStreaming, Storm과 같은 것의 입력 소스로 자주 사용
Falcon
- Falcon은 Oozie 위에서 작동하는 'data governance engine'입니다
- Hortonworks에 포함
- NiFi 처럼 data processing graph의 construction을 담당하기도 하지만 주된 사용 목적은 이미 cluster에 들어온 data의 흐름을 관리한다.
- Oozie에 너무 많은 workflow가 있어서 일종의 관리자가 필요할 때 Falcon을 사용하면 된다.
Apache Slider
- Hortonworks에 포함
- YARN 클러스터에 분산하려는 범용 애플리케이션을 위한 도구
- 만약 여러분이 직접 작성한 애플리케이션이 있다면 Slider를 사용해 그것을 클러스터에 배치하고 모니터링하며 시간에 따라 그 용량을 늘리거나 줄임
- Slider를 사용해 애플리케이션의 인스턴스를 얼마나 많이 작동할지 그리고 필요에 따라 시작하고 멈출지를 통제