하둡이 뭔데? - 2

2020-02-09

이전 글에서 Hadoop 에코시스템중 거대한 덩어리들중 HDFS, Hive, Hbase에 대해 간단히 정리했다.

이번 글에서는 크게

- Spark

- Presto

- Yanagishima

- Zeppelin

- Hue

- Kafka

- Storm

이렇게 정리해볼 생각이다.


Spark

스파크는 오픈소스 분산 쿼리 및 처리 엔진이다. 스파크는 유연성과 맵리듀스에 대한 확장성을 훨씬 빠른 속도로 제공한다.

데이터가 메모리에 저장되어 있을 때는 하둡보다 100배 빠르며, 디스크에 저장되어있을때는 10배 빠르다.

스파크는 데이터를 읽고, 변형하고, 합계를 낼 수 있으며, 복잡한 통계 모델들을 쉽게 학습하고 배포할 수 있다. 스파크 API는 자바, 스칼라, 파이썬, R, SQL을 이용해 접근할 수 있다. 애플리케이션을 빌드하는데 쓰일 수 있고, 여러 애플리케이션을 라이브러리로 묶어서 클러스터에 배포할 수도 있으며 파이썬 노트북을 통해(예를 들어 주피터, Spark-Notebook, Apache Zepplin) 대화식으로 빠른 분석을 수행할 수 있다.

Hive Vs Spark

Hive에서는 SQL을 이용하여 할 수 있는 데이터 처리는 할 수 있지만 그 이상의 일은 어렵다.

예를 들면 Hive에서의 질의 결과를 MySQL과 같은 관계형 데이터베이스에 저장하기 위해서는 Sqoop과 같은 툴들의 도움을 받아야 한다. 하지만 Spark를 사용할 경우 결과를 여러 관계형 데이터베이스에 직접 Write 할 수 있다.

그렇다고 Hive와 Spark를 완전히 분리하여 사용하는건 아니다. Hive에 선언해둔 데이터 카탈로그는 Spark에서 HiveContext를 통해 이용할 수 있다. 예를 들면 View를 Spark에서 이용함으로서 Spark 애플리케이션을 개발할 때 데이터 카탈로그와 관련된 코드를 작성하지 않을 수 있다.

Zeppelin

쉽게 생각하면 Jupyter와 비슷하다. 다만, 코드 실행 결과보다 여러 가지 시스템에 대한 질의 결과를 보여주는데 더 초점이 맞춰져 있다.

엄밀히 말하면 Zeppelin에서는 여러가지 시스템에 대한 실행 결과를 얻기 위해 중간 객체로 Interpreter라는 것이 존재하는데, JDBC interpreter를 통한 JDBC 질의 결과, Spark interpreter를 통한 Spark 코드 실행 및 질의 결과를 볼 수 있다.

그리고 질의 결과를 그래프 같은 것으로 시각화하여 보여주기 용이하다. cron 사용 가능

Presto

인메모리 기반 / 제플린보다 빠르다

Presto는 페이스북이 개발한 대화형 질의를 처리하기 위한 분산 쿼리 엔진이다. 메모리 기반으로 데이터를 처리하며, 다양한 데이터 저장소에 저장된 데이터를 SQL로 처리할 수 있다. 특정 질의 경우 하이브 대비 10배 정도 빠른 성능을 보여준다.

Hue

Hue (Hadoop user enviroment, 하둡 사용자 환경)은 Apache Hadoop과 함께 사용하는 오픈 소스 웹 기반 Gui다.

Hue에서는 Hive및 Pig 편집기와 같은 애플리케이션을 사용하면 클러스터에 로그인하여 각 애플리케이션 쉘을 사용할 필요가 없다.

Hbase

Hadoop의 HDFS위에 만들어진 분산 컬럼 기반의 데이터베이스이다.

HDFS의 데이터에 대한 실시간 임의 읽기/쓰기 기능을 제공한다.

사용자는 Hbase나 HDFS에 직접 데이터를 저장할 수 있고, 사용자는 데이터를 읽고 접근하는 것은 Hbase를 통한 임의접근을 이용한다.

NoSQL로 사용되나봄

Kafka

카프카(Kafka)는 데이터 스트림을 실시간으로 관리하기 위한 분산 메세징 시스템이다.

Publish - Subscribe 모델로 구성되어 있으며, 데이터 손실을 막기 위해 디스크에 데이터를 저장한다.

파티셔닝을 지원하기 때문에 다수의 카프카 서버에서 메세지를 분산 처리할 수 있으며, 시스템 안정성을 위해 로드밸런싱과 내고장성을 보장한다.


출처: https://12bme.tistory.com/305 [길은 가면, 뒤에 있다.]

출처: https://blrunner.tistory.com/99 [BLRUNNER.COM]