Trafodion 表重命名后查看占用空间
2017-06-27 12:23
337 查看
今天遇到一个问题—Trafodion中的表在重命名(rename)之后从HDFS上面看不到表实际占用的空间了,或者说从HDFS上查看到的表的实际空间数据是不正确的。
鉴于此,自己找了一台环境试验了一下,果真如此,下面是试验的步骤。
1 从HDFS中查看一个原始表占用空间
2 从Trafodion中将表重命名
3 从HDFS中查看重命名后表占用空间
通过以下结果发现,重命名之后,HDFS实际的目录空间并不像我们想象的那样,即新表的目录空间和原始表的目录空间一样大,查看新的目录详细内容如下,
实际证明,原始表的实际数据文件并不会真正转移到新目录下,而是转移到/hbase/archive目录下,
因此,如果希望查看rename后表的占用空间,需要去/hbase/archive目录下去找到原始文件占用的空间。
以下是HBase的archive目录的含义,
以下是HBase层表重命名的具体方式,
鉴于此,自己找了一台环境试验了一下,果真如此,下面是试验的步骤。
1 从HDFS中查看一个原始表占用空间
[trafodion@esg08 ~]$ hadoop fs -du -h -s /hbase/data/default/TRAFODION.TJ.RYXX 12.2 G 36.6 G /hbase/data/default/TRAFODION.TJ.RYXX
2 从Trafodion中将表重命名
>>alter table RYXX rename to RYXX_NEW; --- SQL operation complete.
3 从HDFS中查看重命名后表占用空间
[trafodion@esg08 ~]$ hadoop fs -du -h -s /hbase/data/default/TRAFODION.TJ.RYXX_NEW 1.8 K 5.5 K /hbase/data/default/TRAFODION.TJ.RYXX_NEW
通过以下结果发现,重命名之后,HDFS实际的目录空间并不像我们想象的那样,即新表的目录空间和原始表的目录空间一样大,查看新的目录详细内容如下,
[trafodion@esg08 ~]$ hadoop fs -ls /hbase/data/default/TRAFODION.TJ.RYXX_NEW Found 10 items drwxrwxr-x - hbase hbase 0 2017-06-27 11:24 /hbase/data/default/TRAFODION.TJ.RYXX_NEW/.tabledesc drwxrwxr-x - hbase hbase 0 2017-06-27 11:24 /hbase/data/default/TRAFODION.TJ.RYXX_NEW/.tmp drwxrwxr-x - hbase hbase 0 2017-06-27 11:24 /hbase/data/default/TRAFODION.TJ.RYXX_NEW/05c7c38ba2a1dd15184bf0eafd0ba281 drwxrwxr-x - hbase hbase 0 2017-06-27 11:24 /hbase/data/default/TRAFODION.TJ.RYXX_NEW/189da5e700bcdf605b0f5f57e09753dd drwxrwxr-x - hbase hbase 0 2017-06-27 11:24 /hbase/data/default/TRAFODION.TJ.RYXX_NEW/4ddf9cf991493e15dd262b0856f3c8ac drwxrwxr-x - hbase hbase 0 2017-06-27 11:24 /hbase/data/default/TRAFODION.TJ.RYXX_NEW/561297e5d73464d38ce7f40a0bdfb51d drwxrwxr-x - hbase hbase 0 2017-06-27 11:24 /hbase/data/default/TRAFODION.TJ.RYXX_NEW/8356d420d1427e462d5b920232a7db36 drwxrwxr-x - hbase hbase 0 2017-06-27 11:24 /hbase/data/default/TRAFODION.TJ.RYXX_NEW/b876c2031be6c1042a592b4b2576f072 drwxrwxr-x - hbase hbase 0 2017-06-27 11:24 /hbase/data/default/TRAFODION.TJ.RYXX_NEW/eb44f37385e75b9720da42a12c8ba1f6 drwxrwxr-x - hbase hbase 0 2017-06-27 11:24 /hbase/data/default/TRAFODION.TJ.RYXX_NEW/fef99570b311e511d8ae4460aab12be5
实际证明,原始表的实际数据文件并不会真正转移到新目录下,而是转移到/hbase/archive目录下,
[trafodion@esg08 ~]$ hadoop fs -du -h /hbase/archive/data/default 12.2 G 36.6 G /hbase/archive/data/default/TRAFODION.TJ.RYXX
因此,如果希望查看rename后表的占用空间,需要去/hbase/archive目录下去找到原始文件占用的空间。
以下是HBase的archive目录的含义,
### /hbase/archive/ 存储表的归档和快照,HBase 在做 Split或者 compact 操作完成之后,会将 HFile 移到archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理。 存储表的归档和快照具体目录: /hbase/archive/data/default/表名/region名/列族名/fd2221d8d1ae4e579c21882f0ec4c5a5
以下是HBase层表重命名的具体方式,
hbase shell> disable 'tablea' hbase shell> snapshot 'tablea', 'tableaSnapshot' hbase shell> clone_snapshot 'tableaSnapshot', 'tablea_newname' hbase shell> delete_snapshot 'tableaSnapshot' hbase shell> drop 'tablea'
相关文章推荐
- linux下使用 du查看某个文件或目录占用磁盘空间的大小
- 关于查看MSSQL 数据库 用户每个表 占用的空间大小
- 查看SQLServer数据库每个表占用的空间大小
- 查看MSSQL数据库每个表占用的空间大小
- 查看 MySQL 数据库中每个表占用的空间大小
- MySQL查看数据库、表的占用空间大小以及某个库中所有表的引擎类型
- 查看所有用户在oracle数据库占用空间大小
- SQLServer如何查看数据库中表占用的磁盘空间(转)
- SQL Server 查看表占用空间
- mysql查看数据库和表的占用空间大小
- 查看MSSQL 数据库 用户每个表 占用的空间大小
- SQLServer查看数据表占用硬盘的空间大小:sp_spaceused
- 查看表占用空间信息
- Linux 用du命令查看目录或文件所占用磁盘空间的大小
- Linux中查看当前目录下所有子目录空间占用情况的命令 [plain] view plain copy du -shc *
- 查看 MySQL 数据库中每个表占用的空间大小
- Linu下查看目录占用空间大小
- 一键访问Win8.1 Update的磁盘空间查看资源占用情况
- Java基本数据类型占用空间的查看
- MySQL查看数据库、表的占用空间大小