HDFS 開啟 SCR 對 Hbase 的效能提升
阿新 • • 發佈:2018-12-13
HDFS short circuit local read
HDFS client 和 HDFS datanode 通過 TCP socket 進行通訊,client 發起請求,datanode讀取資料,通過RPC將資料傳給 client 。如果client 和 資料在同一個節點上,那麼通過 datanode 就會增加額外的開銷。在這種場景下,HDFS提供了一個 local read 的機制 ,讓 client 直接讀取本地的資料而不是通過 datanode。
測試準備
軟體 | 版本 |
---|---|
HBASE | 1.2.0-cdh5.9.2 |
HDFS | 2.6.0-cdh5.9.2 |
YCSB | 0.12.0 |
* 5臺 regionServer/datanode 機器 (32C, 128G, 24*480G SSD)
* 開啟hdfs和hbase相應SCR配置
* 使用YCSB進行資料準備,分別為5000W條,欄位數為10,單條大小為1KB的資料,1000W條,單條大小為100KB的資料
* 使用YCSB進行查詢測試。
* 資料寫入HBASE後使用flush命令清空memstore,清空系統快取。
* 建表時指定SNAPPY壓縮,關閉BLOCKCACHE。
結果
型別 | Throughput(ops/sec) | avg(us) | p95(us) | p99(us) |
---|---|---|---|---|
SCR-1k | 48793 | 723 | 973 | 2661 |
noSCR-1k | 35170 | 1283 | 1735 | 3217 |
SCR-100k | 2524 | 4419 | 6955 | |
noSCR-100k | 4020 | 6099 | 9351 |
注意事項
- 如果快取命中率很高,啟用SCR並不會帶來多大的效能提升。
- https://issues.apache.org/jira/browse/HDFS-12528
參考
HDFS Short Circuit Local Read Performance Benchmarking with Apache Accumulo and Apache HBase