오몰내알 데엔

데이터 엔지니어링/Hadoop

Sec7. 대화형 쿼리

Drill 스키마가 정해지지 않은 데이터에 대해 SQL 쿼리를 실행할 수 있다. HDFS, MongoDB, S3, Azure, GCP, JSON 등 다양한 파일 시스템의 상위에 위치할 수 있다. JDBC 드라이버를 통해 시각화 도구나 관계형 DB에 연결할 수 있다. 처리속도가 빠르지만 시스템에 설계되지 않은 상황에서는 효율적이지 않다. 다른 DB 테이블을 조인할 수 있다. Drill 쿼리 평점 데이터 Hive로 CREATE DATEBASE movielens; u.data 업로드 스파크를 통해 몽고디비에 데이터 적재 spark-submit --packages arg.mongodb.spark:mongo-spark-connenctor_2.11:2.0.0 MongoSpark.py Drill 설치 wget tar..

데이터 엔지니어링/Hadoop

Sec.6 NoSQL & Hadoop

NoSQL 작은 데이터는 RDB로 충분하지만 큰 데이터라면 한계가 생긴다. 대용량 데이터를 아주 빠르게 처리한다. 데이터를 신속하게 분산 처리하면서 변형도 쉽다. RDB 스케일링 업(수직적 확장) 비정규화 Caching layer 마스터/슬레이브 → 어떤 건 write, 어떤 건 read만 Sharding → 서버가 자주 터질걸? API를 통해 원하는 정보만 필요하다. → key, value HBase HDFS 위에 구축되고, 대용량 데이터를 HDFS에 저장하면 이를 활용해 데이터를 대규모로 외부로 내보낼 수 있다. 컬럼 기반 데이터베이스 구글 빅테이블을 기반으로 하고 있다. 쿼리가 아니라 API → CRUD 수 많은 클러스터 전체에 데이터를 자동으로 분배한다. 마스트 노드가 실제 데이터의 스키마를 관리..

데이터 엔지니어링/Hadoop

Sec5. Hadoop & RDB

Hive 전체 클러스터에 저장된 데이터를 표준 SQL을 통해 맵리듀스로 변환하여 사용할 수 있다. HiveQL SQL과 아주 비슷하지만 Hive에 최적화 스키마 온 리드 비구조화 된 데이터를 가져와 스키마 확인을 데이터를 읽는 시점에 한다. 데이터 위치 LOAD DATA, Managed 하이브 소유 데이터 LOAD DATA LOCAL, External tables 테이블을 사용은 하지만 소유하지는 않음 사용법 CLI Ambari JDBC, ODBC 워크플로 MySQL과 하둡 통합 Sqoop SQL + Hadoop RDB 데이터를 HDFS, Hive 등으로 임포트 하거나, 반대로 RDB로 익스포트할 수 있다. 증분 임포트가 가능 Import sqoop import —connect jdbc:mysql://l..

데이터 엔지니어링/Hadoop

Sec4. Spark

스파크 개념 대용량 데이터 처리에서 훨씬 빠른 성능을 내는 엔진 확장성 드라이버(SparkContext): 통제 → 네임 노드 클러스터 매니져 Executors: 데이터 노드 Cache Tasks 속도 맵리듀스보다 적어도 100배는 빠른 속도를 가지고 있다. DAG 엔진으로 최적화를 할 수 있다. 유행 AWS, Ebay 등 많은 기업이 스파크를 사용하고 있다. 쉬움 파이썬, 자바, 스칼라로 프로그래밍할 수 있다. RDD 스파크 구성 Spark Streaming Spark SQL SQL로 쿼리를 만들고 변환할 수 있다. MLLib 스파크로 머신러닝 GraphX 소셜 그래프를 통해 분석 RDD(Resilient Distributed Dataset) 탄력적 분산 데이터셋 클러스터 전체에 걸쳐 작업이 고르게 분..

데이터 엔지니어링/Hadoop

Sec3. Pig

Pig 개념 맵과 리듀스를 사용하지 않고 데이터를 처리하지 않아도 됨. 맵리듀스는 프로그래밍하는데 시간이 많이 걸림 간단한 스크립트 언어를 통해 더 쉽고 간결하게 가능 (SQL) 맵리듀스와 테즈를 기반으로 하기 때문에 10배 정도는 더 빠르다. 피그 스크립트 실행 방법 Grunt Script Ambari Pig 스크립트 ratings = LOAD ‘/user/maria_dev/ml-100k/u.data’ AS (userID:int, movieID:int, rating:int, ratingTime:int); metadata = LOAD ‘/user/maria_dev/ml-100k/u.item’ USING PigStorage(’|’) AS (movieID:int, movieTitle:chararray, re..

데이터 엔지니어링/Hadoop

Sec2. HDFS & MapReduce

HDFS HDFS 개요 큰 파일을 다루기 위한 도구 블록으로 분할하여 저장 - 128MB 블록들은 여러 대의 컴퓨터에 저장된다. 또한 각 블록의 복사본을 하나만 저장하는 것이 아니다. → 실패에 대처 HDFS 아키텍처 네임노드: 모든 블록이 어디에 있는지 추적 편집 로그를 통해 새로운 파일의 추가나 이동 등을 추적 데이터 노드: 궁극적으로 클라이언트와 통신 클라이언트 노드가 네임노드에 연락하여 어떤 블록이 어떤 데이터 노드에 있는지 물어보고 데이터 노드에서 실제로 블록을 찾는다. Write File 클라이언트 노드가 네임 노드에 새 항목 생성을 의뢰하고, 네임 노드의 정보가 클라이언트 노드를 통해 데이터 노드 간데이터를 복제한다. 그리고 성공했다면 성공 사실을 다시 네임노드로 전송한다. Read File..

데이터 엔지니어링/Hadoop

Sec1. 하둡 설치 및 개요

하둡 설치 VirtualBox 가상머신에 설치 Hortonworks 배포판을 사용 처음 Ambari를 초기화할 때 굉장히 느렸음. → RAM 용량이 너무 작은걸까? 하둡 개요 하둡의 정의와 탄생, 역사를 알아봄 하둡 생태계 안의 기술 종류와 각각의 정의 → 아직까지 직접 툴들을 다뤄보지 않아서 정의가 와닿지 않았음.

오몰내알
'데이터 엔지니어링/Hadoop' 카테고리의 글 목록