前一篇文章, 我们提到如何查询Trafodion表占用的存储空间,参考 http://blog.youkuaiyun.com/post_yuan/article/details/72530683
最近遇到一个Case,客户环境由于磁盘空间有限加上大批量加载数据的任务,导致集群整体磁盘可用空间不足15%,希望能在现有的集群上释放一些空间出来。
Hadoop集群释放磁盘空间的其中一个方法就是减少数据的副本数,Hadoop默认是3个副本,可以通过Hadoop命令将副本数减少为2或1,使用的Hadoop命令如下,
现在让们尝试一下修改副本前后的变化,首先查看默认三副本的状态,
[trafodion@openstack-1 ~]$ hadoop fs -du /hbase/data/default | sort -n -r
4195610 12586830 /hbase/data/default/TRAFODION._MD_.COLUMNS
858558 2575674 /hbase/data/default/TRAFODION._MD_.OBJECTS
36317 108951 /hbase/data/default/TRAFODION._MD_.KEYS
27963 83889 /hbase/data/default/TRAFODION._MD_.TEXT
21929 65787 /hbase/data/default/TRAFODION._MD_.OBJECTS_UNIQ_IDX
16646 49938 /hbase/data/default/TRAFODION._MD_.TABLES
7708 23124 /hbase/data/default/TRAFODION._REPOS_.METRIC_SESSION_TABLE
7708 23124 /hbase/data/default/TRAFODION._REPOS_.METRIC_QUERY_AGGR_TABLE
4631 13893 /hbase/data/default/TRAFODION._DTM_.TDDL
3684 11052 /hbase/data/default/TRAFODION._REPOS_.METRIC_QUERY_TABLE
3207 9621 /hbase/data/default/TRAFODION._DTM_.TLOG1_CONTROL_POINT
1796 5388 /hbase/data/default/TRAFODION._DTM_.TLOG0_CONTROL_POINT
1178 3534 /hbase/data/default/TRAFODION._DTM_.TLOG0
634 1902 /hbase/data/default/TRAFODION.PERSNL.SB_HISTOGRAM_INTERVALS
632 1896 /hbase/data/default/TRAFODION.PERSNL.SB_PERSISTENT_SAMPLES
632 1896 /hbase/data/default/TRAFODION._MD_.UNIQUE_REF_CONSTR_USAGE
628 1884 /hbase/data/default/TRAFODION._MD_.TABLE_CONSTRAINTS_IDX
626 1878 /hbase/data/default/TRAFODION._REPOS_.METRIC_TEXT_TABLE
624 1872 /hbase/data/default/TRAFODION._TENANT_MD_.TENANT_USAGE
620 1860 /hbase/data/default/TRAFODION._MD_.TABLE_CONSTRAINTS
616 1848 /hbase/data/default/TRAFODION.PERSNL.SB_HISTOGRAMS
616 1848 /hbase/data/default/TRAFODION._MD_.REF_CONSTRAINTS
616 1848 /hbase/data/default/TRAFODION._MD_.LIBRARIES_USAGE
614 1842 /hbase/data/default/TRAFODION._TENANT_MD_.TENANTS
608 1824 /hbase/data/default/TRAFODION._MD_.VIEWS_USAGE
606 1818 /hbase/data/default/TRAFODION.PERSNL.XEMPNAME
606 1818 /hbase/data/default/TRAFODION.PERSNL.XEMPDEPT
606 1818 /hbase/data/default/TRAFODION.PERSNL.XDEPTRPT
606 1818 /hbase/data/default/TRAFODION.PERSNL.XDEPTMGR
606 1818 /hbase/data/default/TRAFODION.PERSNL.EMPLOYEE
604 1812 /hbase/data/default/TRAFODION.PERSNL.PROJECT
604 1812 /hbase/data/default/TRAFODION._MD_.LIBRARIES
602 1806 /hbase/data/default/TRAFODION._MD_.VERSIONS
602 1806 /hbase/data/default/TRAFODION._MD_.ROUTINES
602 1806 /hbase/data/default/TRAFODION._MD_.DEFAULTS
600 1800 /hbase/data/default/TRAFODION._MD_.SEQ_GEN
600 1800 /hbase/data/default/TRAFODION._MD_.INDEXES
598 1794 /hbase/data/default/TRAFODION.PERSNL.DEPT
596 1788 /hbase/data/default/TRAFODION.PERSNL.JOB
596 1788 /hbase/data/default/TRAFODION._MD_.VIEWS
596 1788 /hbase/data/default/TRAFODION._MD_.AUTHS
535 1605 /hbase/data/default/TRAFODION._DTM_.TLOG1
...
上述结果中第一列为数据的原始大小,第二列是第一列的3倍关系,也就是默认的3副本,现在我们利用-setrep命令将副本设置为2,
su - hdfs
hadoop fs -setrep -w 2 -R /hbase/data/default
完成之后,再查看修改后的文件大小,
[hdfs@openstack-1 ~]$ hadoop fs -du /hbase/data/default | sort -n -r
4195610 8391220 /hbase/data/default/TRAFODION._MD_.COLUMNS
858558 1717116 /hbase/data/default/TRAFODION._MD_.OBJECTS
36317 72634 /hbase/data/default/TRAFODION._MD_.KEYS
27963 55926 /hbase/data/default/TRAFODION._MD_.TEXT
21929 43858 /hbase/data/default/TRAFODION._MD_.OBJECTS_UNIQ_IDX
16646 33292 /hbase/data/default/TRAFODION._MD_.TABLES
7708 15416 /hbase/data/default/TRAFODION._REPOS_.METRIC_SESSION_TABLE
7708 15416 /hbase/data/default/TRAFODION._REPOS_.METRIC_QUERY_AGGR_TABLE
4631 9262 /hbase/data/default/TRAFODION._DTM_.TDDL
3684 7368 /hbase/data/default/TRAFODION._REPOS_.METRIC_QUERY_TABLE
3207 6414 /hbase/data/default/TRAFODION._DTM_.TLOG1_CONTROL_POINT
1796 3592 /hbase/data/default/TRAFODION._DTM_.TLOG0_CONTROL_POINT
1178 2356 /hbase/data/default/TRAFODION._DTM_.TLOG0
634 1268 /hbase/data/default/TRAFODION.PERSNL.SB_HISTOGRAM_INTERVALS
632 1264 /hbase/data/default/TRAFODION.PERSNL.SB_PERSISTENT_SAMPLES
632 1264 /hbase/data/default/TRAFODION._MD_.UNIQUE_REF_CONSTR_USAGE
628 1256 /hbase/data/default/TRAFODION._MD_.TABLE_CONSTRAINTS_IDX
626 1252 /hbase/data/default/TRAFODION._REPOS_.METRIC_TEXT_TABLE
624 1248 /hbase/data/default/TRAFODION._TENANT_MD_.TENANT_USAGE
620 1240 /hbase/data/default/TRAFODION._MD_.TABLE_CONSTRAINTS
616 1232 /hbase/data/default/TRAFODION.PERSNL.SB_HISTOGRAMS
616 1232 /hbase/data/default/TRAFODION._MD_.REF_CONSTRAINTS
616 1232 /hbase/data/default/TRAFODION._MD_.LIBRARIES_USAGE
614 1228 /hbase/data/default/TRAFODION._TENANT_MD_.TENANTS
608 1216 /hbase/data/default/TRAFODION._MD_.VIEWS_USAGE
606 1212 /hbase/data/default/TRAFODION.PERSNL.XEMPNAME
606 1212 /hbase/data/default/TRAFODION.PERSNL.XEMPDEPT
606 1212 /hbase/data/default/TRAFODION.PERSNL.XDEPTRPT
606 1212 /hbase/data/default/TRAFODION.PERSNL.XDEPTMGR
606 1212 /hbase/data/default/TRAFODION.PERSNL.EMPLOYEE
604 1208 /hbase/data/default/TRAFODION.PERSNL.PROJECT
604 1208 /hbase/data/default/TRAFODION._MD_.LIBRARIES
602 1204 /hbase/data/default/TRAFODION._MD_.VERSIONS
602 1204 /hbase/data/default/TRAFODION._MD_.ROUTINES
602 1204 /hbase/data/default/TRAFODION._MD_.DEFAULTS
600 1200 /hbase/data/default/TRAFODION._MD_.SEQ_GEN
600 1200 /hbase/data/default/TRAFODION._MD_.INDEXES
598 1196 /hbase/data/default/TRAFODION.PERSNL.DEPT
596 1192 /hbase/data/default/TRAFODION.PERSNL.JOB
596 1192 /hbase/data/default/TRAFODION._MD_.VIEWS
596 1192 /hbase/data/default/TRAFODION._MD_.AUTHS
535 1070 /hbase/data/default/TRAFODION._DTM_.TLOG1
从上述结果可以看出,第二列的size修改为第一列的2倍,即现在只有2个副本了。
本文介绍了一种通过减少Hadoop集群数据副本数量来释放磁盘空间的方法,并提供了具体的命令示例。从三副本减少到两副本后,显著降低了存储占用。

被折叠的 条评论
为什么被折叠?



