Hypertable工具之dumplog

来源:互联网 发布:淘宝网招聘官网 编辑:程序博客网 时间:2024/05/01 13:13
命令: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的配置文件。
0 0
原创粉丝点击