在shell / bash脚本中配置flume - 避免使用交互式flume shell控制台

时间:2012-06-01 13:13:06

标签: bash shell scripting flume

配置水槽的正常方法是通过flume主Web控制台,这里很容易讨论它。

OR

通过交互式水槽外壳控制台,请按照以下步骤操作:

1. $ flume shell   //this brings you to the interactive flume shell console
2. in the interactive console,connect flume-master-node   // this connects you to flume-master
3. in the interactive console, run "exec unconfig your_node"  // this unconfig all flume configuration 
4. in the interactive console, run "exec config your_node new_config"    // apply new flume configuration
5. quit  // exit the the interactive console

到目前为止一切顺利。

然后我正在尝试为我的水槽配置编写一个bash脚本。 所以我想将1,2,3,4,5压缩成一个bash,它每次都会自动运行而不需要干预,如下所示:

/usr/bin/flume shell << EOF         #line1
connect $FLUME_MASTER               #line2

exec unconfig your_node             #line3
exec config your_node new_config    #line4

quit                                #line5

EOF                                 #line6

但每次我运行这个bash脚本时,它总是停在#line1 并带我进入交互式水槽外壳控制台,而不是在非迭代模式下运行它。

有人知道如何忽略交互模式并且只是轻松地运行它吗?

2 个答案:

答案 0 :(得分:1)

尝试-q的{​​{1}}选项,看看是否有帮助。

答案 1 :(得分:1)

以某种方式遵循了用户指南flume/UserGuide_using_the_flume_command_shell

echo "connect localhost:35873\ngetconfigs\nquit" | flume shell -q 

如果你把它放在一个bash脚本中,这不起作用。但是通过这样做我得到了它:

/usr/bin/flume shell -q << EOF 

connect localhost:35873

getconfigs

quit

EOF