개요
이 시대 다양 한 산업의 생산의 성장, 버스트 생산과 심층 데이터 마이닝, 분석, 처리를 이러한 폭발적인 성장 데이터에 따라 빅 데이터 시대 라고 합니다. 그래서 우리는 쉽게 그 같은 대용량 데이터 시대에 많은 일을 우리의 방법의 변화 하는 느낄 수 있다. 예를 들어 기반 대용량 데이터 분석 기반 대용량 데이터 분석 수 질병 예측 제어 할 수 있는 할 교통 흐름 예측된 제어, 대용량 데이터 분석 대규모 시스템 오류 진단 예측 할 수 있는 기반, 대용량 데이터 분석을 바탕으로 고객 소비를 할 수 있는 추천. 그것은 할 수 있다는 빅 데이터 시대 이전 매우 어려운 문제를 해결 하기 위해 많이 해결할 수 있습니다. 그것은 할 수 있다 같은 시대에, 큰 데이터 우리의 인생을 더 아름 답게 만들 수 있습니다.
갑자기 큰 데이터 시대 기술 세계에 큰 영향을 했다. 가장 큰 문제는 이러한 거 대 한 양의 데이터를 저장 하는 방법 같은 거 대 한 양의 데이터를 처리 하는 방법. 에 Google의 상업 시스템, 오픈 소스 큰 데이터 처리 시스템 하 둡의 출현에이 문제.
Google 클라우드에 그것의 첫 번째 핵심 기술 문서 출판 컴퓨팅 2003 년에 때 아파치 기술 팀을 깨달았다는 GFS 아키텍처 웹 검색 엔진 설정 하는 동안 생성 된 대규모 파일의 문제에 좋은 해결책. 따라서, GFS 기술 프레임 워크를 참조 하 고 일련의 대형 데이터 파일 시스템 완료 및 오픈 소스 되었습니다. 파일 시스템 후 Hadoop의 핵심 프로젝트 HDFs로 진화. 2004 구글 다시 출판 클라우드 컴퓨팅 mapreduce의 핵심 기술, 대규모 분산된 컴퓨팅 프로그래밍 모델 문제를 해결 합니다. 그 후, MapReduce의 아이디어는 Hadoop과 오픈소스의 선행 프로젝트에 적용 했다. 2006 년에, 야 후 Hadoop 프로젝트 Nutch 검색 엔진 프로젝트의 독립적인 만들었고 아파치에 대 한 별도 하위 프로젝트를 되었다. 그 이후, Hadoop 프로젝트 번성 했다.
10 월 2013 년 현재 Hadoop 버전 2.2.0 성공적으로 출시 되었습니다. 페이 스 북, 알리바바, 바이, Tencent 모두 사용 하는 Hadoop 대용량 데이터 처리 플랫폼을 배포를. 다음은 하 둡 프로젝트에서 주요 시스템의 분석입니다.
분산된 파일 시스템
큰 데이터 응용 프로그램의 컨텍스트에서 파일 저장소는 다음과 같은 기능이 있습니다.
1, 대량 데이터 스토리지입니다. 큰 데이터 응용 프로그램 환경에서 파일 수와 데이터 저장소의 크기 높아지고있다. 따라서, 전통적인 스토리지 패턴을 채택 하는 경우 매우 큰 시스템 건설 될 필요가 있고 전통적인 스토리지 지원은 매우 유연 하 고 확장 가능한. 왜냐하면, 빅 데이터 시대에 스토리지 확장성은 매우 중요 한 데이터 볼륨 증가, 저장 규모 또한 언제 든 지 따라 해야, 따라서 스토리지 확장성은 대용량 데이터 저장 불가 피한 선택을 직면 하 고. 기존의 스토리지는 주로 한 대의 컴퓨터, 독립형, 높은 용량. 대용량 데이터 저장 대용량 저장 장치에 대 한 늘어나는 수요에 대처 하기 위해 저가 확장성에 맞도록 될 필요가 있다. 그 결과, 기존의 스토리지가 고객 요구 변경으로 대용량 데이터 환경에서 병목 현상을 발견 했습니다.
2, 큰 파일 저장소입니다. 큰 데이터 응용 프로그램 환경에서 저장 된 파일은 기반 대용량 파일 합니다. 이것은 매우 중요 한 응용 프로그램 기능입니다. 전통적인 스토리지 중심된 기본 저장소 도메인 디자인에 주로 작은 파일의 읽기와 큰 데이터 응용 프로그램 환경에서 기존의 스토리지, 그것은 매우 낭비, 측면의 주요 초점은 잘 적용 되지 않습니다, 그리고 측면의 사용자 요구는 심각 하 게 촬영 하지 그래서 최적화, 쓰기를 고려 하십시오.
3, 더 읽기 및 쓰기 적은 파일 저장. 큰 데이터 읽기 요청 하는 응용 프로그램 환경에서는 쓰기 요청 보다 훨씬 더 있습니다. 특히 인터넷 분야에서에서 쓰기 요청은 많은, 하지만 읽기 요청 수 매우 큰, 그래서, 응용 프로그램 요구 사항에 보다 적게 더 쓰기 읽기에서 저장소 디자인을 최적화 하는 방법 고려 될 것 이다.
4, 동시 액세스입니다. 큰 데이터 응용 프로그램 환경에서 응용 프로그램 클라이언트 수가 매우 큽니다, 어떻게 파일 시스템 데이터 액세스의 병목을 피하기 위해, 동시에 여러 클라이언트 액세스의 능력을 향상 분산된 파일 시스템의 디자인에서 고려해 야 할 중요 한 문제 이다.
이 수요를 충족 하기 위해 Google Hadoop 분산 파일 시스템에 의해 사용 되는 GFS 분산 파일 시스템 아키텍처를 제안 합니다. 이 분산된 파일 시스템의 구조는 다음과 같습니다.
구조,이 분산된 파일 시스템은 상대적으로 간단 합니다. 그것은 주로 2 개 부품으로 분할 된다, 첫 번째 부분은 파일 디렉터리 구조와 파일 메타 데이터 컨트롤러를 관리 하는 데 사용은,이 컨트롤러 Namenode 이라고, 두 번째 부분은 데이터 datanode를 저장 하는 데 사용 됩니다. 클라이언트가 파일에 액세스 해야, 그것은 먼저 Namenode 파일 정보 및 데이터 분포 특성에 대 한 액세스가 필요 합니다. Namenode에서이 정보를 가져온 후 나중에 파일을 액세스 하는 데이터 프로세스는 Namenode 통과 하지 않습니다 그리고 Datanode와 직접 통신 하는 클라이언트. 그래서 그것은 매우 높은 될 수 있고 배포, 다른 클라이언트는 다른 datanode를 액세스할 수 있습니다이 분산된 파일 시스템의 데이터 액세스 "-밴드 모드"에 속한다.
이 분산된 파일 시스템의 1 개의 결점은 그것은 작은 파일을 처리 하는 것. 각 파일 액세스 작업 때문에 Namenode에 액세스 합니다. 작은 파일을 사용 하 여 작업할 경우 Namenode 것입니다 액세스할 수 자주, 그래서 namenode는 전체 시스템에 대 한 병목 현상이 될 것입니다. 다행히도, 큰 데이터 응용 프로그램 환경에서 주요 처리 이므로 대용량 파일을 분산 파일 시스템 아키텍처 큰 데이터 응용 프로그램의 요구 사항을 충족 수 있습니다.
이 분산된 파일 시스템은 강력한 스토리지 확장성. 사용자 저장 용량을 확장 하 고 싶다면, 그냥 datanode를 추가 하 고 관리 Namenode에는 Datanode를 추가. Datanode 확장은 클라이언트에 투명입니다. Datanode의 확장 시스템의 전체 데이터 처리량을 확장 하면서 스토리지 용량을 확장 합니다. 이 아키텍처에 대 한 가장 큰 문제는 그것이 잠재적인 병목 지점 Namenode와 Namenode 사용의 가장 큰 장점은 디자인 구현의 복잡성 감소는 이다.
Namenode는 전체 시스템의 메타 데이터 서버, 따라서 성능 및 단일 실패 지점이 될 Namenode 설계 과정에서 고려해 야 할 첫 번째 문제. 성능을 향상 시키기 위해 Namenode는 고성능 서버를 채택할 수 있다 그리고 클러스터링 메타 데이터 처리의 성능을 향상 시킬 수 있습니다. 또한, 단일 지점에서 실패를 방지 하기 위해 하 namenode의 신뢰성을 향상 시키기 위해 사용할 수 있습니다. 이 위해, 다양 한 HA 솔루션을 붙이고 하는 많은 제조 업체 그 namenode 장애 조치, 가장 짧은 가능한 시간에 되도록 서비스 질과 신뢰도의 전체 시스템 향상. Namenode 디자인 최적화 Hadoop 분산 파일 시스템의 응용 프로그램의 초점 이다.
데이터 신뢰성 Hadoop의 분산된 파일 시스템 고려 하는 문제 이기도 합니다. 전체 시스템의 비용을 줄이기 위해 Datanode 저가 서버 만들 수 있습니다. 전통적인 스토리지 RAID 솔루션은 저장소의 단일 포인트의 비용을 최소화 하기 위해이 서버에서 제거할 수 있습니다. RAID를 사용 하지 않는이 분산된 파일 스토리지 시스템에서 데이터의 신뢰성을 어떻게 보장 합니까? Hadoop의 아이디어는 데이터의 신뢰성을 보장 하기 위해 전략의 여러 복사본은 GFS, 동일 합니다. 일반적인 문서 사용 3 복사본의 전략, 전략의 6 복사본을 사용 하 여 중요 한 문서. 파일을 작성할 때는 데이터 datanode에 기록 되 고은 Datanode 다른 datanode를 복사한 데이터를 씁니다. 여러 복사본의 이점을 구현, 간단 하 고 가장 중요 한 것은, 당신은 또한 읽기와 쓰기, 분리 수 동시 읽기에 대 한 요청을 만들 수 있습니다. 여러 복사본의 단점 또한 많은 양의 데이터 복제 저장소 사용에 상당한 감소를 선도 분명, 있습니다. 데이터 저장 공간 활용을 향상 시키기 위해 삭제 코드 분산된 스토리지 시스템으로 소개 된다. 삭제 코드 데이터 중복 유사한 전통적인 raid 알고리즘의 효과 실현할 수 있습니다 하지만 그것은 일부 데이터 컴퓨팅 능력,이 알고리즘의 소개는 전체 시스템의 쓰기 성능에 어떤 영향을 미칠 것 datanode 필요. 또한, 데이터의 신뢰성을 향상 시키기 위해 데이터 중복 코드를 사용 하 여 데이터를 분할 하는 Erasurce 코드 때문에 따라서, 재생할 수 없습니다 읽기 방법의 사본의 수 고 분리, 동시 목적, 읽기 쓰기 불가피 하다 읽기 성능 또한 특정 영향을 미칠 것 이다. 이러한 두 가지 요구를 균형 하는 방법을 고려해 야 할 설계 되었습니다 저장 공간 사용률 및 성능을 상호 배타적입니다. 페이스 북 삭제 코드에 대 한 작업을 많이 하고있다 그리고 출판 2013 년에 Erasurce 코드에 대 한 기사 적용 큰 데이터, xoring에에서 그레이트 코끼리: 소설 erasurce 코드 》。
Hadoop 분산 파일 시스템 구조의이 종류에 따라 대용량 데이터 스토리지 시스템에서 일반적으로 사용 되는 구조는, Taobao Taobao의 전기 몫 시스템의 비디오 파일과 사진을 저장 하는 데 사용 하는 TFS 개발과 Taobao의 특성을 최적화. 가장 큰 최적화는 다음과 같습니다.
1은 Namenode 파일 디렉터리 구조를 단순화합니다. Taobao 스토리지 파일 관리 하는 복잡 한 디렉터리 트리를 사용 하지 않아도, 평면 구조 요구 사항을 충족 수, 각 파일 설명 하는 데 64 비트 ID를 사용할 수 있습니다.
2 Taobao 사진은 있다 크고 작은, 대 한이 작은 파일 큰 파일 및 마지막으로 큰 파일 저장소에 병합 됩니다. 아이디어는 페이스 북의 건초 더미 시스템에 비슷합니다.
Hadoop 분산 파일 스토리지 시스템 대형 데이터 처리, 그리고 나중에 분산된 데이터 처리의 초석 역할을 담당 하 고 Hadoop FS에 근거 하 여 분산된 데이터베이스를 만들 수 있습니다.
< 계속 >을
이 문서에서 "저장소 경로" 블로그는,이 소스 http://alanwu.blog.51cto.com/3652632/1416743를 유지 해야