公司的并发量很大,担心使用ranger-hdfs插件后 namenode扛不住压力 所以需要本人进行压测 没有在网上找到其他文档 资料太少了 决定自己写一份
介绍下压测环境 15个节点 集群高可用两个namenode 主备 其中node2 为活动的namenode
环境如下:
Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 32 On-line CPU(s) list: 0-31 Thread(s) per core: 2 Core(s) per socket: 8 Socket(s): 2 NUMA node(s): 2 Vendor ID: GenuineIntel CPU family: 6 Model: 79 Model name: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz Stepping: 1 CPU MHz: 2299.951 CPU max MHz: 3000.0000 CPU min MHz: 1200.0000 BogoMIPS: 4194.67 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 20480K NUMA node0 CPU(s): 0-7,16-23 NUMA node1 CPU(s): 8-15,24-31
这里使用阿里的压测包 stresstester 包
public class PressTest { static int concurrencyLevel=128; //并发数 static int totalRequest=Integer.MAX_VALUE; //请求数 static String username="sparkuser1"; public static void main(String[] args) { StressResult result= StressTestUtils.test(concurrencyLevel, totalRequest, new StressTask() { public Object doTask() throws Exception { HdfsFileService hdfsFileService = HdfsFileServiceLocal.LocalThread.get(); Random random=new Random(); int i=random.nextInt(100)+1; if(i<=(100*0.1)){ hdfsFileService.updateToHdfs("/tmp/startScl.sh","/user/tmp"); }else{ int rand = new Random().nextInt(10000) + 1; hdfsFileService.read("/scldir/test/dir"+rand); } return""; } }); } private static class HdfsFileServiceLocal { private static ThreadLocal<HdfsFileService> LocalThread = new ThreadLocal<HdfsFileService>() { @Override protected HdfsFileService initialValue() { try { return HdfsFileServiceImpl.newBuilder().build(username); } catch (Exception e) { e.printStackTrace(); } return null; } };
提前在Ranger上建好策略 可以开始进行测试了
建一万个策略 也提前在hdfs上建好目录 随机访问读取建立的目录
在不同服务器下启动测试程序 进行压测 启动不同数量的进程 变换条件 建更多的策略 分别测试安装插件和不安装时 相同条件 节点配置 线程数等环境下 的QPS RPC processTime等
测试结论
安装Ranger-hdfs插件较不安装插件更耗namenode性能 在该集群配置环境上namenode QPS上线分别为
二服务器下二进程
♥安装Ranger-hdfs
QPS:2.45W
RPC processing time : 0 ms
三服务器下三进程
♥安装Ranger-hdfs
QPS:3.15W
RPC processing time : 0 ms
♥未安装Ranger-hdfs
QPS:5.6W
RPC processing time : 0 ms
五服务器下五进程
♥安装Ranger-hdfs
QPS:3.14W
RPC processing time : 20 ms
♥未安装Ranger-hdfs
QPS:5.58W
RPC processing time : 0 ms
七服务器下七进程
♥安装Ranger-hdfs
QPS:3.34W
RPC processing time : 25 ms
♥未安装Ranger-hdfs
QPS:5.71W
RPC processing time : 3 ms
比对建一万策略跟五万策略测试结果基本一致 影响不大 建五万策略时使用更多的内存