全部產品
Search
文件中心

E-MapReduce:常見問題

更新時間:Jul 01, 2024

本文匯總了使用Zookeeper時的常見問題。

ZooKeeper服務不穩定,發生異常重啟等情況,怎麼辦?

造成服務不穩定的情況可能有很多,最常見的情況是znode數量過大或者snapshot過大,由於ZooKeeper將所有的znode維護在記憶體中,並且需要在節點間進行資料同步,因此過大的znode數量或者容量會對服務穩定性造成影響。ZooKeeper的定位是一個分布式協調服務,不能把ZooKeeper當作一個檔案系統來使用,通常,znode數量應盡量保持在10萬以下,snapshot大小應在800 MB以下。
  • 您可以在E-MapReduce控制台的叢集監控頁簽,查看Zookeeper的znode數量監控。
  • 查看snapshot大小。
    1. 您可以先在ZooKeeper服務的配置頁簽,搜尋並查看dataDir的參數值,擷取Zookeeper的資料目錄。dataDir
    2. 執行以下命令,在ZooKeeper資料目錄下查看snapshot的大小。
      ls -lrt /mnt/disk1/zookeeper/data/version-2/snapshot*

      如果出現znode數量或snapshot過大的情況,需要排查znode分布情況,避免相關上層應用對ZooKeeper的過度使用。

如何平滑遷移ZooKeeper的資料目錄?

如果因為磁碟空間或者磁碟效能等問題,希望更改ZooKeeper的資料目錄,您可以按照以下步驟逐個節點修改並遷移資料目錄,實現不停止ZooKeeper服務的平滑遷移。
說明 例如,將資料目錄從/mnt/disk1/zookeeper/data更改為/mnt/disk2/zookeeper/data。叢集的master-1-2 節點為leader,master-1-1和master-1-3節點為follower,遷移時建議先操作follower再操作leader。
  1. 修改資料目錄並儲存配置。
    1. 在ZooKeeper服務的配置頁簽,搜尋dataDir參數,修改參數值為新目錄/mnt/disk2/zookeeper/data
    2. 單擊儲存
    3. 在彈出對話方塊中,輸入執行原因,單擊儲存
  2. 部署配置。
    1. 在ZooKeeper服務的配置頁簽,單擊部署客戶配置
    2. 在彈出的對話方塊中,輸入執行原因,單擊確定
    3. 確認對話方塊中,單擊確定
  3. 可選:驗證資料目錄。
    1. 使用SSH方式登入叢集,詳情請參見登入叢集
    2. 執行以下命令,查看zoo.cfg設定檔的dataDir參數值。
       cat /etc/emr/zookeeper-conf/zoo.cfg

      顯示資料目錄已更新為新目錄。

  4. 停止master-1-1節點。
    1. 在ZooKeeper服務的部署拓撲頁簽,單擊master-1-1節點操作列的停止
    2. 執行叢集操作對話方塊中,輸入執行原因,單擊確定
    3. 確認對話方塊中,單擊確定
  5. 目錄遷移。
    1. 使用SSH方式登入叢集,詳情請參見登入叢集
    2. 執行以下命令,在master-1-1節點進行目錄遷移及相關使用權限設定。
      sudo rm -rf /mnt/disk2/zookeeper && sudo cp -rf /mnt/disk1/zookeeper /mnt/disk2/zookeeper && sudo chown hadoop:hadoop -R /mnt/disk2/zookeeper
  6. 啟動master-1-1節點。
    1. 在ZooKeeper服務的狀態頁簽,單擊ZookeeperServer操作列的啟動
    2. 在彈出的對話方塊中,輸入執行原因,單擊確定
    3. 確認對話方塊中,單擊確定

      重新整理頁面,直至master-1-1節點的健康狀態顯示為良好

  7. 登入master-1-3節點,重複執行步驟4~步驟6
  8. 登入master-1-2 節點,重複執行步驟4~步驟6
    待所有節點恢複正常時,節點遷移完成。
    說明 master-1-2 節點原本為leader,執行停止操作後會變為follower,leader會切換到另兩個節點的任一節點上。