Hadoop:org.apache.hadoop.hdfs.server.namenode 기능 및 다양 한 클래스의 역할

출처: 인터넷
작성자: 사용자
키워드: Dfs 자바 이름 Nbsp;

예를 들어 hadoop0.21를 가져가 라.

Namenode.java: 주요 유지 보수 system 네임 스페이스 파일 및 메타 데이터 파일, 다음 코드에 대 한 설명입니다.

/ * * * & http://www.aliyun.com/zixun/aggregation/37954. HTML > nbsp;

* Namenode 두 디렉터리 네임 스페이스 관리자 역할 및

* Hadoop DFS에 대 한 Inode 테이블입니다. 싱글 namenode는

* 모든 DFS 배포에서 실행. (확인 때를 제외 하 고 거기

* 두 번째 백업/장애 조치 namenode는.)

*

*는 Namenode 제어 두 중요 한 테이블:

* 1) 파일 이름-> blocksequence (네임 스페이스)

* 2) 블록-> machinelist ("Inode")

*

*에 저장 된 디스크는 매우 귀중 한.

*는 두 번째 표는 Namenode 온다 때마다 다시

* 최대입니다.

*

* ' Namenode' 'Namenode 서버'로이 두 클래스를 가리킵니다.

* 'Fsnamesystem' 클래스는 실제로 파일 시스템의 대부분을 수행

* 관리입니다. 대부분 'Namenode' 클래스 자체의 우려

* IPC 인터페이스와 HTTP 서버 외부 세계에 노출 된

* 플러스 일부 구성 관리입니다.

*

* Namenode는 ClientProtocol 인터페이스를 구현 수 있는

* DFS 서비스에 대 한 클라이언트입니다. ClientProtocol 아니다.

* DFS 클라이언트 코드의 작성자와 직접 위해 설계 되었습니다. 최종 사용자

* Org.apache.nutch.hadoop.fs.FileSystem 클래스를 사용 하 여 대신 한다.

*

* Namenode는 또한에서 사용 하는 Datanodeprotocol 인터페이스를 구현

* Datanode 실제로 DFS 데이터 블록을 저장 하는 프로그램. 이러한

* 메서드가 반복적으로 자동으로 호출 되는

* DFS 배포에서 Datanodes입니다.

*

* Namenode는 또한에서 사용 하는 Namenodeprotocol 인터페이스를 구현

* 보조 namenodes 또는 부분을 재조정 프로세스의

* 주, 예를 들어 blocksmap 등입니다.

**********************************************************/

Fsnamesystem.java: 여러 테이블의 정보에의 주요 유지 보수: 파일 이름 및 차단 목록의 유지 관리 heatbeat 노드 LRU 업데이트 유효한 블록 세트, 블록 및 노드 목록 매핑 관계, 노드 및 차단 목록 매핑 관계; 관계 매핑 캐시

/***************************************************

* Fsnamesystem에 대 한 실제 부 기 작업을 수행 합니다

* Datanode입니다.

*

* 그것은 몇 가지 중요 한 테이블을 추적합니다.

*

* 1) 유효한 FSName-> 차단 목록 (디스크, 기록에 보관)

* 2) 집합이 모든 유효한 블록 (거꾸로 #1)

* 3) 블록-> machinelist (메모리, 동적으로 보고서에서 재건에 보관)

* 4) 기계-> 차단 목록 (거꾸로 #2)

* 업데이트-하트 비트 기계의 5) LRU 캐시

***************************************************/

INode.java:HDFS 파일 및 파일 디렉토리 Inode에 추상화합니다.

/**

* 우리는 메모리 내 표현을 파일/블록 계층의 유지.

* 이것은 기본 INode 클래스 파일에 대 한 공통 필드를 포함 하 고

* 디렉토리 inode입니다.

*/

Fsimage.java: inode 정보 디스크 fsimage 유지 될 필요가 있다.

/**

* Fsimage 검사점 및 로깅 네임 스페이스 편집 처리합니다.

*

*/

Fseditlog.java: 쓰기 파일 편집

/**

* Fseditlog의 네임 스페이스 수정 로그를 유지 관리합니다.

*

*/

BlockInfo.java:INode 주로 파일 및 디렉터리 정보 이며이 블록에 의해 설명 파일의 내용에 대 한. 파일의 길이 순서로, 고정 크기, 파일 크기, 다음 시작 파일의 0 오프셋, 그리고 다음 분할 및 수는 고 각 청크를 블록으로 분할 가정 합니다.

/**

* 내부 클래스 메타 데이터 블록입니다.

*/

Datanodedescriptor.java: 특정 저장소 개체를 나타냅니다.

/**************************************************

* 주어진된 datanode에 Datanodedescriptor 트랙 통계

* 사용 가능한 스토리지 용량와 같은 최근 업데이트, 등.,

*는 datanode에 저장 된 블록의 집합을 유지 관리 하 고.

*

*이 데이터 구조는 데이터 구조는 내부

*에 Namenode. 그것은 * 하지 * 클라이언트를 통해 실시간 전송

* 나는 datnodes입니다. 그것은에 지속적으로 저장 되는

* Fsimage입니다.

**************************************************/

Fsdirectory.java: 나타냅니다 HDFs에 모든 디렉터리 및 구조 속성을

/*************************************************

* Fsdirectory 저장 파일 시스템 디렉터리 상태 합니다.

* 디스크, 및 로깅 글/로드 값 처리

우리가 서을 변경.

*

* 파일 이름 유지 blockset 매핑 항상 전류->

* 그리고 디스크에 기록.

*

*************************************************/

Editlogoutputstream.java: 모든 로깅 콘크리트 인스턴스화에 Editlogoutputstream 출력은 여러 개의 editlogfileoutputstream 및는 Editlogbackupoutputstream Editlogoutputstream의이 그룹 포함

/**

* 편집의 저널링을 지원 하기 위해 일반 추상 클래스에 로그인

*는 영구 저장소.

*/

Editlogfileoutputstream.java: 편집 또는 edits.new 로그 레코드를 씁니다.

/**

* 추상 클래스 {Editlogoutputstream @link} 구현 하

* 편집 로컬 파일에 저장합니다.

*/

Editlogbackupoutputstream.java: 네트워크는 Backupnode 로그를 보냅니다.

/**

* 추상 클래스 {Editlogoutputstream @link} 구현

* 어떤 백업 노드로 수정을 스트리밍합니다.

*

* @see org.apache.hadoop.hdfs.server.protocol.namenodeprotocol#journal

* (Org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration,

* int, int, byte[])

*/

BackupNode.java:name 노드의 백업: 업그레이드 단계: 보조 이름 노드 검사점 노드 (정기적으로 메타 데이터, 정기적 검사점) 저장-"백업 노드" ( 거울은 정확 하 게 같은 이름 노드를 메모리에 유지 하 고 변경, 자체 Namenode 대기 노드 (뜨거운 대기)에서 다운로드 하지 않고 검사점을 미러링을 사용 하는 메타 데이터를 업데이트

/**

* Backupnode입니다.

* < p >

* 백업 노드는 두 가지 역할을 재생할 수 있습니다.

* < ol >

* < 리 > {@link Namenoderole #checkpoint} 노드는 정기적으로 검사점을 만듭니다.

*의 다운로드 이미지와 활성 노드에서 편집 병합, 그리고

* 활성을 다시 새 이미지를 업로드합니다. < /li >

* < 리 > {@link Namenoderole #backup} 노드 동기화에 네임 스페이스를 유지 합니다

* 활성 노드를 단순히 저장 하 여 정기적으로 검사점을 만듭니다는

* 로컬 디스크 (s) Namespace 이미지. < /li >

* < /ol >

*/

Backupstorage.java: 백업 노드 디렉토리에는 Jspool를 생성 하 고 출력 스트림에 Edits.new를 가리키도록 edits.new를 만들

/**

* 검사점에서에서 로드할 경우에만 로컬 파일 메모리는 ' 비어. < br >

* 새로운 검사점 이름 노드에서 받은 시간을 설정 합니다. < br >

< 코드 > lastcheckpoint.tmp를 이동 < / 코드 > < 코드 > previous.checkpoint에 < / 코드 >.

* @throws IOException

*/

Transferfsimage.java: 이름 노드에서 파일에 대 한 책임.

/**

*이 클래스는 Namenode에서 지정된 된 파일을 페치를 제공 합니다.

*/

Getimageservlet.java: doget 요청을 처리 하는 httpservlet 서브 클래스가입니다.

/**

*이 클래스는 파일을 검색 하려면 Namesystem의 부두에 사용 되었다.

* 일반적으로 보조 namenode에서 이미지 검색을 사용 하 고

* 정기적 검사점에 대 한 파일을 편집 합니다.

*/

관련 문서

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.