udemy - hadoop 기초강의를 보면서 정리한 내용입니다
첫 번째 섹션에서는 하둡에 대한 대략적인 설명으로 이루어졌다.
가상환경에서 실습해보기
virtual box , sandbox hortonworks 활용하기
유데미에서는 virtual box를 통해 가상환경을 구축하여 실습/강의를 진행했다.
virtualbox에 대한 자세한 설명은 해당 블로그를 참고했다.
virtualbox는 말그대로 하나의 가상컴퓨터 프로그램이며, 사용해보니 UI가 비교적 쉬워서 클릭 몇번으로 가상의 컴퓨터를 설정하고 켤수 있었다. 즉 가상의 리눅스 환경에 하둡을 설치해서 이런저런 실습을 해볼 수 있었다.
1. virtual box 설치 -> https://www.virtualbox.org/
2. 그리고 이 가상 os에 hortonworks data platform(HDP)를 설치해서 구동해준다.
-> https://www.cloudera.com/downloads/hortonworks-sandbox/hdp.html
hortonworks는 일종의 분산 스토리지 및 대규모 멀티소스 데이터세트 처리를 위한 오픈소스 프레임 워크이다.
추가적인 설명은 해당 블로그 참고
-> 추가 참고
https://sungwoonblog.tistory.com/1
You might not have enough RAM – remember you need at least 8GB of free RAM, not total RAM.
내 맥북은 토탈 램이 8기가라서 virtual box에서 hdp sandbox를 실행하지 못했다
하둡 에코 시스템을 구동하는 플랫폼 중에서 가장 유명한 것이 cloudera와 hortonworks이다.
그러나 이 두 회사가 합병했다.
새 제품인 cloudera data platform(CDP) 사용을 권장한다고 한다.
실제로 cloudera 사이트 들어가면 hortonworks는 약간 찬밥 신세..? (2019년 말에 출시 했다.)
사실 저 둘은 내부 오픈소스 기술은 동일하며 어떻게 포장하고 관리하느냐의 차이가 있을 뿐이다.
HDP sandbox는 virtualbox뿐 아니라 docker에서도 구동할 수 있다.
hadoop platform as a service in the cloud
AWS
- emr
https://pearlluck.tistory.com/636
GCP
- dataproc
하둡의 개요와 역사
하둡은 범용 하드웨어로 구축된 컴퓨터 클러스터에서 아주 방대한 데이터 세트를 분산해 저장하고 처리하는 오픈소스 소프트 웨어 플랫폼이다. 소프트웨어 플랫폼이란 한대의 PC가 아닌 컴퓨터 클러스터에서 작동하는 소프트웨어 묶음이라는 의미이다.
즉 Hadoop은 어느 데이터 센터의 선반에서 작동 중인 컴퓨터 클러스터 전체에 실행되도록 설계되어있다.
다시 말해, Hadoop은 다수의 PC를 활용해 빅데이터를 다룬다는 것이다.
분산 저장 및 분산 처리
1. 분산 저장은 Hadoop이 제공하는 주 기능
- 빅데이터를 다룬다면 아마 매일 몇 테라바이트 혹은 그 이상의 데이터를 받게 될 것이며 이 많은 데이터를 어디에 저장하여 관리할 건지에 대한 고민이 생길 것이다.
- 분산 저장의 장점은 클러스터에 컴퓨터를 더하기만 하면 그 컴퓨터의 하드 드라이브가 데이터 저장소의 일부가 된다는 것이다.
Hadoop은 클러스터의 모든 하드 드라이브에 걸쳐 분산돼 있는 모든 데이터를 단일 파일 시스템으로 보여준다.
즉 여러 클러스터(일종의 컴퓨터)에 분산되어 저장된 데이터를 관리자 입장에서는 하나의 시스템으로 정리돼서 보고 관리할 수 있는 것이다.
2. 분산 저장시 데이터 백업 복제본 생성
- 뿐만 아니라 데이터의 여분도 제공단다. 이 말은 하둡에 데이터가 분산되어 저장될 때 자동으로 복제본이 생성되어서 분산 저장된다는 것이다. 백업 복제본이 존재하여 필요할 때 자동으로 소실된 데이터를 복구하기 때문에 데이터가 회복력이 있어 신뢰할 수 있게된다.
3. 데이터 분산 처리
기본적으로 Hadoop은 데이터를 분산 처리 한다. 데이터를 클러스터 전체에 걸쳐 저장할 뿐만 아니라 그 데이터를 처리할 때도 클러스터의 컴퓨터들을 활용해 분산처리 하는 것이다. 데이터를 다른 양식으로 전환하거나 다른 시스템으로 전송할 때 혹은 집계해야 할 때 Hadoop은 이 모든 작업을 병렬로 처리한다. 클러스터 내 모든 컴퓨터 CPU에게 이 작업을 분배하여 동시에 처리하게 하는 것이다. 이렇게 하면 그 많은 데이터를 신속하게 감당할 수 있다.
Hadoop의 역사
Hadoop은 실제로 빅데이터를 다루기 위한 첫 번째 솔루션은 아니었고 구글이 원조격이라고 볼 수 있다.
1. GFS의 등장(Google File System)
Hadoop은 원래 야후가 개발했고, 당시 'Nutch'라는 오픈 소스 웹 검색 엔진을 개발하고 있었는데 구글이 발표한 논문들을 보고 참고한 것이다.
2. Hadoop의 등장
Hadoop을 사용하는 이유
-> 빅데이터의 등장. 즉 데이터의 크기가 엄청나며 종류도 다양하다. PC 한 대는 충분하지 않다. 아무리 큰 서버 한대를 사용해도 이제는 그 한계에 도달해 더 이상 확장할 수 없는 단계에 이르렀다.
-> 뿐만 아니라 '디스크 검색 시간'도 고려해야한다. 즉 데이터가 너무 커서 저장을 해도 검색하는데 엄청 시간이 걸리게 된 것이다.
-> 그러니 수많은 하드 드라이브가 있는 컴퓨터 클러스터를 사용하는데 분명한 이점이 있다. 수많은 디스크 헤드가 동시에 검색할 수 있다.
-> 클러스터의 가용 자원을 기억해 놓고 문제가 생기면 알아서 백업 복사본으로 대체 작동한다.
-> 처리 속도 역시 우월하다. 클러스터에 많은 CPU가 존재한다는 이점을 활용해 주어진 작업을 병렬 처리한다.
-> Hadoop 클러스터는 선형이라 수평적으로 확장한다. 더 많은 데이터를 다루거나 더 빨리 처리해야 한다면 클러스터에 컴퓨터를 추가하면 추가한 만큼 더 빨라진다.
수직적 확장 기존 머신의 성능을 업그레이드하는 것으로 수직적 확장으로는 아무리 머신을 늘려도 '디스크 검색 시간'이 줄지 않는다
-> Hadoop은 원래 일괄 처리만을 위해 만들어졌었는데, 이제는 Hadoop 위에 구축된 다른 애플리케이션을 사용하여 대화식 쿼리가 가능
하둡 에코 시스템 개요
참고자료
https://netflixtechblog.com/hadoop-platform-as-a-service-in-the-cloud-c23f35f965e7
'DE > Study' 카테고리의 다른 글
[Hadoop_기초] Udemy course - 섹션 2.MapReduce (0) | 2022.06.05 |
---|---|
[Hadoop_기초] Udemy course - 섹션 2-1.HDFS (0) | 2022.06.01 |
[Hadoop_기초] 5. Hadoop 활용 (0) | 2022.03.26 |
[Hadoop_기초] 4. Hadoop MapReduce의 이해 (0) | 2022.03.26 |
[Hadoop_기초] 3. Hadoop 분산파일시스템 이해(2) (0) | 2022.03.25 |