命令:dumplog [options] <log-dir>
该命令导出指定目录下所有Commit Log文件的元数据(This program dumps the given log's metadata.)。它只能操作Commit Log,而不能操作MetaLog,即只能操作log目录下的root、metadata、system和user子目录。该命令只能对一个Commit Log目录进行操作,不能对单个Commit Log文件进行操作。
Options:
--block-summary Display commit log block information only
--display-values Display values (assumes they're printable)
--linked-logs Display valid (non-deleted) linked logs
--dfs arg DFS client endpoint in <host:port> format
--dfs-timeout arg Timeout in milliseconds for DFS client connections
-h [--help] Show this help message and exit
--help-config Show help message for config properties
--version Show version information and exit
-v [--verbose] Show more verbose output
--debug Show debug output (shortcut of --logging-level debug)
--quiet Negate verbose
--silent Show as little output as possible
-l [ --logging-level ] arg (=info) level: debug, info, notice, warn, error, crit, alert, fatal
--config arg (=hypertable.cfg路径) Configuration file.
--induce-failure arg Arguments for inducing failure
--workers arg Number of worker threads
--reactors arg Number of reactor threads
-t [--timeout] arg System wide timeout in milliseconds
1 block-summary参数
只显示Commit Log的块信息。
示例:dumplog --block-summary /hypertable/servers/rs3/log/user; 假设rs3的Commit Log只有一个文件163,则本例的显示结果为
/hypertable/servers/rs3/log/user163 revision 1366374196647405888
/hypertable/servers/rs3/log/user163 start-offset 0
/hypertable/servers/rs3/log/user163 end-offset 4618554
/hypertable/servers/rs3/log/user163 length 13764417
/hypertable/servers/rs3/log/user163 ztype quicklz
/hypertable/servers/rs3/log/user163 zlen 4618520
/hypertable/servers/rs3/log/user163 revision 1366374244450715673
/hypertable/servers/rs3/log/user163 start-offset 4618554
/hypertable/servers/rs3/log/user163 end-offset 8160322
/hypertable/servers/rs3/log/user163 length 10142219
/hypertable/servers/rs3/log/user163 ztype quicklz
/hypertable/servers/rs3/log/user163 zlen 3541734
/hypertable/servers/rs3/log/user163 revision 1366374255551677372
/hypertable/servers/rs3/log/user163 start-offset 8160322
/hypertable/servers/rs3/log/user163 end-offset 14744860
/hypertable/servers/rs3/log/user163 length 19348680
/hypertable/servers/rs3/log/user163 ztype quicklz
/hypertable/servers/rs3/log/user163 zlen 6584504
实验表明:
每个Commit Log文件可能会包含多个数据块,每个数据块都具有revision、start-offset 、end-offset 、length、ztype、zlen属性。Revision为内部版本号;start-offset和end-offset分别表示本块在整个文件中的起止偏移位;length 表示初始块长度,既没有压缩时的长度;ztype表示块的压缩算法;zlen表示压缩后的块长度。
很明显,相邻的两块end-offset和start-offset是一致的。并且看来Hypertable在Commit Log文件中使用了quicklz算法进行压缩,从zlen和length应该可以算出本快的压缩率,即zlen/length*100%。
本命令会忽略大小为0的Commit Log文件。
2 display-values参数
显示Commit Log文件中的数据。
示例:dumplog --display-values /hypertable/servers/rs1/log/root; 显示结果片段为
control=(REV|TS|SHARED) row='0/0:family=4 qualifier='' ts=1366098485557295001 rev=1366098485557295001 INSERT value='rs1'
control=(REV|TS|SHARED) row='0/0:family=3 qualifier='' ts=1366098485874121001 rev=1366098485874121001 INSERT value='0/0:
示例:dumplog --display-values /hypertable/servers/rs1/log/metadata; 显示结果片段为
control=(REV|TS|SHARED) row='2/0:z21454180171351126501b' family=7 qualifier='A' ts=1366373774584439003 rev=1366373774584439003 INSERT value='0'
control=(REV|TS) row='2/0:a35851918401351124919b' family=2 qualifier='A' ts=1366107562772838001 rev=1366373777522921001 DELETE_CELL value=''
示例:dumplog --display-values /hypertable/servers/rs1/log/ system; 显示结果片段为
control=(REV|TS|SHARED) row='rs1:2/0' family=2 qualifier='z21373648171351123694b' ts=1366128012178196044 rev=1366128012178196044 INSERT value='2:1366128000,362552874,44475698,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000'
实验表明:
Commit Log文件中以Cell的形式保存了需要写入集群的数据。当Cell中的control位出现SHARED时,表示ts和rev是一样的,将只存储一份。
Metadata目录下存放METADATA表的Commit Log;system目录下存放RS_METRICS表的Commit Log;root目录下存放Root METADATA表的Commit Log。
3 linked-logs参数
显示有效的(没有删除的)链接log,即与Commit Log链接的log/namespace_id/table_id目录下的数据,该数据记录了与Commit Log对应的Range的split和transfer操作日志。
示例:dumplog --linked-logs /hypertable/servers/rs2/log/user;显示结果为
/hypertable/servers/rs3/log/2/0/MxmpXEKGrKblr43W-1366107682
实验表明:Commit Log与链接数据可能位于不同的机器,即Commit Log对应的Range的transfer到其他RangeServer上。当然,该命令结果也可能为空,表示Commit Log对应的Range没有进行split和transfer操作,或者操作日志已经被删除。
4 Dfs相关参数
Dfs参数表示该命令执行时需要依赖的dfsbroker服务器,默认为localhost:38030,也可以指定为开启dfsbroker服务的其它机器。
Dfs-timeout参数表示连接dfsbroker服务的超时时间,单位为毫秒。
示例:dumplog –dfs 172.16.40.101:38030 –dfs-timeout 100 --linked-logs /hypertable/servers/rs2/log/user;
5 其它参数
Help-config:显示Hypertable所有配置项的帮助信息,包括默认值和描述。
Verbose:显示命令执行的冗余信息,例如执行命令时的初始化信息。
Debug:显示命令执行中的程序调试信息,与--logging-level debug等效。
Quiet:去除命令执行时的冗余信息,与verbose参数相反。
Logging-level:显示命令执行中指定类别的调试信息,类别包括debug, info, notice, warn, error, crit, alert, fatal。
Config:命令执行时所依赖的Hypertable的配置文件。
该命令导出指定目录下所有Commit Log文件的元数据(This program dumps the given log's metadata.)。它只能操作Commit Log,而不能操作MetaLog,即只能操作log目录下的root、metadata、system和user子目录。该命令只能对一个Commit Log目录进行操作,不能对单个Commit Log文件进行操作。
Options:
--block-summary Display commit log block information only
--display-values Display values (assumes they're printable)
--linked-logs Display valid (non-deleted) linked logs
--dfs arg DFS client endpoint in <host:port> format
--dfs-timeout arg Timeout in milliseconds for DFS client connections
-h [--help] Show this help message and exit
--help-config Show help message for config properties
--version Show version information and exit
-v [--verbose] Show more verbose output
--debug Show debug output (shortcut of --logging-level debug)
--quiet Negate verbose
--silent Show as little output as possible
-l [ --logging-level ] arg (=info) level: debug, info, notice, warn, error, crit, alert, fatal
--config arg (=hypertable.cfg路径) Configuration file.
--induce-failure arg Arguments for inducing failure
--workers arg Number of worker threads
--reactors arg Number of reactor threads
-t [--timeout] arg System wide timeout in milliseconds
1 block-summary参数
只显示Commit Log的块信息。
示例:dumplog --block-summary /hypertable/servers/rs3/log/user; 假设rs3的Commit Log只有一个文件163,则本例的显示结果为
/hypertable/servers/rs3/log/user163 revision 1366374196647405888
/hypertable/servers/rs3/log/user163 start-offset 0
/hypertable/servers/rs3/log/user163 end-offset 4618554
/hypertable/servers/rs3/log/user163 length 13764417
/hypertable/servers/rs3/log/user163 ztype quicklz
/hypertable/servers/rs3/log/user163 zlen 4618520
/hypertable/servers/rs3/log/user163 revision 1366374244450715673
/hypertable/servers/rs3/log/user163 start-offset 4618554
/hypertable/servers/rs3/log/user163 end-offset 8160322
/hypertable/servers/rs3/log/user163 length 10142219
/hypertable/servers/rs3/log/user163 ztype quicklz
/hypertable/servers/rs3/log/user163 zlen 3541734
/hypertable/servers/rs3/log/user163 revision 1366374255551677372
/hypertable/servers/rs3/log/user163 start-offset 8160322
/hypertable/servers/rs3/log/user163 end-offset 14744860
/hypertable/servers/rs3/log/user163 length 19348680
/hypertable/servers/rs3/log/user163 ztype quicklz
/hypertable/servers/rs3/log/user163 zlen 6584504
实验表明:
每个Commit Log文件可能会包含多个数据块,每个数据块都具有revision、start-offset 、end-offset 、length、ztype、zlen属性。Revision为内部版本号;start-offset和end-offset分别表示本块在整个文件中的起止偏移位;length 表示初始块长度,既没有压缩时的长度;ztype表示块的压缩算法;zlen表示压缩后的块长度。
很明显,相邻的两块end-offset和start-offset是一致的。并且看来Hypertable在Commit Log文件中使用了quicklz算法进行压缩,从zlen和length应该可以算出本快的压缩率,即zlen/length*100%。
本命令会忽略大小为0的Commit Log文件。
2 display-values参数
显示Commit Log文件中的数据。
示例:dumplog --display-values /hypertable/servers/rs1/log/root; 显示结果片段为
control=(REV|TS|SHARED) row='0/0:family=4 qualifier='' ts=1366098485557295001 rev=1366098485557295001 INSERT value='rs1'
control=(REV|TS|SHARED) row='0/0:family=3 qualifier='' ts=1366098485874121001 rev=1366098485874121001 INSERT value='0/0:
示例:dumplog --display-values /hypertable/servers/rs1/log/metadata; 显示结果片段为
control=(REV|TS|SHARED) row='2/0:z21454180171351126501b' family=7 qualifier='A' ts=1366373774584439003 rev=1366373774584439003 INSERT value='0'
control=(REV|TS) row='2/0:a35851918401351124919b' family=2 qualifier='A' ts=1366107562772838001 rev=1366373777522921001 DELETE_CELL value=''
示例:dumplog --display-values /hypertable/servers/rs1/log/ system; 显示结果片段为
control=(REV|TS|SHARED) row='rs1:2/0' family=2 qualifier='z21373648171351123694b' ts=1366128012178196044 rev=1366128012178196044 INSERT value='2:1366128000,362552874,44475698,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000'
实验表明:
Commit Log文件中以Cell的形式保存了需要写入集群的数据。当Cell中的control位出现SHARED时,表示ts和rev是一样的,将只存储一份。
Metadata目录下存放METADATA表的Commit Log;system目录下存放RS_METRICS表的Commit Log;root目录下存放Root METADATA表的Commit Log。
3 linked-logs参数
显示有效的(没有删除的)链接log,即与Commit Log链接的log/namespace_id/table_id目录下的数据,该数据记录了与Commit Log对应的Range的split和transfer操作日志。
示例:dumplog --linked-logs /hypertable/servers/rs2/log/user;显示结果为
/hypertable/servers/rs3/log/2/0/MxmpXEKGrKblr43W-1366107682
实验表明:Commit Log与链接数据可能位于不同的机器,即Commit Log对应的Range的transfer到其他RangeServer上。当然,该命令结果也可能为空,表示Commit Log对应的Range没有进行split和transfer操作,或者操作日志已经被删除。
4 Dfs相关参数
Dfs参数表示该命令执行时需要依赖的dfsbroker服务器,默认为localhost:38030,也可以指定为开启dfsbroker服务的其它机器。
Dfs-timeout参数表示连接dfsbroker服务的超时时间,单位为毫秒。
示例:dumplog –dfs 172.16.40.101:38030 –dfs-timeout 100 --linked-logs /hypertable/servers/rs2/log/user;
5 其它参数
Help-config:显示Hypertable所有配置项的帮助信息,包括默认值和描述。
Verbose:显示命令执行的冗余信息,例如执行命令时的初始化信息。
Debug:显示命令执行中的程序调试信息,与--logging-level debug等效。
Quiet:去除命令执行时的冗余信息,与verbose参数相反。
Logging-level:显示命令执行中指定类别的调试信息,类别包括debug, info, notice, warn, error, crit, alert, fatal。
Config:命令执行时所依赖的Hypertable的配置文件。