kudu参数优化设置,让集群飞起来~
根據數據體量,結合集群各節點的CPU、內存、磁盤的表現,合理優化設置kudu參數,讓集群飛起來~
如有雷同,純屬借鑒~
?
1.Kudu后臺對數據進行維護操作,如寫入數據時的并發線程數,一般設置為4,官網建議的是數據目錄的3倍
? ?Kudu Tablet Server Maintenance Threads 這個參數決定了Kudu后臺對數據進行維護操作,如寫入數據時的并發線程數。并發數越大,吞吐量越高,但對集群計算能力的要求也越高。默認值為1,表示Kudu會采用單線程操作;對于需要大量數據進行快速寫入/刪除的集群,可以設置更大的值。該值可以設置跟計算節點的數據磁盤數量和CPU核數有關,一般來說,建議設置為4以獲取比較均衡的性能,最大不超過8。
? ? 參數:maintenance_manager_num_threads
2.分配給Kudu Tablet Server塊緩存的最大內存量,建議是2-4G
? ? Kudu Tablet Server Block Cache Capacity Tablet的Block buffer cache,根據集群內存配置和數據量規模設置。一般建議至少2GB~4GB。
? ? 參數:block_cache_capacity_mb
3.Tablet Server能使用的最大內存量,有多大,設置多大。
?? ?tablet Server在批量寫入數據時并非實時寫入磁盤,而是先Cache在內存中, 在flush到磁盤。這個值設置過小時,會造成Kudu數據寫入性能顯著下降。
?? ?對于寫入性能要求比較高的集群,建議設置更大的值(一般是機器內存的百分之80) Kudu Tablet Server Hard Memory Limit Kudu的Tablet Server能使用的最大內存。
? ? 參數:memory_limit_hard_bytes
4.參數決定了Kudu能夠同時打開的操作系統文件數。不設置則使用系統的ulimits值,設置后會覆蓋系統的設置。
? ? 需要根據集群的規模及并發處理能力,非常謹慎的設置這個值。
?? ?參數:Maximum Process File Descriptors?
5.參數設置了每個Tablet的默認復制因子,默認值為3,表示每個表的數據會在Kudu中存儲3份副本。
?? ?我們可以根據需要修改這個全局默認值,也可以在建表語句中通過’kudu.num_tablet_replicas’屬性來設置每個表的副本數,
? ? 參數:kudu.num_tablet_replicas=1
6.tserver宕掉后,5分鐘后沒有恢復的情況下,該機器上的tablet會移動到其他機器?
?? ?參數:--follower_unavailable_considered_failed_sec=300?
7.超過參數時間的歷史數據會被清理,如果是base數據不會被清理。而真實運行時數據大小持續累加,沒有被清理。?
? ? 參數:--tablet_history_max_age_sec=900
8.hash分區數量 * range分區數量不能超過60個(1.7.0版本之后沒限制了)
9.設置block的管理器為文件管理器(默認是日志服務器)
? ? 解釋:并非所有文件系統格式都需要設置該選項。ext4、xfs格式支持hole punching(打孔),所以不需要設置block_manager=file,但是ext3 格式需要。可以通過df -Th命令來查看文件系統的格式。
? ? 參數:--block_manager=file
10.設置ntp服務器的時間誤差不超過20s(默認是10s)
? ? 參數:max_clock_sync_error_usec=20000000
11.設置rpc的連接時長(默認是3s,建議不要設置)
? ? 參數:--rpc_negotiation_timeout_ms=300000
12.設置rpc一致性選擇的連接時長(默認為1s,建議不要設置)
? ? 參數:--consensus_rpc_timeout_ms=1000
13.記錄kudu的crash的信息
? ? 解釋:
? ? ? ? Kudu在遇到崩潰時,使用Google Breakpad庫來生成minidump。這些minidumps的大小通常只有幾MB,即使禁用了核心轉儲生成,也會生成,
? ? ? ? 生成minidumps只能在Linux上建立。
? ? ? ? minidump文件包含有關崩潰的進程的重要調試信息,包括加載的共享庫及其版本,崩潰時運行的線程列表,處理器寄存器的狀態和每個線程的堆棧內存副本,
? ? ? ? 以及CPU和操作系統版本信息。
? ? ? ? Minitump可以通過電子郵件發送給Kudu開發人員或附加到JIRA,以幫助Kudu開發人員調試崩潰。為了使其有用,
? ? ? ? 開發人員將需要知道Kudu的確切版本和發生崩潰的操作系統。請注意,雖然minidump不包含堆內存轉儲,但它確實包含堆棧內存,
? ? ? ? 因此可以將應用程序數據顯示在minidump中。如果機密或個人信息存儲在群集上,請不要共享minidump文件。
? ? 參數:
? ? ? ? --minidump_path=minidumps ? ? ? ? ? ? ?
? ? ? ? --max_minidumps=9
? ? ? ? (默認是在設置的log目錄下生成minidumps目錄,里邊包含最多9個以dmp結尾的文件,無法設置為空值,需要注意的是如果自定義minidump文件,
? ? ? ? 在master不能啟動的情況下,需要將該目錄中的文件刪除)
14.Stack WatchLog
? ? 解釋:每個Kudu服務器進程都有一個稱為Stack Watchdog的后臺線程,它監視服務器中的其他線程,以防它們被阻塞超過預期的時間段。
? ? ? ? ? 這些跟蹤可以指示操作系統問題或瓶頸存儲。通過WARN日志信息的跟蹤(Trace)可以用于診斷由于Kudu以下的系統(如磁盤控制器或文件系統)引起的根本原因延遲問題。
15.cdh設置多master
? ? 參數:--master_addresses=cdh01:7051,cdh02:7051cdh03:7051
16.kudu出現啟動速度特別慢
? ? 解決辦法:
? ? ? ? 1、取消所有配置參數(除了資源、時間同步)
? ? ? ? 2、升級版本到kudu1.6.0
? ? ? ? 3、client必須停止(client不占用io的情況,3臺機器,每臺機器60G,127分區數量,啟動速度3分鐘)
? ? ? ? 4、查看io使用情況 iostat -d -x -k 1 200
17.單hash分區最大是60
18.安裝kudu過程中,會要求CPU支持ssc4.2指令集,但是我們的虛擬機cpu沒有這個執行集,所以無法安裝
19.設置client長連接過期時間
? ? 參數:--authn_token_validity_seconds=12960000(150天)
? ? 注意:設置到tserver的配置文件中
20.tserver和master的wal和data目錄要分隔(或者是目錄設置為lvm卷軸)
? ? 原因:wal目錄只能設置為1個
? ? 參數:--fs_wal_dir_reserved_bytes
? ? 解釋:
? ? ? ? Number of bytes to reserve on the log directory filesystem for non-Kudu usage. The default,
? ? ? ? which is represented by -1, is that 1% of the disk space on each disk will be reserved. ? ??
? ? ? ? Any other value specified represents the number of bytes reserved and must be greater than or equal to 0.?
? ? ? ? Explicit percentages to reserve are not currently supported
? ? ? ? 用于非kudu都使用的日志目錄文件系統的字節數,默認情況下是-1,每個磁盤上的磁盤空間的1%將被保留,指定的任何其他值表示保留的字節數,必須大于或等于0。
21.設置用戶權限,能移動tablet
? ? 參數:--superuser_acl=*
?
【小編廢話】
在日常開發中,還需要結合集群的實際情況,任務的差異性,結合任務日志,針對性的調整參數,兩個原則:
原則1:當資源緊張時,重要任務優先(需結合調度時間優化)。
原則2:在保證原則1的前提下,提升整個集群的效率。當時效要求高時,盡量壓縮總體運行時間;當穩定性要求更高時,錯峰執行,負載均衡。
?
參數調優核心總結為兩個字:平衡。
1、時效和穩定性的平衡;
2、資源的平衡,在某一時間點,集群的內存、io、cpu等負載均衡。
總結
以上是生活随笔為你收集整理的kudu参数优化设置,让集群飞起来~的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机实验-定时中断
- 下一篇: 机器学习实战之K近邻算法