• 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

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

  • 相关阅读:
    CentOS7.5右键创建空白文档
    CentOS7.5安装配置conky(极简)
    CentOS7.5安装nodejs
    CentOS7.5安装网易云音乐
    CentOS7.5删除旧的内核
    CentOS7.5安装notepadqq
    CentOS7英文环境下使用中文输入法
    CentOS7安装Pycharm后无法使用日常的快捷键
    tomcat的work目录作用
    ORACLE获取某个时间段之间的月份列表
  • 原文地址:https://www.cnblogs.com/songchaolin/p/11431188.html
Copyright © 2020-2023  润新知