您好,登錄后才能下訂單哦!
這篇文章主要介紹了Hbase FAQ熱門問答有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
if [ "$distMode" == 'false' ]then"$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" $commandToRun master $@else"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" $commandToRun zookeeper"$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" $commandToRun master"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \--hosts "${HBASE_REGIONSERVERS}" $commandToRun regionserver"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \--hosts "${HBASE_BACKUP_MASTERS}" $commandToRun master-backupfi
問:HBase 2.0 的查詢性能怎樣優化的?
答:在HBase的讀和寫鏈路中,均會產生大量的內存垃圾和碎片。比如說寫請求時需要從Connection的ByteBuffer中拷貝數據到KeyValue結構中,在把這些KeyValue結構寫入memstore時,又需要將其拷貝到MSLAB中,WAL Edit的構建,Memstore的flush等等,都會產生大量的臨時對象,和生命周期結束的對象。隨著寫壓力的上升,GC的壓力也會越大。讀鏈路也同樣存在這樣的問題,cache的置換,block數據的decoding,寫網絡中的拷貝等等過程,都會無形中加重GC的負擔。而HBase2.0中引入的全鏈路offheap功能,正是為了解決這些GC問題。大家知道Java的內存分為onheap和offheap,而GC只會整理onheap的堆。全鏈路Offheap,就意味著HBase在讀寫過程中,KeyValue的整個生命周期都會在offheap中進行,HBase自行管理offheap的內存,減少GC壓力和GC停頓。
寫鏈路的offheap包括以下幾個優化:
在RPC層直接把網絡流上的KeyValue讀入offheap的bytebuffer中
使用offheap的MSLAB pool
使用支持offheap的Protobuf版本(3.0+)
讀鏈路的offheap主要包括以下幾個優化:
對BucketCache引用計數,避免讀取時的拷貝
使用ByteBuffer做為服務端KeyValue的實現,從而使KeyValue可以存儲在offheap的內存中
對BucketCache進行了一系列性能優化
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Hbase FAQ熱門問答有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。