2017-12-17 2 views
0

모든 데이터와 구성 요소가 포함 된 hadoop 서버를 새 서버 (새 버전의 redhat)로 마이그레이션하려고합니다.HDFS는 datanodes 서버를 새 서버로 마이그레이션합니다.

나는 namenode를 이동하는 방법에 대해 cloudera 사이트의 게시물을 보았습니다. 하지만 데이터 손실없이 모든 datanodes를 이동하는 방법을 모릅니다. 우리는 복제 계수 2를 가지고 있습니다. hdsfs가 새로운 복제본을 생성 할 때 한 번에 하나의 데이터 노드를 종료하겠습니까? 거기에 모든 데이터 노드를 한꺼번에 마이그레이션 할 수 있습니까? 모든 (약 20 개의 서버) 데이터 노드를 새 클러스터로 전송하는 올바른 방법은 무엇입니까?

또한 나는 HBase와 같은 문제가있는 것인지 알고 싶어하거나 그냥 삭제하고 새로운 서버 clearify에 대한

업데이트에 역할을 추가 할 수있는 경우 :

내 하둡 클러스터는 이미 두 세트를 포함 서버의

  1. 첫 번째 세트는 리눅스 서버의 이전 버전
  2. 두 번째 세트는 린의 최신 버전입니다 (그들은 같은 하둡 클러스터에, 난 그냥 예를 들어 logicly을 splited) ux 서버

두 세트는 이미 데이터와 구성 요소를 공유합니다 (namenode는 이전 서버 세트에 있음). 새 집합의 서버 만 hadoop 클러스터에 남아 있도록 기존의 모든 서버 집합을 제거하려고합니다.

는 실행이 같아야합니까 : 다음 데이타 노드에 대해 동일한 작업을 수행
  • 실행 밸런서 (구 서버 설정에서)

    1. 종료 한 데이터 노드 마무리
    2. 대기
    그렇다면 밸런서 작업에 많은 시간이 걸리고 전체 작업에 많은 시간이 걸리기 때문에

    을 사용해야합니다.

    hbase에 대한 동일한 문제가 있습니다. 이제 hbase region과 master는 이전 서버 세트에만 있으므로 데이터를 제거하지 않고 새 서버 세트에 설치하고 제거하고 싶습니다.

    덕분에

  • 답변

    0

    새로운 데이타 노드 자유롭게 네임 노드를 건드리지 않고 추가 할 수 있습니다. 그러나 한 번에 하나 이상을 종료하지 않아야합니다.

    예를 들어 두 개의 서버를 선택하여 임의로 종료하고 둘 다 파일 블록을 보유하면 다른 곳에서 복제 할 가능성이 없습니다. 따라서 동일한 하드웨어를 재사용하는 경우 한 번에 하나씩 업그레이드하십시오.

    이상적인 시나리오에서는 OS 디스크가 HDFS 디스크와 분리되어 있습니다. 어떤 경우에는 마운트 해제하고, OS를 업그레이드하고, HDFS 서비스를 재설치하고, 디스크를 다시 마운트 할 수 있으며, 모든 것이 이전처럼 작동 할 수 있습니다. 이것이 서버 설정 방법이 아니라면 다음 업그레이드 전에 수행해야합니다.

    새로운 데이타 노드에 추가 복제본을 취득하기 위하여는, 당신은 1) 복제 계수를 증가하는 중해야합니다 또는 2) 복제본이

    내가 '클러스터에서 단행되는 것을 보장하기 위해 HDFS의 재조정을 실행 Hbase에 익숙하지는 않지만, 서비스를 설치하고 다른 서버로 마이그레이션하기 전에 regionserver를 플러시해야한다는 것을 알고 있습니다. 그러나 지역을 재조정하지 않고 대부분을 플러시하면 모든 데이터를 보유하는 하나의 서버가됩니다. hbase backup은 시도해 볼 가치가있는 명령 인 것으로 보이지만 마스터 서버에는 유사한주의 사항이 있습니다.

    +0

    재생 해 주셔서 감사합니다. 사례를 명확히 할 수있는 업데이트를 추가했습니다. 종료 할 때마다 밸런서를 실행하는 데 오래 걸립니다. 그리고 메신저를 업그레이드하지 않으므로 두 번째 옵션을 사용할 수 없습니다. 다른 해결책이 있습니까? – guylot

    +0

    새로운 서버가 무슨 의미인지 이해하지 못합니다. 왜 낡은 것을 완전히 대체해야합니까? 하드웨어가 더 좋다면 스토리지를 두 배로 늘리고 성능을 계산하는 것 이상을 유지하십시오. 어쨌든 한 번에 하나씩 리 밸런서를 실행할 필요는 없지만 둘 이상의 데이터 노드가 다운되면 데이터 손실의 위험이 있습니다. 그래서 2의 복제 계수를 사용하지 않아야합니다. –

    +0

    그들은 클라우드에있는 서버이므로 시스템 때문에 기존 서버를 폐기해야합니다 (이전 버전은 6.3 레드햇, 새로운 7.1 레드햇입니다). 팀 demmand. 또한 이전 버전의 서버를 새로운 버전으로 업그레이드 할 수 없습니다. 새 서버를 가져와 이전 서버를 제거해야합니다. – guylot

    0

    @guylot - 새 노드를 추가하고 밸런서 프로세스를 실행 한 후 폐기 프로세스를 수행하여 이전 노드를 클러스터에서 제거합니다. 서비스 해제 프로세스는 클러스터의 다른 노드로 데이터를 이동합니다. 예방 차원에서 한 번에 하나의 노드에서만 실행됩니다. 이로 인해 데이터 유실 사고의 가능성이 제한됩니다.

    관련 문제