本文描述如何查询一个Trafodion表实际占用的磁盘空间,我们知道,Trafodion表是存储在HBase中的,HBase是存储在对应的HDFS目录下/hbase,如下
[trafodion@n12 ~]$ hadoop fs -ls /
Found 7 items
drwxr-xr-x - trafodion trafodion 0 2017-05-10 14:48 /bulkload
drwxr-xr-x - hbase hbase 0 2017-05-10 12:00 /hbase
drwx--x--x - hbase hbase 0 2017-04-27 15:43 /hbase-staging
drwxr-xr-x - trafodion trafodion 0 2017-03-09 16:37 /lobs
drwxrwxrwt - hdfs supergroup 0 2016-12-07 11:09 /tmp
drwxrwxrwx - trafodion trafodion 0 2017-04-14 14:53 /trafodion_backups
drwxrwxr-x+ - hdfs supergroup 0 2017-02-15 22:12 /user
[trafodion@n12 ~]$ hadoop fs -ls /hbase
Found 10 items
drwxr-xr-x - hbase hbase 0 2017-05-10 14:48 /hbase/.hbase-snapshot
drwxrwxr-x - hbase hbase 0 2017-05-10 14:06 /hbase/.tmp
drwxr-xr-x - hbase hbase 0 2017-05-19 14:51 /hbase/MasterProcWALs
drwxr-xr-x - hbase hbase 0 2017-05-10 12:00 /hbase/WALs
drwxrwxr-x+ - hbase hbase 0 2017-01-12 14:22 /hbase/archive
drwxr-xr-x - hbase hbase 0 2016-12-14 13:47 /hbase/corrupt
drwxr-xr-x - hbase hbase 0 2016-12-26 09:11 /hbase/data
-rw-r--r-- 3 hbase hbase 42 2016-11-01 11:33 /hbase/hbase.id
-rw-r--r-- 3 hbase hbase 7 2016-11-01 11:33 /hbase/hbase.version
drwxr-xr-x - hbase hbase 0 2017-05-19 15:16 /hbase/oldWALs
/hbase下面包含多个文件夹,HBase表存储在/hbase/data目录下,Trafodion表则存储在/hbase/data/default下面,
[trafodion@n12 ~]$ hadoop fs -ls /hbase/data/default | grep TRAFODION | head -n 10
drwxr-xr-x - hbase hbase 0 2017-05-09 12:03 /hbase/data/default/TRAFODION.AAA.SB_HISTOGRAMS
drwxr-xr-x - hbase hbase 0 2017-05-09 12:03 /hbase/data/default/TRAFODION.AAA.SB_HISTOGRAM_INTERVALS
drwxr-xr-x - hbase hbase 0 2017-05-09 12:03 /hbase/data/default/TRAFODION.AAA.SB_PERSISTENT_SAMPLES
drwxr-xr-x - hbase hbase 0 2017-05-09 12:05 /hbase/data/default/TRAFODION.AAA.TEST1
drwxr-xr-x - hbase hbase 0 2017-04-25 09:36 /hbase/data/default/TRAFODION.FOREIGNKEY.AbnormalType
drwxr-xr-x - hbase hbase 0 2017-04-25 09:34 /hbase/data/default/TRAFODION.FOREIGNKEY.ArchiveStatus
drwxr-xr-x - hbase hbase 0 2017-04-25 09:37 /hbase/data/default/TRAFODION.FOREIGNKEY.BirthPlace
drwxr-xr-x - hbase hbase 0 2017-04-25 09:37 /hbase/data/default/TRAFODION.FOREIGNKEY.BloodType
drwxr-xr-x - hbase hbase 0 2017-04-25 09:37 /hbase/data/default/TRAFODION.FOREIGNKEY.Country
drwxr-xr-x - hbase hbase 0 2017-04-25 09:34 /hbase/data/default/TRAFODION.FOREIGNKEY.DeptDrg
若要查看具体某个表实际占用存储空间,则需要结合du命令来查看,
[trafodion@n12 ~]$ hadoop fs -du -h /hbase/data/default | grep TRAFODION.TEST.EBOXDATA
47.1 M 141.4 M /hbase/data/default/TRAFODION.TEST.EBOXDATA
4.5 G 13.4 G /hbase/data/default/TRAFODION.TEST.EBOXDATA_30M
53.8 M 161.4 M /hbase/data/default/TRAFODION.TEST.EBOXDATA_30M_BAK
4.5 G 13.4 G /hbase/data/default/TRAFODION.TEST.EBOXDATA_30M_NEW
上述结果中,第一列表示原始数据占用的空间,第二列是*副本数之后占用的空间,由于Hadoop默认3副本的特性,所以上述第二列是第一列的3倍关系。