1. 程式人生 > >論dfs.namenode.handler.count配置引數的總要性

論dfs.namenode.handler.count配置引數的總要性

這篇文章的故障,雖然用分批啟動DN節點的方法,避免了重啟HDFS的出現的記憶體問題。但是治標不治本,風險依然是存在的。所以要從根本上根治這個疑難雜症,就要從其他引數配置著手。

最終,鎖定一個引數配置dfs.namenode.handler.count。先來看看它的解釋
*NameNode有一個工作執行緒池用來處理客戶端的遠端過程呼叫及叢集守護程序的呼叫。處理程式數量越多意味著要更大的池來處理來自不同DataNode的併發心跳以及客戶端併發的元資料操作。對於大叢集或者有大量客戶端的叢集來說,通常需要增大引數dfs.namenode.handler.count的預設值10。設定該值的一般原則是將其設定為叢集大小的自然對數乘以20,即20logN,N為叢集大小。
如果該值設的太小,明顯的狀況就是DataNode在連線NameNode的時候總是超時或者連線被拒絕,但NameNode的遠端過程呼叫佇列很大時,遠端過程呼叫延時就會加大。症狀之間是相互影響的,很難說修改dfs.namenode.handler.count就能解決問題,但是在查詢故障時,檢查一下該值的設定是必要的。*

我們發現,在叢集中,這個引數被本地的維護人員修改的很大,達到了4000,也就是說,配置了一個執行緒池,可以容納4000個執行緒,這樣在訊息通訊時,這裡容納的資訊量就是非常龐大的,最終造成了記憶體的溢位。因此這個值可以放大,但是不能加的過大。配多少?有公式

python -c 'import math ; print int(math.log(N) * 20)'  
#N 叢集伺服器數量

相關推薦

dfs.namenode.handler.count配置引數

這篇文章的故障,雖然用分批啟動DN節點的方法,避免了重啟HDFS的出現的記憶體問題。但是治標不治本,風險依然是存在的。所以要從根本上根治這個疑難雜症,就要從其他引數配置著手。 最終,鎖定一個引數配置dfs.namenode.handler.count。先來

CentOS hadoop配置錯誤Incorrect configuration: namenode address dfs.namenode.servicerpc-address ...

# ./sbin/start-all.sh                     This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh 13/09/09 16:50:21 WARN ut

基於Bamboo的CI配置(.Net Web及Api)

開啟 image 交互 客戶 log 服務器 ges cnblogs gem 1.預發布服務器安裝Web Deploy 客戶端 2.開通8172端口,即Web Management Service 端口 3.開啟Web Management Service 服務,同時服務屬

SAP FI中配置“特別帳標誌” SGL

popu img 交易 enter tracking 來看 根據 ica 相對 SAP FI中配置“特別總帳標誌” SGL 在SAP中,特別總賬科目其實就是在做客戶或供應商的帳時,如不希望入到統馭科目下,就可以利用特別總賬標識(SGL)入到預設的特別總帳下,這時候這筆帳目

啟動伺服器時將配置引數從資料庫中載入到快取

最近做專案,碰到這樣的需求:在伺服器啟動的時候從資料庫讀取引數,將引數儲存到記憶體快取中 由於使用的是spring的自動注入方式,一開始用@component註解在啟動的時候載入查詢配置引數的bean,由於bean中要用到其他bean來查詢,但此時都為null 查詢相關資料,發現@PostC

maven配置引數詳解

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apach

kaldi中文語音識別thchs30模型訓練程式碼功能和配置引數解讀

Monophone 單音素模型的訓練 # Flat start and monophone training, with delta-delta features. # This script applies ceps

狀態列的各種配置引數

1. View.SYSTEM_UI_FLAG_VISIBLE: 顯示狀態列,Activity不全屏顯示(恢復到有狀態的正常情況)。 2. View.INVISIBLE: 隱藏狀態列,同時Activity會伸展全屏顯示。 3. View.SYSTEM_UI_FLAG_FUL

hdfs directory item limit - (dfs.namenode.fs-limits.max-directory-items)

18/11/05 22:21:44 WARN scheduler.TaskSetManager: Lost task 186792.0 in stage 0.0 (TID 1046119, emr-worker-343.cluster-40699, executor 324): org.apache.h

JVM配置引數詳解

一、堆引數設定 -XX:+PrintGC 使用這個引數,虛擬機器啟動後,只要遇到GC就會列印日誌 -XX:+UseSerialGC 配置序列回收器 -XX:+PrintGCDetails 可以檢視詳細資訊,包括各個區的情況 -Xms:設定Java程式啟動

配置引數 -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M

MyEclipse記憶體不足 以及 配置引數“ -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M ”的含義 “MyEclipse has detected that less than 5% of the

JVM 記憶體配置引數

對於JVM記憶體配置引數: -Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3   -Xmx:最大堆大小 -Xms:初始堆大小 -Xmn:年輕代大小 -XXSurvivorRatio:年輕代中Eden區

SpringBoot Logback 配置引數遷移到配置中心 Apollo

    專案中吧所有的配置檔案都移植到配置中心了,這樣後面釋出版本不需要想著改配置檔案,直接發包即可了,但是logback.xml 中間的日誌路徑,logstash host  ,以及日誌級別線上和開發環境肯定不同,為了一勞永逸,故想辦法將logback的相

高度可配置引數化UVM IP驗證環境(下)

本文轉自:http://www.eetop.cn/blog/html/28/1561828-3571698.html 5.   複用自適應引數化IP驗證環境 5.1        垂直複用(Veriti

高度可配置引數化UVM IP驗證環境(上)

本文轉自:http://www.eetop.cn/blog/html/28/1561828-3571697.html 摘要:       引數化的IP是可配置的,這意味著在不同的SOC中IP設計可以有不同的設計引數,設計引數可以對應到協議、埠

Nginx安裝配置引數

                                          Ngi

Nginx配置引數

Nginux的配置檔案是ngiux.conf 全域性配置引數: 1、執行使用者 user nobody 2、啟動的程序數,與CPU數量設定相同 worker_processes 1; 3、錯誤日誌和PID檔案 #error_log logs/error.log; #error_l

跟我學Flask(三)-程式配置引數的載入方法

此篇文章主要介紹下程式如何載入配置引數問題,比如開啟DEBUG模式 在 Flask 程式執行的時候,可以給 Flask 設定相關配置,比如:配置 Debug 模式,配置資料庫連線地址等等,設定 Flask 配置有以下三種方式: 從配置物件中載入(常用)

java cas client 配置引數說明

(CAS 一搜全是配置,確沒找到一個每個配置解釋具體含義的,自己寫一篇,希望能幫到看到這一篇部落格的你) AuthenticationFilter 需要配兩個引數: 一 casServerLoginUrl   cas 認證(使用者輸入使用者名稱密碼)的URL

如何通過 讀取配置引數 而不是 預編譯 巨集定義方式 來決定是否執行printf函式

在一個專案中,本來開始決定通過巨集定義方式來決定是否進行 printf 列印除錯資訊的,但後面考慮到使用配置引數的方式應該更好,因為通過巨集定義方式,還需要再編譯一遍程式才能進行顯示,而通過讀取配置引數方式,只需要在配置檔案中更改配置項即可,這樣更符合實際需要。  大致思路:先將需要列