flume安裝和使用


環境

Centos7+jdk11+flume1.9+telnet客戶端

注:最新版flume1.8需要jdk1.8及以上支持


安裝

jdk的安裝不多贅述,flume1.9的安裝。

進入官網:http://www.apache.org/dyn/closer.lua/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz

然後找到1.9版本下載放到centos系統解壓即可


使用


1.在apache-flume-1.9.0-bin\conf目錄下創建一個example.conf配置文件

然後把官文檔中的案例內容複製到example.conf文件中,如下內容:

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

2.進入到解壓flume目錄中執行命令

文檔中的執行命令如下:

[root@mini3 apache-flume-1.9.0-bin]# bin/flume-ng agent --conf conf --conf-file conf/example.conf –name a1 -Dflume.root.logger=INFO,console

參數的簡要說明:指明conf文件路徑、指明conf文件、指定agent、指明log打印信息級別和位置

更加詳細的參數說明可查看文檔中的介紹

執行效果:

Info: Including Hive libraries found via () for Hive access
  • exec /usr/local/jdk1.7.0_65/bin/java -Xmx20m -Dflume.root.logger=INFO,console -cp ‘/usr/local/apache-flume-1.7.0-bin/conf:/usr/local/apache-flume-1.7.0-bin/lib/:/lib/ -Djava.library.path= org.apache.flume.node.Application --conf-file example.conf –name a1
    2018-01-31 18:14:04,361 (main) [ERROR - org.apache.flume.node.Application.main(Application.java:348)] A fatal error occurred while running. Exception follows.
    org.apache.commons.cli.ParseException: The specified configuration file does not exist: /usr/local/apache-flume-1.9.0-bin/example.conf
    at org.apache.flume.node.Application.main(Application.java:316)
    [root@mini3 apache-flume-1.9.0-bin]# bin/flume-ng agent --conf conf --conf-file conf/example.conf –name a1 -Dflume.root.logger=INFO,console
    Info: Including Hive libraries found via () for Hive access
  • exec /usr/local/jdk1.11.0_65/bin/java -Xmx20m -Dflume.root.logger=INFO,console -cp ‘/usr/local/apache-flume-1.9.0-bin/conf:/usr/local/apache-flume-1.9.0-bin/lib/:/lib/ -Djava.library.path= org.apache.flume.node.Application --conf-file conf/example.conf –name a1
    2018-01-31 18:14:45,241 (lifecycleSupervisor-1-0) [INFO - org.apache.flume.node.PollingPropertiesFileConfigurationProvider.start(PollingPropertiesFileConfigurationProvider.java:62)] Configuration provider starting
    2018-01-31 18:14:45,247 (conf-file-poller-0) [INFO - org.apache.flume.node.PollingPropertiesFileConfigurationProviderFileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:<spanclass="hljsnumber">134</span>)]Reloadingconfiguration<spanclass="hljskeyword">file</span>:conf/example.conf<spanclass="hljsnumber">2018</span><spanclass="hljsnumber">01</span><spanclass="hljsnumber">31</span><spanclass="hljsnumber">18</span>:<spanclass="hljsnumber">14</span>:<spanclass="hljsnumber">45</span>,<spanclass="hljsnumber">254</span>(conf<spanclass="hljskeyword">file</span>poller<spanclass="hljsnumber">0</span>)[INFOorg.apache.flume.conf.FlumeConfigurationFileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:<span class="hljs-number">134</span>)] Reloading configuration <span class="hljs-keyword">file</span>:conf/example.conf <span class="hljs-number">2018</span>-<span class="hljs-number">01</span>-<span class="hljs-number">31</span> <span class="hljs-number">18</span>:<span class="hljs-number">14</span>:<span class="hljs-number">45</span>,<span class="hljs-number">254</span> (conf-<span class="hljs-keyword">file</span>-poller-<span class="hljs-number">0</span>) [INFO - org.apache.flume.conf.FlumeConfigurationAgentConfiguration.addProperty(FlumeConfiguration.java:930)] Added sinks: k1 Agent: a1
    2018-01-31 18:14:45,254 (conf-file-poller-0) [INFO - org.apache.flume.conf.FlumeConfigurationAgentConfiguration.addProperty(FlumeConfiguration.java:<spanclass="hljsnumber">1016</span>)]Processing:k1<spanclass="hljsnumber">2018</span><spanclass="hljsnumber">01</span><spanclass="hljsnumber">31</span><spanclass="hljsnumber">18</span>:<spanclass="hljsnumber">14</span>:<spanclass="hljsnumber">45</span>,<spanclass="hljsnumber">254</span>(conf<spanclass="hljskeyword">file</span>poller<spanclass="hljsnumber">0</span>)[INFOorg.apache.flume.conf.FlumeConfigurationAgentConfiguration.addProperty(FlumeConfiguration.java:<span class="hljs-number">1016</span>)] Processing:k1 <span class="hljs-number">2018</span>-<span class="hljs-number">01</span>-<span class="hljs-number">31</span> <span class="hljs-number">18</span>:<span class="hljs-number">14</span>:<span class="hljs-number">45</span>,<span class="hljs-number">254</span> (conf-<span class="hljs-keyword">file</span>-poller-<span class="hljs-number">0</span>) [INFO - org.apache.flume.conf.FlumeConfigurationAgentConfiguration.addProperty(FlumeConfiguration.java:1016)] Processing:k1
    2018-01-31 18:14:45,254 (conf-file-poller-0) [WARN - org.apache.flume.conf.FlumeConfigurationKaTeX parse error: Expected 'EOF', got '&' at position 555: …eConfiguration.&̲lt;init&gt;(Flu…AgentConfiguration.isValid(FlumeConfiguration.java:320)] Agent configuration for ‘mple’ does not contain any channels. Marking it as invalid.
    2018-01-31 18:14:45,255 (conf-file-poller-0) [WARN - org.apache.flume.conf.FlumeConfiguration.validateConfiguration(FlumeConfiguration.java:127)] Agent configuration invalid for agent ‘mple’. It will be removed.
    2018-01-31 18:14:45,271 (conf-file-poller-0) [INFO - org.apache.flume.conf.FlumeConfiguration.validateConfiguration(FlumeConfiguration.java:140)] Post-validation flume configuration contains configuration for agents: [a1]
    2018-01-31 18:14:45,316 (conf-file-poller-0) [INFO - org.apache.flume.node.AbstractConfigurationProvider.loadChannels(AbstractConfigurationProvider.java:147)] Creating channels
    2018-01-31 18:14:45,322 (conf-file-poller-0) [INFO - org.apache.flume.channel.DefaultChannelFactory.create(DefaultChannelFactory.java:42)] Creating instance of channel c1 type memory
    2018-01-31 18:14:45,329 (conf-file-poller-0) [INFO - org.apache.flume.node.AbstractConfigurationProvider.loadChannels(AbstractConfigurationProvider.java:201)] Created channel c1
    2018-01-31 18:14:45,329 (conf-file-poller-0) [INFO - org.apache.flume.source.DefaultSourceFactory.create(DefaultSourceFactory.java:41)] Creating instance of source r1, type netcat
    2018-01-31 18:14:45,337 (conf-file-poller-0) [INFO - org.apache.flume.sink.DefaultSinkFactory.create(DefaultSinkFactory.java:42)] Creating instance of sink: k1, type: logger
    2018-01-31 18:14:45,345 (conf-file-poller-0) [INFO - org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:116)] Channel c1 connected to [r1, k1]
    2018-01-31 18:14:45,354 (conf-file-poller-0) [INFO - org.apache.flume.node.Application.startAllComponents(Application.java:137)] Starting new configuration:{ sourceRunners:{r1=EventDrivenSourceRunner: { source:org.apache.flume.source.NetcatSource{name:r1,state:IDLE} }} sinkRunners:{k1=SinkRunner: { policy:org.apache.flume.sink.DefaultSinkProcessor@12bd971 counterGroup:{ name:null counters:{} } }} channels:{c1=org.apache.flume.channel.MemoryChannel{name: c1}} }
    2018-01-31 18:14:45,365 (conf-file-poller-0) [INFO - org.apache.flume.node.Application.startAllComponents(Application.java:144)] Starting Channel c1
    2018-01-31 18:14:45,368 (conf-file-poller-0) [INFO - org.apache.flume.node.Application.startAllComponents(Application.java:159)] Waiting for channel: c1 to start. Sleeping for 500 ms
    2018-01-31 18:14:45,467 (lifecycleSupervisor-1-0) [INFO - org.apache.flume.instrumentation.MonitoredCounterGroup.register(MonitoredCounterGroup.java:119)] Monitored counter group for type: CHANNEL, name: c1: Successfully registered new MBean.
    2018-01-31 18:14:45,468 (lifecycleSupervisor-1-0) [INFO - org.apache.flume.instrumentation.MonitoredCounterGroup.start(MonitoredCounterGroup.java:95)] Component type: CHANNEL, name: c1 started
    2018-01-31 18:14:45,869 (conf-file-poller-0) [INFO - org.apache.flume.node.Application.startAllComponents(Application.java:171)] Starting Sink k1
    2018-01-31 18:14:45,870 (conf-file-poller-0) [INFO - org.apache.flume.node.Application.startAllComponents(Application.java:182)] Starting Source r1
    2018-01-31 18:14:45,870 (lifecycleSupervisor-1-4) [INFO - org.apache.flume.source.NetcatSource.start(NetcatSource.java:155)] Source starting
    2018-01-31 18:14:45,894 (lifecycleSupervisor-1-4) [INFO - org.apache.flume.source.NetcatSource.start(NetcatSource.java:169)] Created serverSocket:sun.nio.ch.ServerSocketChannelImpl[/127.0.0.1:44444]

    如上打印日誌,啓動成功!

    3.通過telnet客戶端進行測試

    另開一個終端命令行:輸入命令

    telnet localhost 44444
    連接成功後即可進行模擬通信,即經過44444端口發送消息,讓flume監聽到。執行結果如下:


    flume後臺監聽打印:

    2018-01-31 18:15:48,913 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:95)] Event: { headers:{} body: 6E 69 68 61 6F 0D                               nihao. }


    注:如果不能使用telnet,通過yum安裝即可




發佈了24 篇原創文章 · 獲贊 4 · 訪問量 6368
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章