복붙노트

[HADOOP] 이름 노드는 fsImage를 저장하고 로그를 편집합니까?

HADOOP

이름 노드는 fsImage를 저장하고 로그를 편집합니까?

저는 자바 프로그래머로서 Hadoop을 배우고 있습니다. HDFS의 Name 노드는 정보를 fsImage 및 editLog라는 두 파일에 저장한다는 것을 읽었습니다. 시동시 디스크에서이 데이터를 읽고 검사 점 작업을 수행합니다.

그러나 여러 곳에서 나는 Name Node가 RAM에 데이터를 저장한다는 것을 읽었습니다. 그래서 apache는 Name Node 서버에 대해 높은 RAM을 가진 컴퓨터를 권장합니다.

이것 좀 가르쳐주세요. 어떤 데이터가 RAM에 저장되며 fsImage를 저장하고 로그를 편집합니까?

미안하다. 나는 무엇이라도 명백하게 물었다.

해결법

  1. ==============================

    1.먼저 대답하겠습니다.

    먼저 대답하겠습니다.

    RAM - 데이터 노드 매핑을 차단하고 차단합니다. 영구 저장소 (편집 로그와 fsimage 모두 포함) - 파일 관련 메타 데이터 (권한, 이름 등)

    fsimage 및 editlog의 저장 위치와 관련하여 @ mashuai의 대답이 있습니다.

    자세한 내용은이 기사를 참조하십시오.

  2. ==============================

    2.namenode가 시작되면 hsfs-site에 dfs.name.dir (hadoop-1.x) 또는 dfs.namenode.name.dir (hadoop-2.x) 속성에 지정된 위치 인 영구 저장 장치 (디스크)에서 fsimage를로드합니다 .xml. Fsimage가 주 메모리에로드됩니다. 또한 namenode 시작시 요청한대로 체크 포인트 작업을 수행합니다. 네임 노드는 Fsimage를 요청에 빠르게 응답 할 수 있도록 RAM에 유지합니다.

    namenode가 시작되면 hsfs-site에 dfs.name.dir (hadoop-1.x) 또는 dfs.namenode.name.dir (hadoop-2.x) 속성에 지정된 위치 인 영구 저장 장치 (디스크)에서 fsimage를로드합니다 .xml. Fsimage가 주 메모리에로드됩니다. 또한 namenode 시작시 요청한대로 체크 포인트 작업을 수행합니다. 네임 노드는 Fsimage를 요청에 빠르게 응답 할 수 있도록 RAM에 유지합니다.

    초기 체크 포인트와 별개로 후속 체크 포인트는 hdfs-site.xml에서 다음 매개 변수를 조정하여 제어 할 수 있습니다.

    dfs.namenode.checkpoint.period       # in second 3600 Secs by default
    dfs.namenode.checkpoint.txns         # No of namenode transactions
    
  3. ==============================

    3.dss.name.dir에 fsimage와 editlog를 저장합니다. hdfs-site.xml에 있습니다. 클러스터를 시작하면 NameNode는 fsimage 및 editlog를 메모리에로드합니다.

    dss.name.dir에 fsimage와 editlog를 저장합니다. hdfs-site.xml에 있습니다. 클러스터를 시작하면 NameNode는 fsimage 및 editlog를 메모리에로드합니다.

  4. ==============================

    4.이름 노드가 시작되면 안전 모드가됩니다. 영구 저장소에서 FSImage를로드하고 편집 로그를 재생하여 HDFS 저장소의 업데이트 된보기 (FILE TO BLOCK MAPPING)를 작성합니다. 그런 다음이 업데이트 된 FSImage를 영구 저장소에 씁니다. 이제 이름 노드는 데이터 노드로부터 블록 보고서를 기다립니다. 블록 보고서에서 BLOCK TO DATA NODE MAPPING을 생성합니다. 이름 노드가 차단 보고서의 특정 임계 값을 수신하면 안전 모드를 벗어나 이름 노드가 클라이언트 요청을 제공하기 시작할 수 있습니다. 클라이언트가 메타 데이터를 변경하면 NameNode (NN)는 먼저 영구 저장소 (하드 디스크)에 대한 트랜잭션 ID가 증가하면 편집 로그 세그먼트에서 변경 사항을 기록합니다. 그런 다음 RAM에있는 FSImage를 업데이트합니다.

    이름 노드가 시작되면 안전 모드가됩니다. 영구 저장소에서 FSImage를로드하고 편집 로그를 재생하여 HDFS 저장소의 업데이트 된보기 (FILE TO BLOCK MAPPING)를 작성합니다. 그런 다음이 업데이트 된 FSImage를 영구 저장소에 씁니다. 이제 이름 노드는 데이터 노드로부터 블록 보고서를 기다립니다. 블록 보고서에서 BLOCK TO DATA NODE MAPPING을 생성합니다. 이름 노드가 차단 보고서의 특정 임계 값을 수신하면 안전 모드를 벗어나 이름 노드가 클라이언트 요청을 제공하기 시작할 수 있습니다. 클라이언트가 메타 데이터를 변경하면 NameNode (NN)는 먼저 영구 저장소 (하드 디스크)에 대한 트랜잭션 ID가 증가하면 편집 로그 세그먼트에서 변경 사항을 기록합니다. 그런 다음 RAM에있는 FSImage를 업데이트합니다.

  5. ==============================

    5.Fsimage 및 editlog는 dfs.name.dir에 저장되며, hdfs-site.xml에 있습니다. 클러스터 시작시 NameNode는 fsimage 및 editlog를 메모리 (RAM)에로드합니다.

    Fsimage 및 editlog는 dfs.name.dir에 저장되며, hdfs-site.xml에 있습니다. 클러스터 시작시 NameNode는 fsimage 및 editlog를 메모리 (RAM)에로드합니다.

  6. from https://stackoverflow.com/questions/23181824/where-does-name-node-store-fsimage-and-edit-log by cc-by-sa and MIT license