zoukankan      html  css  js  c++  java
  • Ranger-hdfs插件压测

    公司的并发量很大,担心使用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

    比对建一万策略跟五万策略测试结果基本一致 影响不大 建五万策略时使用更多的内存

  • 相关阅读:
    laravel获取不到session
    laravel表单提交419错误
    'cross-env' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    centos 虚拟机出问题 Oh no,something has gone wrong! 解决方法
    fastadmin关闭验证码登录
    php二维数组排序
    不自动显示html表单记住的内容 自动完成等清除记忆
    两个服务器之间使用minio同步文件
    redis获取数据库个数
    html跳转页面
  • 原文地址:https://www.cnblogs.com/songchaolin/p/11431188.html
Copyright © 2011-2022 走看看