flume提供了flume shell方式来管理,非常强大。
1. 连接
可以使用 “flume shell”进入flume命令行环境,“connect”命令可以用来连接任何的flume的master服务器。
[root@test01] ~
0 $ flume shell
[flume (disconnected)] connect test01.linuxjcq.com:35873
Using default report port: 45678
Connecting to Flume master test01.linuxjcq.com:35873:45678...
2012-01-12 15:00:43,037 [main] INFO util.AdminRPCThrift: Connected to master at
test01.linuxjcq.com:35873
[flume test01.linuxjcq.com:35873:45678]
连接master使用的端口号为flume.config.admin.port,默认值为35873
Flume shell的命令行参数如下:
usage: FlumeShell [-?] [-c
-? Command line usage
-c
-e
-q Run in quiet mode - only print command results
-s
-c:使用命令行直接连接master:adminport:report
-e:执行后面跟的单个命令
-q:以静默方式运行,仅打印命令的结果
-s:执行flume shell脚本
2. Flume 命令
flume命令支持tab自动扩展。
help:获取帮助
connect master:port:连接master
config logicalnode source sink:为逻辑节点配置一个source到sink的映射
getnodestatus:获得节点的状态,有HELLO,CONFIGURING,ACTIVE,IDLE,ERROR,DECOMMISIONED或LOST状态。node启动时,HELLO;node被配置后,CONFIGURING;一个event从source送到sink,ACTIVE;source中所有的event发送完毕后,IDLE;node故障退出,数据没有flush,ERROR;node被master移除,DECOMMISSIONED;master长时间未收到node心跳,LOST;
getconfigs:获得配置信息
getmappings [physical node]:显示所有的logical node到physical node的映射关系,如果指定physical node,则显示指定节点的信息
exec:同步执行命令
source file:执行脚本
submit:异步执行命令
wait ms [cmdid]:设置一个时间,周期性检查命令进行的状态(success or failur)
waitForNodesActive ms node1 [node2 [...]]:设置一个时间,检查node是否处于使用(CONFIGURING,ACTIVE)状态
waitForNodesDone ms node [node2 [...]]:设置一个时间,检查node是否处于未用(IDLE,ERROR,LOST)状态
quit:退出
3. 执行和提交命令
格式为:
exec command [arg1 [_arg2 [ ... ] ] ]
submit command [arg1 [_arg2 [...] ] ]
复杂的参数形式,像多个空格,非字符字母可以使用单引号和双引号。
双引号:包含转义字符的java string
单引号:能包含除单引号之外的所有字符
noop:连接master,执行空操作
config logicalnode source sink:为logical node配置source到sink的映射
multiconfig flumespec:按指定的格式对多个node进行配置
unconfig logicalnode:取消logical node的配置
refresh logicalnode:刷新逻辑节点的配置,强制逻辑节点重启。影响master调整故障转移列表(failover list)
refreshAll logicalnode:刷新
save filename:保存当前配置到文件
load filename:从master中载入filename文件的配置
map physicalnode logicalnode:创建physical node到logical node的映射,master配置将会被同步到逻辑节点
spawn physicalnode logicalnode:这个接口已经淘汰
decommission logicalnode:从配置文件中移除这个逻辑节点,并取消到对应物理节点的映射
unmap physicalnode logicalnode:取消logical node和physical node的映射
unmapALL:取消全部物理节点和逻辑节点间的映射
purge logicalnode:清除状态,类似于重启一个logical node。对于移除DECOMMISSIONED或者LOST node非常有用
purgeAll:清除所有logical node的状态