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 <arg>] [-e <arg>] [-q] [-s <arg>]
 -?         Command line usage
 -c <arg>   Connect to master:adminport:reportport
 -e <arg>   Run a single command
 -q         Run in quiet mode - only print command results
 -s <arg>   Run a FlumeShell script

-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的状态