Apache Hadoop
Apache Hadoop![]() | |
원저작자 | 더그 커팅, 마이크 카파렐라 |
---|---|
개발자 | Apache 소프트웨어 재단 |
초기 릴리즈 | 2006년 4월 1일, [1] | 전(
안정된 릴리스 | |
저장소 | 하둡 저장소 |
기입처 | 자바 |
운영 체제 | 크로스 플랫폼 |
유형 | 분산 파일 시스템 |
면허증. | Apache 라이센스 2.0 |
웹 사이트 | hadoop |
Apache Hadoop( /hˈdudupp/)은 많은 컴퓨터의 네트워크를 사용하여 대량의 데이터 및 컴퓨팅과 관련된 문제를 쉽게 해결할 수 있는 오픈 소스 소프트웨어 유틸리티 모음입니다.MapReduce 프로그래밍 모델을 사용하여 빅데이터의 분산 저장 및 처리를 위한 소프트웨어 프레임워크를 제공합니다.Hadoop은 원래 상용 하드웨어로 구축된 컴퓨터 클러스터를 위해 설계되었으며,[3] 지금도 일반적으로 사용되고 있습니다.이후 하이엔드 [4][5]하드웨어 클러스터에서도 사용되고 있습니다.Hadoop의 모든 모듈은 하드웨어 장애는 자주 발생하며 프레임워크에 [6]의해 자동으로 처리되어야 한다는 기본적인 가정을 바탕으로 설계되었습니다.
Apache Hadoop의 핵심은 HDFS(Hadoop Distributed File System)로 알려진 스토리지 부분과 MapReduce 프로그래밍 모델인 처리 부분으로 구성됩니다.Hadoop은 파일을 큰 블록으로 나누어 클러스터의 노드에 배포합니다.그런 다음 패키지화된 코드를 노드로 전송하여 데이터를 병렬로 처리합니다.이 접근 방식은 노드가 액세스할 수 있는 데이터를 조작하는 데이터 [7]인접성을 활용합니다.이를 통해 고속 [8][9]네트워킹을 통해 연산과 데이터를 분산하는 병렬 파일 시스템에 의존하는 기존 슈퍼컴퓨터 아키텍처보다 데이터셋을 더 빠르고 효율적으로 처리할 수 있습니다.
기본 Apache Hadoop 프레임워크는 다음 모듈로 구성됩니다.
- Hadoop Common – 다른 Hadoop 모듈에 필요한 라이브러리와 유틸리티가 포함되어 있습니다.
- HDFS(Hadoop Distributed File System) – 범용 머신에 데이터를 저장하여 클러스터 전체에서 매우 높은 총 대역폭을 제공하는 분산 파일 시스템.
- Hadoop WARN – (2012년 도입)클러스터 내 컴퓨팅 리소스를 관리하고 이를 사용하여 사용자의 애플리케이션을 [10][11]스케줄링하는 플랫폼.
- Hadoop MapReduce – 대규모 데이터 처리를 위한 MapReduce 프로그래밍 모델의 구현입니다.
- Hadoop Ozone – (2020년에 도입) Hadoop용 객체 저장소
용어는 Hadoop때로는 둘 다 기본 모듈 및개의 서브 모듈을 요구하고 또는 추가 소프트웨어 패키지 혹은 Hadoop, 아파치 돼지 고기, 아파치 Hive, 아파치 HBase, 아파치 피닉스, 아파치 스파크에 따르면, 아파치 ZooKeeper, Cloudera 임팔라, 아파치 Flume, 아파치 Sqoop, 아파치 Oozie등과 함께 위에 설치할 수 있는 수집, ecosystem,[12]a사용된다A는파체 [13]스톰
Apache Hadoop의 MapReduce 및 HDFS 구성 요소는 MapReduce 및 Google File [14]System에 있는 Google 페이퍼에서 영감을 받았습니다.
Hadoop 프레임워크 자체는 대부분 Java 프로그래밍 언어로 작성되며 일부 네이티브 코드와 명령줄 유틸리티는 셸 스크립트로 작성됩니다.MapReduce Java 코드가 일반적이지만, 어떤 프로그래밍 언어든 Hadoop Streaming과 함께 사용하여 맵을 구현하고 사용자 [15]프로그램의 일부를 줄일 수 있습니다.Hadoop 생태계의 다른 프로젝트에서는 보다 풍부한 사용자 인터페이스가 노출됩니다.
역사
공동 창립자인 Doug Cutting과 Mike Cafarela에 따르면,[16][17] Hadoop의 기원은 2003년 10월에 발행된 Google File System 논문이라고 합니다.이 논문은 구글에서 또 다른 논문인 "MapReduce:대규모 클러스터에서의 데이터 처리의 심플화」.[18]Apache Nutch 프로젝트에서 개발이 시작되었지만 2006년 [19]1월에 새로운 Hadoop 하위 프로젝트로 이전되었습니다.그 당시 야후에서 일하고 있던 더그 커팅은 아들의 장난감 [20]코끼리의 이름을 따서 이름을 지었다.Nutch에서 추출한 초기 코드는 HDFS용 약 5,000줄, MapReduce용 약 6,000줄의 코드로 구성되었다.
2006년 3월, Owen O'Malley는 Hadoop [21]프로젝트에 처음 추가된 커밋터였습니다. Hadoop 0.1.0은 2006년 [22]4월에 출시되었습니다.프로젝트에 [23]대한 공헌을 통해 계속 발전하고 있습니다.Hadoop 분산 파일 시스템의 첫 번째 설계 문서는 2007년에 [24]Dhruba Borthakur에 의해 작성되었습니다.
아키텍처
Hadoop은 파일 시스템 및 운영 체제 레벨 추상화를 제공하는 Hadoop Common 패키지, MapReduce 엔진(MapReduce/MR1 또는 YAN/MR2)[25] 및 Hadoop 분산 파일 시스템(HDFS)으로 구성됩니다.Hadoop Common 패키지에는 Hadoop을 시작하는 데 필요한 Java Archive(JAR) 파일과 스크립트가 포함되어 있습니다.
효율적인 작업 스케줄링을 위해 모든 Hadoop 호환 파일 시스템은 랙 이름, 특히 작업자 노드가 있는 네트워크 스위치인 위치 인식을 제공해야 합니다.Hadoop 애플리케이션은 이 정보를 사용하여 동일한 랙/스위치에서 데이터가 있는 노드에서 코드를 실행할 수 있으며, 이 경우 백본 트래픽을 줄일 수 있습니다.HDFS는 여러 랙에서 데이터 용장성을 위해 데이터를 복제할 때 이 방법을 사용합니다.이 방법을 사용하면 랙 정전 또는 스위치 장애의 영향을 줄일 수 있습니다.이러한 하드웨어 장애 중 하나가 발생해도 데이터는 사용 [26]가능한 상태로 유지됩니다.
소규모 Hadoop 클러스터에는 단일 마스터 노드와 여러 작업자 노드가 포함됩니다.마스터 노드는 Job Tracker, Task Tracker, NameNode 및 DataNode로 구성됩니다.슬레이브 노드 또는 워커 노드는 DataNode 및 TaskTracker 역할을 모두 수행하지만 데이터 전용 및 컴퓨팅 전용 워커 노드를 사용할 수도 있습니다.통상, 이것들은 비표준의 [27]애플리케이션에서만 사용됩니다.
Hadoop을 사용하려면 Java Runtime Environment(JRE) 1.6 이상이 필요합니다.표준 기동 스크립트 및 셧다운스크립트에서는 [28]클러스터 내의 노드간에 Secure Shell(SSH;시큐어 셸)을 설정할 필요가 있습니다.
대규모 클러스터에서는 HDFS 노드는 파일 시스템 인덱스를 호스트하는 전용 NameNode 서버와 네임노드 메모리 구조의 스냅샷을 생성할 수 있는 세컨더리 NameNode를 통해 관리되므로 파일 시스템 손상 및 데이터 손실을 방지할 수 있습니다.마찬가지로 독립 실행형 JobTracker 서버는 노드 간의 작업 예약을 관리할 수 있습니다.Hadoop MapReduce를 대체 파일 시스템과 함께 사용할 경우 HDFS의 NameNode, Secondary NameNode 및 DataNode 아키텍처가 파일 시스템별 동등한 아키텍처로 대체됩니다.
파일 시스템
하둡 분산 파일 시스템
HDFS(Hadoop 분산 파일 시스템)는 Hadoop 프레임워크용으로 Java로 작성된 확장 가능한 분산 파일 시스템입니다.일부에서는 POSIX 컴플라이언스가 [29]없기 때문에 데이터 스토어로 간주하지만 다른 파일 [30]시스템과 유사한 셸 명령 및 Java Application Programming Interface(API; Java 응용 프로그램프로그래밍 인터페이스) 메서드를 제공합니다.Hadoop 인스턴스는 HDFS와 MapReduce로 나뉩니다.HDFS는 데이터 저장에 사용되며 MapReduce는 데이터 처리에 사용됩니다.HDFS에는 다음과 같은 5가지 서비스가 있습니다.
- 이름 노드
- 보조 이름 노드
- 작업 추적기
- 데이터 노드
- 태스크 트래커
상위 3개는 마스터 서비스/데몬/노드이고, 하위 2개는 슬레이브 서비스입니다.마스터 서비스는 서로 통신할 수 있으며 슬레이브 서비스도 동일한 방식으로 서로 통신할 수 있습니다.이름 노드는 마스터 노드이고 데이터 노드는 대응하는 슬레이브 노드이며 서로 통신할 수 있습니다.
이름 노드: HDFS는 마스터 노드라고 불리는 이름 노드 1개로만 구성됩니다.마스터 노드는 파일을 추적하고 파일 시스템을 관리할 수 있으며 저장된 모든 데이터의 메타데이터를 가지고 있습니다.특히 이름 노드에는 블록 수, 데이터가 저장되는 데이터 노드의 위치, 레플리케이션이 저장되는 위치 및 기타 세부 정보가 포함됩니다.이름 노드는 클라이언트와 직접 연결됩니다.
데이터 노드: 데이터 노드는 데이터를 블록으로 저장합니다.이것은 슬레이브 노드라고도 불리며 실제 데이터를 HDFS에 저장합니다.HDFS는 클라이언트의 읽기 및 쓰기를 담당합니다.이건 노예 데몬이야모든 데이터 노드는 3초마다 [이름(Name)]노드로 하트비트 메시지를 전송하고 활성화되었음을 전달합니다.이와 같이 이름 노드가 2분 동안 데이터 노드로부터 하트비트를 수신하지 않으면 해당 데이터 노드가 비활성 상태로 간주되고 다른 데이터 노드에서 블록 복제 프로세스가 시작됩니다.
보조 이름 노드:이는 이름 노드에 있는 파일 시스템 메타데이터의 체크포인트를 관리하기 위한 것일 뿐입니다.이것은 체크 포인트노드라고도 불립니다.이름 노드의 도우미 노드입니다.세컨더리 이름 노드는 이름 노드에 fsimage & editlog 파일을 만들고 전송하도록 지시합니다.이 파일에서는 세컨더리 이름 [31]노드에 의해 압축된 fsimage 파일이 생성됩니다.
Job Tracker : Job Tracker는 클라이언트로부터 Map Reduce 실행 요청을 받습니다.Job Tracker는 Name 노드와 통신하여 처리에 사용할 데이터의 위치를 확인합니다.이름 노드는 필요한 처리 데이터의 메타데이터로 응답합니다.
작업 추적기:Job Tracker의 Slave Node이며 Job Tracker에서 작업을 수행합니다.또한 Job Tracker로부터 코드를 수신합니다.Task Tracker가 코드를 가져와서 파일에 적용합니다.파일에 코드를 적용하는 과정을 매퍼라고 [32]합니다.
Hadoop 클러스터에는 명목상 단일 네임노드와 데이터 노드 클러스터가 있지만, 중요성 때문에 네임노드에 중복 옵션을 사용할 수 있습니다.각 데이터 노드는 HDFS에 특화된 블록 프로토콜을 사용하여 네트워크를 통해 데이터 블록을 제공합니다.파일 시스템은 통신에 TCP/IP 소켓을 사용합니다.클라이언트는 Remote Procedure Call(RPC; 리모트프로시저 콜)을 사용하여 서로 통신합니다.
HDFS는 대용량 파일(일반적으로 기가바이트에서[33] 테라바이트 범위)을 여러 기계에 저장합니다.여러 호스트에 걸쳐 데이터를 복제하여 신뢰성을 확보하므로 이론적으로는 호스트에 RAID(독립 디스크) 스토리지의 다중 어레이가 필요하지 않습니다(단, 입출력(I/O) 성능을 높이기 위해 일부 RAID 구성이 여전히 유용합니다).디폴트 레플리케이션 값 3에서는 데이터는 3개의 노드에 저장됩니다.2개는 같은 랙에, 1개는 다른 랙에 저장됩니다.데이터 노드는 서로 통신하여 데이터의 균형을 재조정하고 복사본을 이동하며 데이터 복제를 높게 유지할 수 있습니다.HDFS는 POSIX 파일 시스템의 요구사항이 Hadoop 애플리케이션의 목표와 다르기 때문에 POSIX와 완전히 호환되지는 않습니다.POSIX에 준거한 파일 시스템이 없는 경우의 단점은 데이터 throughput의 퍼포먼스 향상과 Append [34]등의 비 POSIX 조작의 서포트입니다.
2012년 5월, 하이 [35]어베이러빌리티 기능이 HDFS에 추가되어 NameNode라고 불리는 메인 메타데이터 서버가 수동으로 백업에 페일오버할 수 있게 되었습니다.이 프로젝트에서는 자동 페일오버 개발도 시작되었습니다.
HDFS 파일시스템에는 이른바 세컨더리 네임노드가 포함되어 있습니다.세컨더리 네임노드는 프라이머리 네임노드가 오프라인 상태가 되었을 때 백업 네임노드로 잘못 해석될 수 있습니다.실제로 세컨더리 네임노드는 프라이머리 네임노드에 정기적으로 접속하여 프라이머리 네임노드의 디렉토리 정보의 스냅샷을 작성합니다.이러한 정보는 로컬 또는 리모트디렉토리에 보존됩니다.이러한 체크포인트된 이미지를 사용하여 파일 시스템액션 저널 전체를 재생하지 않고 장애가 발생한 프라이머리 네임노드를 재시작하고 로그를 편집하여 최신 디렉토리 구조를 생성할 수 있습니다.네임노드는 메타데이터의 저장과 관리를 위한 단일 지점이기 때문에 대량의 파일, 특히 다수의 작은 파일을 지원하는 데 병목현상이 될 수 있습니다.새롭게 추가된 HDFS Federation은 여러 개의 네임스페이스를 별도의 네임노드로 서비스함으로써 이 문제에 어느 정도 대처하는 것을 목표로 하고 있습니다.또한 HDFS에는 작은 파일 문제, 확장성 문제, SPOF(Single Point of Failure), 대규모 메타데이터 요청의 병목 현상 등 몇 가지 문제가 있습니다.HDFS를 사용하는 한 가지 장점은 작업 추적기와 작업 추적기 사이의 데이터 인식입니다.작업 추적기 스케줄은 데이터 위치를 인식하여 작업을 태스크 추적기에 매핑하거나 줄입니다.예를 들어 노드 A에 데이터(a, b, c)가 포함되어 노드 X에 데이터(x, y, z)가 포함되어 있는 경우, 작업 트래커는 노드 A에 대해 맵을 실행하거나 태스크를 줄이도록 스케줄링하고 노드 X는 (x, y, z)에서 맵을 실행하거나 태스크를 줄이도록 스케줄링한다.이것에 의해, 네트워크를 통과하는 트래픽의 양이 삭감되어 불필요한 데이터 전송이 회피됩니다.Hadoop을 다른 파일 시스템과 함께 사용할 경우 이러한 이점을 항상 누릴 수 있는 것은 아닙니다.이는 데이터 집약적인 [36]작업에서 입증되었듯이 작업 완료 시간에 큰 영향을 미칠 수 있습니다.
HDFS는 대부분 불변 파일용으로 설계되어 동시 쓰기 [34]작업이 필요한 시스템에는 적합하지 않을 수 있습니다.
HDFS는 Linux 및 기타 Unix 시스템에서 Filesystem in Userspace(FUSE) 가상 파일 시스템을 사용하여 직접 마운트할 수 있습니다.
파일 액세스는 네이티브 Java API인 Thrift API(여러 언어로 클라이언트를 생성함)를 통해 수행할 수 있습니다.C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk 및 OCaml), 명령줄 인터페이스, HTTP를 통한 HDFS-UI 웹 애플리케이션 또는 서드파티 네트워크 클라이언트 [37]라이브러리를 통해 제공됩니다.
HDFS는 다양한 하드웨어 플랫폼 간의 이식성과 다양한 기본 운영 체제와의 호환성을 고려하여 설계되었습니다.Java 구현에서는 HDFS가 [38]실행되고 있는 플랫폼 전용 기능을 사용할 수 없기 때문에 HDFS 설계에는 일부 성능 병목 현상이 발생하는 휴대성 제한이 있습니다.엔터프라이즈 레벨의 인프라스트럭처에 폭넓게 통합되기 때문에 HDFS의 퍼포먼스를 규모에 맞게 감시하는 것이 점점 더 중요해지고 있습니다.엔드 투 엔드 성능을 모니터링하려면 데이터 노드, 이름 노드 및 기본 [39]운영 체제에서 메트릭을 추적해야 합니다.현재 Hortonworks, Cloudera, Datadog 등 HDFS 성능을 추적하는 여러 모니터링 플랫폼이 있습니다.
기타 파일 시스템
Hadoop은 기본 운영 체제에서 마운트할 수 있는 모든 분산 파일 시스템과 직접 호환됩니다.file://
URL. 단, 여기에는 로컬의 손실이라는 대가가 따릅니다.네트워크 트래픽을 줄이기 위해 Hadoop은 데이터에 가장 가까운 서버, 즉 Hadoop 전용 파일 시스템 브릿지가 제공할 수 있는 정보를 알아야 합니다.
2011년 5월에 Apache Hadoop과 함께 번들된 지원되는 파일 시스템 목록은 다음과 같습니다.
- HDFS: Hadoop 자체 랙 인식 파일 시스템.[40]이는 수십 페타바이트의 스토리지로 확장되도록 설계되었으며 기본 운영 체제의 파일 시스템에서 실행됩니다.
- Apache Hadoop Ozone: 수십억 개의 작은 파일에 최적화된 HDFS 호환 객체 저장소.
- FTP 파일 시스템:원격 액세스 가능한 FTP 서버에 모든 데이터를 저장합니다.
- Amazon S3(Simple Storage Service) 객체 스토리지:이는 Amazon Elastic Compute Cloud 서버 온디맨드 인프라에서 호스팅되는 클러스터를 대상으로 합니다.이 파일 시스템은 모두 리모트이기 때문에 랙 인식이 없습니다.
- Windows Azure Storage Blobs(WASB) 파일 시스템:이는 Hadoop 배포가 데이터를 클러스터로 영구적으로 이동하지 않고도 Azure Blob 저장소에 있는 데이터에 액세스할 수 있도록 지원하는 HDFS의 확장입니다.
많은 타사 파일 시스템 브리지도 작성되었지만, 현재 Hadoop 배포판에 있는 파일 시스템은 없습니다.그러나 일부 상업용 Hadoop 배포판에는 대체 파일 시스템(특히 IBM과 MapR)이 기본으로 제공됩니다.
- 2009년에 IBM은 IBM General Parallel File [41]System을 통해 Hadoop을 실행하는 것에 대해 논의했습니다.소스코드는 2009년 [42]10월에 발행되었다.
- 2010년 4월, Parascale은 Parascale 파일 [43]시스템에 대해 Hadoop을 실행하기 위한 소스 코드를 공개했습니다.
- 2010년 4월 Appistry는 자체 클라우드용 Hadoop 파일 시스템 드라이버를 출시했습니다.IQ 스토리지 제품.[44]
- 2010년 6월에 HP는 위치 인식 IBRIX Fusion 파일 시스템 [45]드라이버에 대해 논의했습니다.
- 2011년 5월 MapR Technologies Inc.는 HDFS 파일 시스템을 완전한 랜덤 액세스 읽기/쓰기 파일 시스템으로 대체한 MapR FS라는 대체 파일 시스템을 사용할 수 있다고 발표했습니다.
JobTracker 및 TaskTracker: MapReduce 엔진
파일 시스템 맨 위에 MapReduce Engine이 있습니다.MapReduce Engine은 클라이언트애플리케이션이 MapReduce 작업을 송신하는 1개의 JobTracker로 구성됩니다.JobTracker는 클러스터 내의 사용 가능한 TaskTracker 노드에 작업을 푸시하여 작업을 가능한 한 데이터에 가깝게 유지하려고 합니다.랙 대응 파일 시스템을 사용하면 JobTracker는 데이터를 포함하는 노드와 근처에 있는 다른 머신을 파악합니다.데이터가 상주하는 실제 노드에서 작업을 호스트할 수 없는 경우 동일한 랙 내의 노드에 우선순위를 부여합니다.이것에 의해, 메인 백본네트워크상의 네트워크트래픽이 감소합니다.TaskTracker가 실패하거나 시간 초과되면 작업의 해당 부분이 다시 예약됩니다.각 노드의 TaskTracker는 실행 중인 작업이 JVM을 크래시할 때 TaskTracker 자체의 장애를 방지하기 위해 별도의 Java Virtual Machine(JVM; Java 가상 머신) 프로세스를 생성합니다.상태를 확인하기 위해 몇 분마다 하트비트가 TaskTracker에서 JobTracker로 전송됩니다.Job Tracker 및 TaskTracker 상태 및 정보는 Jetty에 의해 노출되며 웹 브라우저에서 볼 수 있습니다.
이 접근방식의 기존 제한사항은 다음과 같습니다.
- TaskTracker에 대한 작업 할당은 매우 간단합니다.모든 TaskTracker에는 사용 가능한 슬롯이 여러 개 있습니다(예: "4 슬롯").활성 맵 또는 축소 태스크는 모두 1개의 슬롯을 차지합니다.Job Tracker는 사용 가능한 슬롯이 있는 데이터에 가장 가까운 Tracker에 작업을 할당합니다.할당된 머신의 현재 시스템 부하, 즉 실제 가용성은 고려되지 않습니다.
- 하나의 TaskTracker가 매우 느리면 MapReduce 작업 전체가 지연될 수 있습니다.특히 모든 것이 가장 느린 작업을 대기하게 되는 마지막 시점에서는 더욱 그렇습니다.단, 투기적 실행이 활성화되어 있는 경우 여러 슬레이브 노드에서 단일 작업을 실행할 수 있습니다.
스케줄
기본적으로 Hadoop은 FIFO 스케줄링과 5가지 스케줄링 우선순위를 사용하여 작업 대기열에서 작업을 [46]스케줄링합니다.버전 0.19에서는 작업 스케줄러는 JobTracker에서 리팩터링되고 대체 스케줄러(Fair 스케줄러 또는 Capacity 스케줄러,[47] 다음에 설명)를 사용하는 기능이 추가되었습니다.
공정 스케줄러
페어 스케줄러는 페이스북에 [48]의해 개발되었다.공정 스케줄러의 목표는 소규모 작업의 경우 빠른 응답 시간을 제공하고 프로덕션 작업의 경우 QoS(Quality of Service)를 제공하는 것입니다.페어 스케줄러는 세 가지 기본 [49]개념을 가지고 있습니다.
- 작업은 풀로 그룹화됩니다.
- 각 풀에는 보장된 최소 공유가 할당됩니다.
- 초과 용량은 작업 간에 분할됩니다.
기본적으로 범주화되지 않은 작업은 기본 풀에 들어갑니다.풀은 맵 슬롯의 최소 수를 지정하고 슬롯을 줄이며 실행 중인 작업 수에 대한 제한을 지정해야 합니다.
용량 스케줄러
용량 스케줄러는 야후에서 개발했습니다.capacity scheduler는 Fair [50]scheduler와 유사한 몇 가지 기능을 지원합니다.
- 큐에는 총 자원 용량의 극히 일부만 할당됩니다.
- 사용 가능한 리소스는 총 용량을 초과하는 큐에 할당됩니다.
- 대기열 내에서 우선 순위가 높은 작업은 대기열 리소스에 액세스할 수 있습니다.
작업이 실행되면 프리엠프션은 없습니다.
Hadoop과 Hadoop(YARN)
Hadoop 1과 Hadoop 2의 가장 큰 차이점은 Hadoop의 첫 번째 버전에서 MapReduce 엔진을 대체한 Yet Another Resource Negotiator(YAN)가 추가되었다는 것입니다.WARN은 다양한 애플리케이션에 자원을 효율적으로 할당하기 위해 노력하고 있습니다.2개의 다른 태스크(작업 추적 및 애플리케이션에 대한 리소스 할당을 수행하는 리소스 매니저, 실행 진행 상황을 모니터링하는 애플리케이션 마스터)를 수행합니다.
Hadoop 2와 Hadoop 3의 차이점
Hadoop 3에서 제공하는 중요한 기능이 있습니다.예를 들어, Hadoop 2에 하나의 이름 노드가 있는 반면, Hadoop 3은 여러 개의 이름 노드를 사용할 수 있도록 해 단일 장애 지점 문제를 해결합니다.
Hadoop 3에는 Docker의 원리로 작동하는 컨테이너가 있어 애플리케이션 개발에 소요되는 시간을 단축합니다.
가장 큰 변화 중 하나는 Hadoop 3가 삭제 코딩으로 스토리지 오버헤드를 줄인다는 것입니다.
또한 Hadoop 3을 사용하면 클러스터 내에서 GPU 하드웨어를 사용할 수 있으므로 Hadoop 클러스터에서 [51]딥 러닝 알고리즘을 실행할 수 있는 상당한 이점이 있습니다.
기타 응용 프로그램
HDFS는 MapReduce 작업으로 제한되지 않습니다.Apache에서 개발 중인 다른 응용 프로그램에도 사용할 수 있습니다.목록에는 HBase 데이터베이스, Apache Mahout 머신 러닝 시스템 및 Apache Hive 데이터 웨어하우스가 포함됩니다.이론적으로 Hadoop은 실시간이 아닌 배치 지향적이고 데이터 집약적이며 병렬 프로세싱의 이점을 제공하는 모든 워크로드에 사용할 수 있습니다.또한 람다 아키텍처, Apache Storm, Flink 및 Spark [52]Streaming과 같은 실시간 시스템을 보완하는 데도 사용할 수 있습니다.
Hadoop의 상용 애플리케이션은 다음과 같습니다.[53]
주요 사용 사례
2008년 2월 19일 야후!Inc.는 세계 최대의 하둡 프로덕션 애플리케이션을 출시했습니다.야후!Search Webmap은 10,000개 이상의 코어가 있는 Linux 클러스터에서 실행되며 모든 Yahoo! 웹 검색 [54]쿼리에 사용된 데이터를 생성하는 Hadoop 응용 프로그램입니다.Yahoo!에는 여러 개의 Hadoop 클러스터가 있으며 HDFS 파일 시스템이나 MapReduce 작업은 여러 데이터 센터로 분할되지 않습니다.모든 Hadoop 클러스터 노드는 Hadoop 배포를 포함하여 Linux 이미지를 부트스트랩합니다.클러스터가 실행하는 작업에는 Yahoo! 검색 엔진에 대한 인덱스 계산이 포함되어 있습니다.2009년 6월, Yahoo!는 자사의 Hadoop 버전의 소스 코드를 오픈 소스 [55]커뮤니티에 공개했습니다.
2010년에 Facebook은 21PB의 스토리지를 [56]보유한 세계에서 가장 큰 하둡 클러스터를 보유하고 있다고 주장했습니다.2012년 6월에는 데이터가 100PB로[57] 증가했다고 발표했으며, 그 해 말에는 데이터가 [58]매일 약 0.5PB씩 증가했다고 발표했습니다.
2013년에는[update] Fortune 50대 기업 중 절반 이상이 [59]Hadoop을 사용할 정도로 Hadoop 채택이 광범위하게 이루어졌습니다.
클라우드 내 하둡 호스팅
Hadoop은 [60]클라우드뿐만 아니라 기존 온사이트 데이터 센터에도 구현할 수 있습니다.조직은 클라우드를 통해 하드웨어나 특정 설정 [61]전문 지식을 습득하지 않고도 Hadoop을 구현할 수 있습니다.
상용 지원
많은 기업들이 [62]하둡에 대한 상용 구현 또는 지원을 제공합니다.
브랜딩
Apache Software Foundation은 Apache Hadoop 프로젝트에서 공식적으로 출시된 소프트웨어만 Apache Hadoop 또는 Distributions of Apache [63]Hadoop이라고 부를 수 있다고 밝혔습니다.다른 벤더의 제품 및 파생 제품의 명칭과 "호환성"이라는 용어는 Hadoop 개발자 [64]커뮤니티 내에서 다소 논란이 되고 있습니다.
페이퍼
일부 논문은 Hadoop과 빅데이터 처리의 탄생과 성장에 영향을 미쳤습니다.그 중 몇 가지는 다음과 같습니다.
- Jeffrey Dean, Sanjay Ghemawat(2004) MapReduce: 대규모 클러스터에서의 심플한 데이터 처리, Google.이 백서는 Doug Cutting이 Map-Reduce 프레임워크의 오픈 소스 구현을 개발하도록 영감을 주었습니다.아들의 장난감 코끼리의 이름을 따서 하둡이라고 지었어요
- Michael Franklin, Alon Halevy, David Maier (2005)데이터베이스에서 데이터스페이스까지: 정보 관리를 위한 새로운 추상화.저자들은 스토리지 시스템이 모든 데이터 형식을 수용하고 데이터에 대한 스토리지 시스템의 이해를 바탕으로 진화하는 데이터 액세스를 위한 API를 제공해야 한다고 강조합니다.
- Fay Chang 등(2006) 빅테이블: 구조화 데이터를 위한 분산 스토리지 시스템, 구글.
- 로버트 칼만 외(2008) H스토어: 고성능 분산형 메인 메모리 트랜잭션 처리 시스템
「 」를 참조해 주세요.
- Apache Acumulo – 안전한 빅테이블[65]
- Apache Cassandra, Hadoop에서 액세스를 지원하는 열 지향 데이터베이스
- Apache CouchDB, 문서에는 JSON, MapReduce 쿼리에는 JavaScript, API에는 일반 HTTP를 사용하는 데이터베이스
- Apache HCatalog, Hadoop용 테이블 및 스토리지 관리 계층
- 빅데이터
- 데이터 집약적인 컴퓨팅
- HPCC – LexisNexis 리스크 솔루션 하이 퍼포먼스 컴퓨팅 클러스터
- 하이퍼테이블 – HBase 대체
- 섹터/Sphere – 오픈 소스 분산 스토리지 및 처리
- 리소스 관리를 위한 Simple Linux 유틸리티
레퍼런스
- ^ "Hadoop Releases". apache.org. Apache Software Foundation. Retrieved 28 April 2019.
- ^ a b c d e f g "Apache Hadoop". Retrieved 7 September 2019.
- ^ Judge, Peter (22 October 2012). "Doug Cutting: Big Data Is No Bubble". silicon.co.uk. Retrieved 11 March 2018.
- ^ Woodie, Alex (12 May 2014). "Why Hadoop on IBM Power". datanami.com. Datanami. Retrieved 11 March 2018.
- ^ Hemsoth, Nicole (15 October 2014). "Cray Launches Hadoop into HPC Airspace". hpcwire.com. Retrieved 11 March 2018.
- ^ "Welcome to Apache Hadoop!". hadoop.apache.org. Retrieved 25 August 2016.
- ^ "What is the Hadoop Distributed File System (HDFS)?". ibm.com. IBM. Retrieved 12 April 2021.
{{cite web}}
: CS1 maint :url-status (링크) - ^ Malak, Michael (19 September 2014). "Data Locality: HPC vs. Hadoop vs. Spark". datascienceassn.org. Data Science Association. Retrieved 30 October 2014.
- ^ Wang, Yandong; Goldstone, Robin; Yu, Weikuan; Wang, Teng (October 2014). "Characterization and Optimization of Memory-Resident MapReduce on HPC Systems". 2014 IEEE 28th International Parallel and Distributed Processing Symposium. IEEE. pp. 799–808. doi:10.1109/IPDPS.2014.87. ISBN 978-1-4799-3800-1. S2CID 11157612.
- ^ "Resource (Apache Hadoop Main 2.5.1 API)". apache.org. Apache Software Foundation. 12 September 2014. Archived from the original on 6 October 2014. Retrieved 30 September 2014.
- ^ Murthy, Arun (15 August 2012). "Apache Hadoop YARN – Concepts and Applications". hortonworks.com. Hortonworks. Retrieved 30 September 2014.
- ^ "Continuuity Raises $10 Million Series A Round to Ignite Big Data Application Development Within the Hadoop Ecosystem". finance.yahoo.com. Marketwired. 14 November 2012. Retrieved 30 October 2014.
- ^ "Hadoop-related projects at". Hadoop.apache.org. Retrieved 17 October 2013.
- ^ Data Science and Big Data Analytics: Discovering, Analyzing, Visualizing and Presenting Data. John Wiley & Sons. 19 December 2014. p. 300. ISBN 9781118876220. Retrieved 29 January 2015.
- ^ "[nlpatumd] Adventures with Hadoop and Perl". Mail-archive.com. 2 May 2010. Retrieved 5 April 2013.
- ^ Cutting, Mike; Cafarella, Ben; Lorica, Doug (31 March 2016). "The next 10 years of Apache Hadoop". O'Reilly Media. Retrieved 12 October 2017.
- ^ Ghemawat, Sanjay; Gobioff, Howard; Leung, Shun-Tak (2003). "The Google File System". pp. 20–43.
- ^ Dean, Jeffrey; Ghemawat, Sanjay (2004). "MapReduce: Simplified Data Processing on Large Clusters". pp. 137–150.
- ^ Cutting, Doug (28 January 2006). "new mailing lists request: hadoop". issues.apache.org.
The Lucene PMC has voted to split part of Nutch into a new sub-project named Hadoop
- ^ Vance, Ashlee (17 March 2009). "Hadoop, a Free Software Program, Finds Uses Beyond Search". The New York Times. Archived from the original on 30 August 2011. Retrieved 20 January 2010.
- ^ Cutting, Doug (30 March 2006). "[RESULT] VOTE: add Owen O'Malley as Hadoop committer". hadoop-common-dev (Mailing list).
- ^ "Index of /dist/hadoop/core". archive.apache.org. Retrieved 11 December 2017.
- ^ "Who We Are". hadoop.apache.org. Retrieved 11 December 2017.
- ^ Borthakur, Dhruba (2006). "The Hadoop Distributed File System: Architecture and Design" (PDF). Apache Hadoop Code Repository.
- ^ Chouraria, Harsh (21 October 2012). "MR2 and YARN Briefly Explained". Cloudera.com. Archived from the original on 22 October 2013. Retrieved 23 October 2013.
- ^ "HDFS User Guide". Hadoop.apache.org. Retrieved 4 September 2014.
- ^ "Running Hadoop on Ubuntu Linux System(Multi-Node Cluster)".
- ^ "Running Hadoop on Ubuntu Linux (Single-Node Cluster)". Retrieved 6 June 2013.
- ^ Evans, Chris (October 2013). "Big data storage: Hadoop storage basics". computerweekly.com. Computer Weekly. Retrieved 21 June 2016.
HDFS is not a file system in the traditional sense and isn't usually directly mounted for a user to view
- ^ deRoos, Dirk. "Managing Files with the Hadoop File System Commands". dummies.com. For Dummies. Retrieved 21 June 2016.
- ^ Balram. "Big Data Hadoop Tutorial for Beginners". www.gyansetu.in. Retrieved 11 March 2021.
- ^ "Archived copy". Archived from the original on 23 October 2019. Retrieved 19 June 2020.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크) - ^ "HDFS Architecture". Retrieved 1 September 2013.
- ^ a b Pessach, Yaniv (2013). "Distributed Storage" (Distributed Storage: Concepts, Algorithms, and Implementations ed.). OL 25423189M.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "Version 2.0 provides for manual failover and they are working on automatic failover". Hadoop.apache.org. Retrieved 30 July 2013.
- ^ "Improving MapReduce performance through data placement in heterogeneous Hadoop Clusters" (PDF). Eng.auburn.ed. April 2010.
- ^ "Mounting HDFS". Retrieved 5 August 2016.
- ^ Shafer, Jeffrey; Rixner, Scott; Cox, Alan. "The Hadoop Distributed Filesystem: Balancing Portability and Performance" (PDF). Rice University. Retrieved 19 September 2016.
- ^ Mouzakitis, Evan (21 July 2016). "How to Collect Hadoop Performance Metrics". Retrieved 24 October 2016.
- ^ "HDFS Users Guide – Rack Awareness". Hadoop.apache.org. Retrieved 17 October 2013.
- ^ "Cloud analytics: Do we really need to reinvent the storage stack?" (PDF). IBM. June 2009.
- ^ "HADOOP-6330: Integrating IBM General Parallel File System implementation of Hadoop Filesystem interface". IBM. 23 October 2009.
- ^ "HADOOP-6704: add support for Parascale filesystem". Parascale. 14 April 2010.
- ^ "HDFS with CloudIQ Storage". Appistry,Inc. 6 July 2010. Archived from the original on 5 April 2014. Retrieved 10 December 2013.
- ^ "High Availability Hadoop". HP. 9 June 2010.
- ^ "Commands Guide". 17 August 2011. Archived from the original on 17 August 2011. Retrieved 11 December 2017.
{{cite web}}
: CS1 maint: bot: 원래 URL 상태를 알 수 없습니다(링크). - ^ "Refactor the scheduler out of the JobTracker". Hadoop Common. Apache Software Foundation. Retrieved 9 June 2012.
- ^ Jones, M. Tim (6 December 2011). "Scheduling in Hadoop". ibm.com. IBM. Retrieved 20 November 2013.
- ^ "Hadoop Fair Scheduler Design Document" (PDF). apache.org. Retrieved 12 October 2017.
- ^ "CapacityScheduler Guide". Hadoop.apache.org. Retrieved 31 December 2015.
- ^ "How Apache Hadoop 3 Adds Value Over Apache Hadoop 2". hortonworks.com. 7 February 2018. Retrieved 11 June 2018.
- ^ Chintapalli, Sanket; Dagit, Derek; Evans, Bobby; Farivar, Reza; Graves, Thomas; Holderbaugh, Mark; Liu, Zhuo; Nusbaum, Kyle; Patil, Kishorkumar; Peng, Boyang Jerry; Poulosky, Paul (May 2016). "Benchmarking Streaming Computation Engines: Storm, Flink and Spark Streaming". 2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW). IEEE. pp. 1789–1792. doi:10.1109/IPDPSW.2016.138. ISBN 978-1-5090-3682-0. S2CID 2180634.
- ^ ""How 30+ enterprises are using Hadoop", in DBMS2". Dbms2.com. 10 October 2009. Retrieved 17 October 2013.
- ^ "Yahoo! Launches World's Largest Hadoop Production Application". Yahoo. 19 February 2008. Archived from the original on 7 March 2016. Retrieved 31 December 2015.
- ^ "Hadoop and Distributed Computing at Yahoo!". Yahoo!. 20 April 2011. Retrieved 17 October 2013.
- ^ "HDFS: Facebook has the world's largest Hadoop cluster!". Hadoopblog.blogspot.com. 9 May 2010. Retrieved 23 May 2012.
- ^ "Under the Hood: Hadoop Distributed File system reliability with Namenode and Avatarnode". Facebook. Retrieved 13 September 2012.
- ^ "Under the Hood: Scheduling MapReduce jobs more efficiently with Corona". Facebook. Retrieved 9 November 2012.
- ^ "Altior's AltraSTAR – Hadoop Storage Accelerator and Optimizer Now Certified on CDH4 (Cloudera's Distribution Including Apache Hadoop Version 4)" (Press release). Eatontown, NJ: Altior Inc. 18 December 2012. Retrieved 30 October 2013.
- ^ "Hadoop - Microsoft Azure". azure.microsoft.com. Retrieved 11 December 2017.
- ^ "Hadoop". Azure.microsoft.com. Retrieved 22 July 2014.
- ^ "Why the Pace of Hadoop Innovation Has to Pick Up". Gigaom.com. 25 April 2011. Retrieved 17 October 2013.
- ^ "Defining Hadoop". Wiki.apache.org. 30 March 2013. Retrieved 17 October 2013.
- ^ "Defining Hadoop Compatibility: revisited". Mail-archives.apache.org. 10 May 2011. Retrieved 17 October 2013.
- ^ "Apache Accumulo User Manual: Security". apache.org. Apache Software Foundation. Retrieved 3 December 2014.
참고 문헌
- Lam, Chuck (28 July 2010). Hadoop in Action (1st ed.). Manning Publications. p. 325. ISBN 978-1-935-18219-1.
- Venner, Jason (22 June 2009). Pro Hadoop (1st ed.). Apress. p. 440. ISBN 978-1-430-21942-2. Archived from the original on 5 December 2010. Retrieved 3 July 2009.
- White, Tom (16 June 2009). Hadoop: The Definitive Guide (1st ed.). O'Reilly Media. p. 524. ISBN 978-0-596-52197-4.
- Vohra, Deepak (October 2016). Practical Hadoop Ecosystem: A Definitive Guide to Hadoop-Related Frameworks and Tools (1st ed.). Apress. p. 429. ISBN 978-1-4842-2199-0.
- Wiktorski, Tomasz (January 2019). Data-intensive Systems. Cham, Switzerland: Springer. ISBN 978-3-030-04603-3.