日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

2021年大数据HBase(十七):❤️HBase的360度全面调优❤️

發布時間:2023/11/28 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021年大数据HBase(十七):❤️HBase的360度全面调优❤️ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

全網最詳細的大數據HBase文章系列,強烈建議收藏加關注!?

新文章都已經列出歷史文章目錄,幫助大家回顧前面的知識重點。

目錄

🐏系列歷史文章🐏

🐇HBase的360度全面調優🐇

一、??通用調優??

二、??Linux調優??

三、??HDFS調優??

四、🌊HBase的調優🌊

五、🐷內存優化🐷

六、🐈Zookeeper的調優🐈


🐏系列歷史文章🐏

2021年大數據HBase(十七):HBase的360度全面調優

2021年大數據HBase(十六):HBase的協處理器(Coprocessor)

2021年大數據HBase(十五):HBase的Bulk Load批量加載操作

2021年大數據HBase(十四):HBase的原理及其相關的工作機制

2021年大數據HBase(十三):HBase讀取和存儲數據的流程

2021年大數據HBase(十二):Apache Phoenix 二級索引

2021年大數據HBase(十一):Apache Phoenix的視圖操作

2021年大數據HBase(十):Apache Phoenix的基本入門操作

2021年大數據HBase(九):Apache Phoenix的安裝

2021年大數據HBase(八):Apache Phoenix的基本介紹

2021年大數據HBase(七):Hbase的架構!【建議收藏】

2021年大數據HBase(六):HBase的高可用!【建議收藏】

2021年大數據HBase(五):HBase的相關操作-JavaAPI方式!【建議收藏】

2021年大數據HBase(四):HBase的相關操作-客戶端命令式!【建議收藏】

2021年大數據HBase(三):HBase數據模型

2021年大數據HBase(二):HBase集群安裝操作

2021年大數據HBase(一):HBase基本簡介

🐇HBase的360度全面調優🐇

一、??通用調優??

1) NameNode的元數據備份使用SSD

2) ?定時備份NameNode上的元數據 ? ? 每小時或者每天備份,如果數據極其重要,可以5~10分鐘備份一次。

備份可以通過定時任務復制元數據目錄即可。

3)為NameNode指定多個元數據目錄

? ? ?使用dfs.name.dir或者dfs.namenode.name.dir指定。一個指定本地磁盤,一個指定網絡磁盤。這樣可以提供元數據的冗余和健壯性,以免發生故障。

? ? 設置dfs.namenode.name.dir.restore為true,允許嘗試恢復之前失敗的dfs.namenode.name.dir目錄,在創建checkpoint時做此嘗試,如果設置了多個磁盤,建議允許。

4) NameNode節點配置為RAID1(鏡像盤)結構

5) 保持NameNode日志目錄有足夠的空間,有助于幫助發現問題。

6) Hadoop是IO密集型框架,所以盡量提升存儲的速度和吞吐

二、??Linux調優??

1) 開啟文件系統的預讀緩存可以提高讀取速 ? ?

$ sudo blockdev --setra 32768 /dev/sda ? (尖叫提示:ra是readahead的縮寫)

2) 最大限度使用物理內存

?$ sudo sysctl -w vm.swappiness=0

swappiness,Linux內核參數,控制換出運行時內存的相對權重

swappiness參數值可設置范圍在0到100之間,低參數值會讓內核盡量少用交換,更高參數值會使內核更多的去使用交換空間

默認值為60(當剩余物理內存低于40%(40=100-60)時,開始使用交換空間)

對于大多數操作系統,設置為100可能會影響整體性能,而設置為更低值(甚至為0)則可能減少響應延遲

3) 調整ulimit上限, 默認值為比較小的數字

$ ulimit -n 查看允許最大進程數 ? ? ?

$ ulimit -u 查看允許打開最大文件數

4)開啟集群的時間同步NTP

三、??HDFS調優??

1) 保證RPC調用會有較多的線程 ? ? ? ?

屬性:dfs.namenode.handler.count ? ? ? ?

解釋:該屬性是NameNode服務默認線程數,的默認值是10,根據機器的可用內存可以調整為50~100 ? ? ? ?

屬性:dfs.datanode.handler.count ? ? ? ?

解釋:該屬性默認值為10,是DataNode的處理線程數,如果HDFS客戶端程序讀寫請求比較多,可以調高到15~20,設置的值越大,內存消耗越多,不要調整的過高,一般業務中,5~10即可。

2) 副本數量的調整

屬性:dfs.replication ? ?

解釋:如果數據量巨大,且不是非常之重要,可以調整為2~3,如果數據非常之重要,可以調整為3~5。

3) 文件塊大小的調整 ? ? ?

屬性:dfs.blocksize ? ? ?

解釋:塊大小定義,該屬性應該根據存儲的大量的單個文件大小來設置,如果大量的單個文件都小于100M,建議設置成64M塊大小,對于大于100M或者達到GB的這種情況,建議設置成256M,一般設置范圍波動在64M~256M之間。

四、🌊HBase的調優🌊

1) ?優化DataNode允許的最大文件數

屬性:dfs.datanode.max.transfer.threads ? ? ?

文件:hdfs-site.xml ? ? ?

解釋:HBase一般都會同一時間操作大量的文件,根據集群的數量和規模以及數據動作,設置為4096或者更高。默認值:4096

2) 優化延遲高的數據操作的等待時間 ? ?

屬性:dfs.image.transfer.timeout ? ?

文件:hdfs-site.xml ? ?

解釋:如果對于某一次數據操作來講,延遲非常高,socket需要等待更長的時間,建議把該值設置為更大的值(默認60000毫秒),以確保socket不會被timeout掉。

3) 優化數據的寫入效率

屬性: ? ? ? ? ?

mapreduce.map.output.compress ? ? ? ? ?

mapreduce.map.output.compress.codec

文件:mapred-site.xml

解釋:開啟這兩個數據可以大大提高文件的寫入效率,減少寫入時間。第一個屬性值修改為true,第二個屬性值修改為:org.apache.hadoop.io.compress.GzipCodec

4) 優化DataNode存儲

屬性:dfs.datanode.failed.volumes.tolerated

文件:hdfs-site.xml ? ? ?

解釋:默認為0,意思是當DataNode中有一個磁盤出現故障,則會認為該DataNode shutdown了。如果修改為1,則一個磁盤出現故障時,數據會被復制到其他正常的DataNode上。

5) 設置RPC監聽數量 ? ? ?

屬性:hbase.regionserver.handler.count ? ? ?

文件:hbase-site.xml ? ? ?

解釋:默認值為30,用于指定RPC監聽的數量,可以根據客戶端的請求數進行調整,讀寫請求較多時,增加此值。

6) 優化HStore文件大小 ? ? ?

屬性:hbase.hregion.max.filesize ? ? ?

文件:hbase-site.xml ? ? ?

解釋:默認值10737418240(10GB),如果需要運行HBase的MR任務,可以減小此值,因為一個region對應一個map任務,如果單個region過大,會導致map任務執行時間過長。該值的意思就是,如果HFile的大小達到這個數值,則這個region會被切分為兩個Hfile。

7) 優化hbase客戶端緩存 ? ? ?

屬性:hbase.client.write.buffer ? ? ?

文件:hbase-site.xml ? ? ?

解釋:用于指定HBase客戶端緩存,增大該值可以減少RPC調用次數,但是會消耗更多內存,反之則反之。一般我們需要設定一定的緩存大小,以達到減少RPC次數的目的。

8) 指定scan.next掃描HBase所獲取的行數

屬性:hbase.client.scanner.caching

文件:hbase-site.xml ? ? ?

解釋:用于指定scan.next方法獲取的默認行數,值越大,消耗內存越大。

五、🐷內存優化🐷

HBase操作過程中需要大量的內存開銷,畢竟Table是可以緩存在內存中的,一般會分配整個可用內存的70%給HBase的Java堆。但是不建議分配非常大的堆內存,因為GC過程持續太久會導致RegionServer處于長期不可用狀態,一般16~48G內存就可以了,如果因為框架占用內存過高導致系統內存不足,框架一樣會被系統服務拖死。

1) JVM優化

2)并行GC

參數:-XX:+UseParallelGC ? ?

解釋:開啟并行GC

3) 同時處理垃圾回收的線程數

參數:-XX:ParallelGCThreads=cpu_core – 1 ? ?

解釋:該屬性設置了同時處理垃圾回收的線程數。

4) 禁用手動GC ? ?

參數:-XX:DisableExplicitGC ? ?

解釋:防止開發人員手動調用GC

六、🐈Zookeeper的調優🐈

參數:zookeeper.session.timeout

文件:hbase-site.xml

解釋:In hbase-site.xml, set zookeeper.session.timeout to 30 seconds or less to bound failure detection (20-30 seconds is a good start).該值會直接關系到master發現服務器宕機的最大周期,默認值為30秒,如果該值過小,會在HBase在寫入大量數據發生而GC時,導致RegionServer短暫的不可用,從而沒有向ZK發送心跳包,最終導致認為從節點shutdown。一般20臺左右的集群需要配置5臺zookeeper。


  • 📢博客主頁:https://lansonli.blog.csdn.net
  • 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
  • 📢本文由 Lansonli 原創,首發于 CSDN博客🙉
  • 📢大數據系列文章會每天更新,停下休息的時候不要忘了別人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活?

總結

以上是生活随笔為你收集整理的2021年大数据HBase(十七):❤️HBase的360度全面调优❤️的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。