- 하둡 공부 2일차2024년 11월 22일
- 31514
- 작성자
- 2024.11.22.:32
오늘은 저번 글에서 말했듯이, Spark와 Hive에 대해 공부했다.
내 블로그를 보면 알 수 있듯이 Spark는 이미 다른 책을 통해 학습해둔 상태여서 이번 강의를 통해 복습을 할 수 있었다.
굳이 새롭게 알게 된 사실을 말하자면 Spark에서 Python을 사용하는 것보다 Scala를 사용하는 것이 더 빠르다는데, 나중에 직접 경험해볼 수 있으면 좋을 거 같다.
추가로 Spark는 디스크보다 인메모리 기반으로 데이터를 처리하기 때문에 처리 속도가 매우 빠르다.
다른 글에 Spark에 대해 잘 정리되어 있으니, 이쯤에서 Hive 이야기로 넘어가보자.
Hive도 SQL을 HiveQL이라는 이름으로 지원한다.
실행 엔진도 MapReduce 뿐만 아니라 Tez, Spark 등 원하는 것을 선택하여 실행할 수 있다.
그리고 당연하게도 Tez나 Spark가 더 빠르다...
SQL과 Hadoop의 이름을 섞은 Sqoop이라는 기술을 통해 MySQL과 상호작용할 수 있다.
예를 들어 MySQL에 존재하는 테이블을 Hive로 불러와서 쿼리를 실행하거나, Hive에 있는 데이터를 MySQL로 내보낼 수도 있다.
MySQL은 OLTP의 성격을 띄고 있기에 대용량 데이터를 분석하기에 적합하지 않기 때문이다.
이렇게 보면 Hive와 Spark와 별 차이가 없는 거 같다.
심지어 Spark는 더 다양한 기능을 제공하고 성능까지 좋기 때문에 Hive를 굳이..? 라는 생각이 든다.
이에 따라 어떤 상황에서 Hive를 사용하는지 찾아봤다.
일단 위에서도 말했듯이, Spark는 인메모리 기반으로 데이터를 처리하기 때문에 디스크를 사용하는 것보다 비용이 더 많이 든다.
하지만 Hive는 디스크를 사용하여 데이터를 처리한다.
이에 따라 연산이 빈번하지 않고 배치로 대용량 데이터를 처리한다면 Spark보다 비용적인 측면에서 효율적일 수 있다.
그리고 Hive 메타스토어는 Hive에서 사용하는 모든 테이블, 스키마, 파티션, 데이터 위치 등의 정보를 저장하고 관리한다.
이는 Hive뿐 아니라 Spark, Presto, Trino 등 다양한 엔진과도 통합되어 데이터 관리의 표준 역할을 수행할 수 있다.
따라서 Spark를 사용하면서 메타데이터 관리가 필요하면 Hive 메타스토어를 사용한다고 한다.
'개발' 카테고리의 다른 글
하둡 공부 4일차 (0) 2024.11.26 하둡 공부 3일차 (0) 2024.11.25 하둡 공부 1일차 (0) 2024.11.21 GCP VM Instance 저스펙으로 Airflow 서버 구축하고 안정적으로 크롤링하기 (0) 2024.11.14 홈 서버 구축기인데 LG U+를 곁들인.. (1) 2024.11.01 다음글이전글이전 글이 없습니다.댓글