하둡은 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈소스(무료)프레임워크입니다
- 분산처리란?
- 데이터를 여러개의 서버들에 나누서 저장하고 여러 서버들의 자원을 다 이용해서 데이터를 처리하는 것을 말합니다.구글에서 구글에 쌓이는 빅데이터를 처음에는 오라클에 저장하려고 했는데 너무 데이터가 많아서 오라클에 저장하는 것을 시패하고 나름의 방법으로 빅데이터를 저장하는 기술을 만들고 논문을 하나 발표했는데 그 논문을 더그커팅이라는 사람이 읽고 자바로 구현을 했습니다. 그리고 무료로 쓸 수 있게 한 것이 바로 하둡
- hadoop이란 이름은 더그커팅의 아들이 노란 코끼리 장난감을 가지고 놀다가 ‘하둡’이라고 했다고 해서 하둡이라고 지었다고 합니다. 그리하여 하둡 생태계(Hadoop Ecosystem)에서 기생하게된 모든 프로그램들 이름이 다 동물이름이 되었다.
- 예를 들면 8기가짜리 30개의 컴퓨터를 240기가를 모두 이용할 수 있게끔 도와준다.
- 데이터의 종류 3가지
- 정형화된 데이터: emp 테이블과 같은 rdbms 에 저장된 테이블 형태의 데이터
- 반정형화된 데이터: html, 웹로그, json 파일
- 비정형화된 데이터: 동영상, 이미지, 텍스트 데이터
- 현업의 하둡 사용 예시
- 채팅방의 글 데이터(비정형 데이터)를 다 하둡에 저장합니다.
- 특정 단어를 자주 사용하는 채팅방의 형태를 분석한다.
- 머신러닝을 사용하여 채팅 데이터를 학습시키고 특정 단어를 사용하거나 불건전한 대화를 이끌 가능성(확률)이 높은 방을 미리 예측하고 모니터링한다. 그리고 채팅방을 자동 패쇄시킨다.
- 미국사례: 뉴욕타임즈는 130년 분량의 신문기사 1100만 페이지를 하둡을 이용해서 단 하루만에 pdf로 변환 이때 든 비용이 200만원밖에 안들었음 만약에 하둡이 아닌 일반 서버를 사용했다면 14년이 걸렸을 것으로 예상
- 하둡구성도
- 네임노드: 메타데이터(데이터의 위치정보)가 위치하는 곳
- 보조네임노드: 네임노드 컴퓨터가 다운되었을때 대비해서 필요한 노드
- 주기적으로 네임노드의 메타 데이터를 백업하면서 네임노드가 다운되었을때 사용하려고 준비하는 노드
- 데이터 노드: emp.csv와 같은 데이터들을 저장하는 컴퓨터들
- 만약 우리가 우리반 컴퓨터 30대를 하둡 파일시스템으로 구성한다면
- 영화 인셉션을 생각하면 되는데 컴퓨터의 윈도우→가성의서버
- 현실→꿈→꿈
- 네임노드 1대, 보조네이노드 1대, 28대의 데이터 노드들로 구성되는 것입니다.
- 막간 꿀팁
저렴한 비용으로 빅데이터를 저장하고 분석할 수 있게 해줬기 때문에 하둡이 큰 인기를 얻게 되었다. 하둡? 여러대의 컴퓨터를 하나로 묶어서 마치 하나의 서버처럼 보이게하는 기술
하둡(자바) ———→자바로 emp와 dept를 조인했는데 hive, pig, mongodb, zookeeper
회사내에 서버를 둬야한다 → 하둡→hiveSQL
회사외 서버에 데이터를 둬도 된다 → 클라우드(아마존(엘라스틱서치SQL), 구글(BigQuery(SQL)))
위의 데이터관리와 검색과 머신러닝까지 전부 쉽게 구현할 수 있게 제공하는 솔루션에 취업을 하게 되면 그 솔루션 회사에 프로그램을 가지고 데이터 분석을 하는 엔지니어가 됩니다.버튼클릭으로머신러닝돌리고 버튼클릭으로 시각화하고 그런 솔루션회사는 연봉은 많이 주는데 그곳에서만 쓰는 프로그램을 쓰기 때문에 이직하기가어려움
윈도우(현실세계) → 리눅스 가상환경(꿈) → 하둡(꿈)→hive SQL
하둡→ 하둡관리명령어→ hiveSQL→ Mongodb→ 스파크SQL
위의 수업내용은 아이티위 교육센터의 유연수 선생님 수업을 바탕으로 재구성, 정리한 내용입니다.
'LINUX' 카테고리의 다른 글
스파크 NameNode(네임노드)가 안 열릴 때 해결 방법 (2) | 2023.04.26 |
---|