欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Hadoop運(yùn)維記錄系列(二十四)-創(chuàng)新互聯(lián)

從這篇開(kāi)始記錄一下集群遷移的事情

創(chuàng)新互聯(lián)建站歡迎來(lái)電:028-86922220,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)建站網(wǎng)頁(yè)制作領(lǐng)域10年,包括小攪拌車(chē)等多個(gè)方面擁有多年的網(wǎng)站制作經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián)建站,為企業(yè)錦上添花。

早先因?yàn)闄C(jī)房沒(méi)地方,就已經(jīng)開(kāi)始規(guī)劃集群搬機(jī)房的事情,最近終于開(kāi)始動(dòng)手了,我會(huì)把這次不停機(jī)遷移的過(guò)程遇到的主要問(wèn)題和矛盾以及各種解決方法記錄下來(lái)。

集群規(guī)模說(shuō)大不大,幾百臺(tái),總?cè)萘?0PB左右。Hadoop使用CDH 5.5.1加一些自定義patch的rpm打包編譯版本。

總的方案是集群不停機(jī),在兩個(gè)機(jī)房之間架設(shè)專(zhuān)線,舊機(jī)房decommission,拉到新機(jī)房recommission。每天不能下線太多機(jī)器,要保證計(jì)算。

  1. 新機(jī)房提前架設(shè)90臺(tái)機(jī)器,測(cè)試帶寬。帶寬的測(cè)試方式是比較簡(jiǎn)單粗暴的,就是在新機(jī)房拿幾十臺(tái)新機(jī)器搭一個(gè)集群,然后舊機(jī)房集群和新機(jī)房集群之間做distcp,帶寬能打滿(mǎn)即可。

  2. 新機(jī)房拆除小集群,合并到大集群里,機(jī)架感知按照 "/機(jī)房/機(jī)架" 這種方式劃分,然后提前做一段時(shí)間balancer。

當(dāng)然在這里面會(huì)發(fā)現(xiàn)一些問(wèn)題,我記錄在上一篇博客里了,這里再重復(fù)記錄一下。

  1. 萬(wàn)兆網(wǎng)卡的mtu問(wèn)題,新機(jī)房的新機(jī)器datanode報(bào)slow block receiver問(wèn)題,調(diào)整網(wǎng)卡mtu從1500到9000,解決。

  2. df 命令卡死,升級(jí)systemd并重啟解決

  3. 跑作業(yè)慢,打Centos 7 CPU補(bǔ)丁 重啟

  4. 廣播風(fēng)暴問(wèn)題,流量比較大,查看網(wǎng)口每機(jī)器每秒幾百條ARP通告,目前無(wú)解,后續(xù)運(yùn)維VLAN解決。

詳情看 運(yùn)維記錄系列二十三 https://blog.51cto.com/slaytanic/2141665

期間還遇到了decommission速度慢的問(wèn)題,調(diào)整了一下dn參數(shù)dfs.datanode.max.transfer.threads到16384,然后調(diào)整NN參數(shù) dfs.namenode.replication.max-streams-hard-limit參數(shù)到8感覺(jué)也沒(méi)快多少,然后翻看源碼,在 src/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/UnderReplicatedBlocks.java 這個(gè)文件里面

public synchronized List<List<Block>> chooseUnderReplicatedBlocks(
int blocksToProcess) {
  // initialize data structure for the return value
  List<List<Block>> blocksToReplicate = new ArrayList<List<Block>>(LEVEL);
  for (int i = 0; i < LEVEL; i++) {
    blocksToReplicate.add(new ArrayList<Block>());
  }

  if (size() == 0) { // There are no blocks to collect.
    return blocksToReplicate;
  }
  int blockCount = 0;
  for (int priority = 0; priority < LEVEL; priority++) {
    // Go through all blocks that need replications with current priority.
    BlockIterator neededReplicationsIterator = iterator(priority);
    Integer replIndex = priorityToReplIdx.get(priority);
    // skip to the first unprocessed block, which is at replIndex
    for (int i = 0; i < replIndex && neededReplicationsIterator.hasNext(); i++) {
      neededReplicationsIterator.next();
    }

    blocksToProcess = Math.min(blocksToProcess, size());
    if (blockCount == blocksToProcess) {
      break;  // break if already expected blocks are obtained
    }
    // Loop through all remaining blocks in the list.
    while (blockCount < blocksToProcess
      && neededReplicationsIterator.hasNext()) {
      Block block = neededReplicationsIterator.next();
      blocksToReplicate.get(priority).add(block);
      replIndex++;
      blockCount++;
    }
    if (!neededReplicationsIterator.hasNext()
      && neededReplicationsIterator.getPriority() == LEVEL - 1) {
      // reset all priorities replication index to 0 because there is no
      // recently added blocks in any list.
      for (int i = 0; i < LEVEL; i++) {
        priorityToReplIdx.put(i, 0);
      }
      break;
    }
    priorityToReplIdx.put(priority, replIndex);
  }
  return blocksToReplicate;
}

從這里獲取需要被復(fù)制的數(shù)據(jù)塊的索引,我們只需要將 Integer replIndex = proorityToReplIdx.get(priority);改為 Integer replIndex = 0;即可。

但是為了改一行代碼我還得重新編譯,就不劃算了。于是同事找了個(gè)工具叫byteman,jboss公司出品的內(nèi)存修改器,可以理解成針對(duì)Java進(jìn)行內(nèi)存修改的金山游俠。

具體修改參考同事的github,我就不重復(fù)了。不過(guò)萬(wàn)一內(nèi)存改崩潰了,本人不負(fù)任何責(zé)任。

https://github.com/whitelilis/whitelilis.github.io/issues/17

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)頁(yè)名稱(chēng):Hadoop運(yùn)維記錄系列(二十四)-創(chuàng)新互聯(lián)
地址分享:http://chinadenli.net/article10/dgpcgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、面包屑導(dǎo)航網(wǎng)站制作、App設(shè)計(jì)商城網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司