介绍
kudu集群部署完毕后,如何管理kudu集群?官方提供了kudu command tool工具来管理kudu集群,通过kudu command,可以对master、tserver、tablet、tables、wal、fs、replica进行管理。
cluster
ksck:检查kudu集群的健康
kudu cluster ksck <master_addresses> [-checksum_cache_blocks] [-checksum_scan] [-checksum_scan_concurrency=<concurrency>] [-nochecksum_snapshot] [-color=<color>] [-tables=<tables>] [-tablets=<tablets>]
master_addresses:逗号分隔的master地址
checksum_cache_blocks:是否检查扫描read blocks
checksum_scan:对集群中的数据进行校验和扫描
checksum_scan_concurrency:每个ts设置多少扫描校验执行器,默认4
color:输出是否有颜色
tables:一个逗号分隔的检查tables,空表示检查所有tables
tablets:逗号分隔的tablets id,空表示检查所有tablets
fs
format:格式化一个新的kudu文件系统
kudu fs format [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>] [-uuid=<uuid>]
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
uuid:filesystem使用的uuid,如果没有指定,则会自动产生一个
dump:dump出kudu文件系统
cfile:dump出cfile文件内容
kudu fs dump cfile <block_id> [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>] [-noprint_meta] [-noprint_rows]
block_id:block的定义
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
print_meta:输出中打印元数据信息
print_rows:打印cfile的每一行
tree:dump出kudu文件系统的tree
kudu fs dump tree [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>]
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
uuid:dump出kudu文件系统的uuid
kudu fs dump uuid [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>]
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
local_replica
copy_from_remote:从远程服务器拷贝tablet到本地
kudu local_replica copy_from_remote <tablet_id> <source> [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>]
tablet_id:tablet的定义
source:远程服务器地址,host:port
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
delete:删除本地文件系统的tablet副本
kudu local_replica delete <tablet_id> [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>] [-clean_unsafe]
tablet_id:tablet的定义
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
clean_unsafe:删除本地副本,但是保留tombstone record
list:显示本地的tablet副本
kudu local_replica list [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>] [-list_detail]
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
list_detail:打印副本的分区信息
cmeta:操作本地文件系统tablet的一致性元数据文件
print_replica_uuids:打印所有tablet副本的uuid
kudu local_replica cmeta print_replica_uuids <tablet_id> [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>]
tablet_id:tablet的定义
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
rewrite_raft_config:重写tablet副本的raft配置
kudu local_replica cmeta rewrite_raft_config <tablet_id> <peers>… [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>]
tablet_id:tablet的定义
peers:一个peers列表,格式为'uuid:hostname:port'
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
dump:dump出kudu的文件系统
block_ids:dump出所有本地副本的blocks的ids
kudu local_replica dump block_ids <tablet_id> [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>]
tablet_id:tablet的定义
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
meta:dump出本地副本的元数据
kudu local_replica dump meta <tablet_id> [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>]
tablet_id:tablet的定义
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
rowset:dump出本地副本的rowset内容
kudu local_replica dump rowset <tablet_id> [-dump_data] [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>] [-metadata_only] [-nrows=<nrows>] [-rowset_index=<index>]
tablet_id:tablet的定义
dump_data:dump每列的rowset
fs_wal_dir:WAL的目录,没有指定则无法启动
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
metadata_only:只dump block的元数据信息
nrows:dump出多少行
rowset_index:本地副本的index
wats:dump出本地副本的所有WAL
kudu local_replica dump wals <tablet_id> [-fs_wal_dir=<dir>] [-fs_data_dirs=<dirs>] [-print_entries=<entries>] [-noprint_meta] [-truncate_data=<data>]
tablet_id:tablet的定义
fs_data_dirs:逗号分隔的data blocks,没有指定则无法启动
print_entries:
print_meta:打印元数据信息
truncate_data:在打印之前将数据字段截断到给定的字节数
master
set_flag:改变kudu master的gflag值
kudu master set_flag <master_address> <flag> <value> [-force]
master_addresses:逗号分隔的master地址
flag:gflag的名称
value:gflag的值
force:如果为true,则允许set_flag命令设置未显式标记为运行时可设置的标志。 这样的标志更改可能会在服务器上被忽略,或者可能导致服务器崩溃。
status:获取kudu master的状态
kudu master status <master_address>
master_addresses:逗号分隔的master地址
timestamp:获取kudu master的当前timestamp
kudu master timestamp <master_address>
master_addresses:逗号分隔的master地址
pbc
dump:dump出PBC文件
kudu pbc dump <path> [-oneline]
path:PBC文件保存路径
oneline:打印出每个protobuf的每一行
remote_replica
check:检查tserver上的所有的tablet副本
kudu remote_replica check <tserver_address>
tserver_address:kudu tablet servcer地址
copy:拷贝一个tablet副本到其他tablet server上
kudu remote_replica copy <tablet_id> <src_address> <dst_address> [-force_copy]
tablet_id:tablet的定义
src_address:源地址
dst_address:目的地址
force_copy:如果远程目标有该副本,也强制拷贝
delete:删除kudu tablet上面的副本
kudu remote_replica delete <tserver_address> <tablet_id> <reason>
tserver_address:kudu tablet servcer地址
tablet_id:tablet的定义
reason:删除副本的原因
dump:dump出kudu tablet server上tablet的副本
kudu remote_replica dump <tserver_address> <tablet_id>
tserver_address:kudu tablet servcer地址
tablet_id:tablet的定义
list:列出kudu tablet server所有tablet的副本
kudu remote_replica list <tserver_address>
tserver_address:kudu tablet servcer地址
table
delete:删除一个table
kudu table delete <master_addresses> <table_name>
master_addresses:逗号分隔的master地址
table_name:要删除的表名称
list:列出所有tables
kudu table list <master_addresses> [-list_tablets]
master_addresses:逗号分隔的master地址
tablet_id:tablet的定义
tablet
leader_step_down:强制使tablets leader down
kudu tablet leader_step_down <master_addresses> <tablet_id>
master_addresses:逗号分隔的master地址
tablet_id:tablet的定义
change_config:改变tablets的raft配置
add_replica:给tablet副本增加一个新的raft配置
kudu tablet change_config add_replica <master_addresses> <tablet_id> <replica_uuid> <replica_type>
master_addresses:逗号分隔的master地址
tablet_id:tablet的定义
replica_uuid:新的replica的uuid
replica_type:replica类型,VOTER或者NON-VOTER
change_replica_type:改变已经存在的tablet副本的类型
kudu tablet change_config change_replica_type <master_addresses> <tablet_id> <replica_uuid> <replica_type>
master_addresses:逗号分隔的master地址
tablet_id:tablet的定义
replica_uuid:新的replica的uuid
replica_type:replica类型,VOTER或者NON-VOTER
remove_replica:删除一个存在的tablet副本
kudu tablet change_config remove_replica <master_addresses> <tablet_id> <replica_uuid>
master_addresses:逗号分隔的master地址
tablet_id:tablet的定义
replica_uuid:新的replica的uuid
tserver
set_flag:改变kudu tablet server的gflag值
kudu tserver set_flag <tserver_address> <flag> <value> [-force]
tserver_addresses:tserver地址
flag:gflag的名称
value:gflag的值
force:如果为true,则允许set_flag命令设置未显式标记为运行时可设置的标志。 这样的标志更改可能会在服务器上被忽略,或者可能导致服务器崩溃。
status:查看kudu tablet server的状态
kudu tserver status <tserver_address>
tserver_addresses:tserver地址
timestamp:获取kudu tablet server的当前timestamp
kudu tserver timestamp <tserver_address>
tserver_addresses:tserver地址
wal
dump:dump出WAL文件
kudu wal dump <path> [-print_entries=<entries>] [-noprint_meta] [-truncate_data=<data>]
path:WAL文件路径
print_entries:如何打印条目:false | 0 | no =不打印true | 1 |是| decode =打印它们解码pb =打印raw protobuf id =仅打印其ID
print_meta:打印元数据信息
truncate_data:在打印之前将数据字段截断到给定的字节数
test
loadgen:运行负载生成测试
kudu test loadgen <master_addresses> [-buffer_flush_watermark_pct=<pct>] [-buffer_size_bytes=<bytes>] [-buffers_num=<num>] [-flush_per_n_rows=<rows>] [-keep_auto_table] [-num_rows_per_thread=<thread>] [-num_threads=<threads>] [-run_scan] [-seq_start=<start>] [-show_first_n_errors=<errors>] [-string_fixed=<fixed>] [-string_len=<len>] [-table_name=<name>] [-table_num_buckets=<buckets>] [-table_num_replicas=<replicas>] [-use_random]