• 统计HDFS中文件数量、大小、以及在某范围大小的文件数量


    说明:统计HDFS文件数量大小,小于20M文件数量

    1、HDFS 相关命令

    # 统计文件大小
    hdfs dfs -du -h / 
    
    # 统计文件数量,返回的数据是目录个数,文件个数,文件总计大小,输入路径
    hdfs dfs -count / 
    
    #统计所有文件的信息,过滤文件夹, 只统计文件,因为使用-ls -R 之后,可以看到文件是”-“开头,文件夹是”d”开头
    hdfs dfs -ls -R /path/data | grep ^- > /data.txt 
    可见,文件是”-“开头,文件夹是”d”开头:

    2、取一些测试数据

    使用:hdfs dfs -ls -R / |grep ^-

    数据保存在 data.txt 文件中;

    -rw-r--r--   3 root            supergroup          0 2018-08-31 10:36 /tmp/azkaban/mutiTest_3_1/_SUCCESS
    -rw-r--r--   3 root            supergroup      70514 2018-08-31 10:36 /tmp/azkaban/mutiTest_3_1/part-00000-c-88980650a164-c000.snappy.parquet
    -rw-r--r--   3 root            supergroup          0 2018-08-31 10:37 /tmp/azkaban/mutiTest_3_2/_SUCCESS
    -rw-r--r--   3 root            supergroup     160152 2018-08-31 10:37 /tmp/azkaban/mutiTest_3_2/part-00000-f74649c51ec416add-c000.snappy.parquet
    -rw-r--r--   3 root            supergroup          0 2018-08-31 10:38 /tmp/azkaban/mutiTest_3_3/1/_SUCCESS
    -rw-r--r--   3 root            supergroup     200425 2018-08-31 10:38 /tmp/azkaban/mutiTest_3_3/1/part-00000-9cd-8ff3-5755f0d74277-c000.snappy.parquet
    -rw-r--r--   3 root            supergroup          0 2018-08-31 10:38 /tmp/azkaban/mutiTest_3_3/2/_SUCCESS
    -rw-r--r--   3 root            supergroup        523 2018-08-31 10:38 /tmp/azkaban/mutiTest_3_3/2/part-00000-80c5c6-f830a3dabf10-c000.snappy.parquet
    -rw-r--r--   3 root            supergroup          0 2018-08-31 10:36 /tmp/azkaban/mutiTest_4_1/_SUCCESS
    -rw-r--r--   3 root            supergroup      70514 2018-08-31 10:36 /tmp/azkaban/mutiTest_4_1/part-00000-be924497-0b11-44a2f6898-c000.snappy.parquet
    -rw-r--r--   3 root            supergroup          0 2018-08-31 10:37 /tmp/azkaban/mutiTest_4_2/_SUCCESS
    -rw-r--r--   3 root            supergroup     160152 2018-08-31 10:37 /tmp/azkaban/mutiTest_4_2/part-00000-f2e48a28-5463-43ee-b92f-c000.snappy.parquet
    -rw-r--r--   3 root            supergroup          0 2018-08-31 10:38 /tmp/azkaban/mutiTest_4_3/1/_SUCCESS
    -rw-r--r--   3 root            supergroup     200425 2018-08-31 10:38 /tmp/azkaban/mutiTest_4_3/1/part-00000-00d149ae-c471-9d-c000.snappy.parquet
    -rw-r--r--   3 root            supergroup          0 2018-08-31 10:38 /tmp/azkaban/mutiTest_4_3/2/_SUCCESS
    -rw-r--r--   3 root            supergroup        523 2018-08-31 10:38 /tmp/azkaban/mutiTest_4_3/2/part-00000-6e4ea458-f4df-47aa-c000.snappy.parquet
    -rw-r--r--   3 root            supergroup          0 2018-09-14 10:35 /tmp/casted-abalone/_SUCCESS
    -rw-r--r--   3 root            supergroup      65512 2018-09-14 10:35 /tmp/casted-abalone/part-00000-40e7daf1-6a4b-4512-a776000.snappy.parquet
    -rw-r--r--   3 root            supergroup     203890 2018-09-12 14:22 /tmp/data.csv
    -rwxrwxrwx   3 root            supergroup    2234332 2018-09-11 17:19 /tmp/directory/application_11111111111_0158
    -rwxrwxrwx   3 root            supergroup    2278733 2018-09-11 17:22 /tmp/directory/application_11111111111_0159
    -rwxrwxrwx   3 root            supergroup    2285701 2018-09-11 17:23 /tmp/directory/application_11111111111_0160
    -rwxrwxrwx   3 root            supergroup    2263181 2018-09-12 08:55 /tmp/directory/application_11111111111_0161
    -rwxrwxrwx   3 root            supergroup    2508930 2018-09-12 10:25 /tmp/directory/application_11111111111_0162
    -rwxrwxrwx   3 root            supergroup    2657162 2018-09-12 10:57 /tmp/directory/application_11111111111_0163
    -rwxrwxrwx   3 root            supergroup  789259696 2018-09-12 15:19 /tmp/directory/application_11111111111_0164
    -rwxrwxrwx   3 root            supergroup  799593790 2018-09-12 15:52 /tmp/directory/application_111111111111_0165
    -rwxrwxrwx   3 root            supergroup  800492474 2018-09-12 16:21 /tmp/directory/application_11111111111_0166
    -rwxrwxrwx   3 root            supergroup     186277 2018-09-12 16:29 /tmp/directory/application_11111111111_0167
    -rwxrwxrwx   3 root            supergroup     193286 2018-09-12 16:32 /tmp/directory/application_11111111111_0168

    3、使用python脚本分析

    安装numpy和pandas模块:

    > pip3 install -i https://pypi.doubanio.com/simple/  numpy
    
    > pip3 install -i https://pypi.doubanio.com/simple/ pandas

    脚本内容:

    #!/usr/bin/env python
    # encoding: utf-8
    
    import pandas as pd
    
    # data.txt中有8列数据
    file = 'data.txt'
    
    # 统计数据一共8列
    df = pd.read_table(file, delim_whitespace=True, names=[1, 2, 3, 4, 5, 6, 7, 8])
    print('文件总行数:{}'.format(len(df)))
    
    # 第五列是大小,取小于20M(换算成b)的文件数据
    df1 = df[df[5] < 20971520]
    
    # 统计数量
    print('小于20M的文件数:{}'.format(len(df1)))

    运行:

     

    上述方案也可以通过分析fsimage文件来实现,后续写一篇操作文档;

  • 相关阅读:
    xyplorer设置备忘
    如何在CentOS 8上安装Python2 Python3
    为CentOS 8操作系统安装MySQL的方法,以安装MySQL 8为例
    SSH登录服务器报ECDSA host key "ip地址" for has changed and you have requested strict checking
    Linux常用命令大全
    转载:php的几种常用的数据交换格式
    转:GBK编码 VS UTF8编码
    转载:中文在UTF8和GBK编码中的范围
    转:SDL Specification and Description Language 简介
    转:Java中Split函数的用法技巧
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/15826852.html
Copyright © 2020-2023  润新知