2015-04-22 47 views
0

如何在Linux中將日誌文件從Windows 7流式傳輸到HDFS?Flume - 從Windows的流日誌文件到Linux中的HDFS

水槽在Windows是給錯誤

我已經安裝 '水槽節點-0.9.3' Windows 7上(節點1)。 'flumenode'服務正在運行,localhost:35862可以訪問。
在Windows中,日誌文件位於'C:/logs/Weblogic.log'
CentOS Linux(節點2)中的Flume代理程序也在運行。

  1. 在Windows機器上,JAVA_HOME變量設置爲 「C:\ Program Files文件\的Java \ jre7」
  2. 的JAVA.EXE文件位於「C:\ Program Files文件\的Java \ jre7 \ BIN \ java.exe的」
  3. 水槽節點安裝在 「C:\ Program Files文件\ Cloudera的\水槽0.9.3」

這裏是水槽,src.conf文件放置 '的conf' 文件夾中Windows 7上的Flume(節點1)

source_agent.sources = weblogic_server 
source_agent.sources.weblogic_server.type = exec 
source_agent.sources.weblogic_server.command = tail -f C:/logs/Weblogic.log 
source_agent.sources.weblogic_server.batchSize = 1 
source_agent.sources.weblogic_server.channels = memoryChannel 
source_agent.sources.weblogic_server.interceptors = itime ihost itype 

source_agent.sources.weblogic_server.interceptors.itime.type = timestamp 

source_agent.sources.weblogic_server.interceptors.ihost.type = host 
source_agent.sources.weblogic_server.interceptors.ihost.useIP = false 
source_agent.sources.weblogic_server.interceptors.ihost.hostHeader = host 

source_agent.sources.weblogic_server.interceptors.itype.type = static 
source_agent.sources.weblogic_server.interceptors.itype.key = log_type 
source_agent.sources.weblogic_server.interceptors.itype.value = apache_access_combined 

source_agent.channels = memoryChannel 
source_agent.channels.memoryChannel.type = memory 
source_agent.channels.memoryChannel.capacity = 100 

source_agent.sinks = avro_sink 
source_agent.sinks.avro_sink.type = avro 
source_agent.sinks.avro_sink.channel = memoryChannel 
source_agent.sinks.avro_sink.hostname = 10.10.201.40 

source_agent.sinks.avro_sink.port = 41414 

我試圖通過執行水槽文件夾內的以下命令來運行上述文件:

C:\Program Files\Cloudera\Flume 0.9.3>"C:\Program Files\Java\jre7\bin\java.exe" 
-Xmx20m -Dlog4j.configuration=file:///%CD%\conf\log4j.properties -cp "C:\Program Files\Cloudera\Flume 0.9.3\lib*" org.apache.flume.node.Application 
-f C:\Program Files\Cloudera\Flume 0.9.3\conf\flume-src.conf -n source_agent 

但它提供了以下信息:

Error: Could not find or load main class Files\Cloudera\Flume 

這裏是trg-node.conf在CentOS(節點2)中運行的文件。 CentOS的節點是工作的罰款:

collector.sources = AvroIn 
collector.sources.AvroIn.type = avro 
collector.sources.AvroIn.bind = 0.0.0.0 
collector.sources.AvroIn.port = 41414 
collector.sources.AvroIn.channels = mc1 mc2 

collector.channels = mc1 mc2 
collector.channels.mc1.type = memory 
collector.channels.mc1.capacity = 100 
collector.channels.mc2.type = memory 
collector.channels.mc2.capacity = 100 

collector.sinks = HadoopOut 
collector.sinks.HadoopOut.type = hdfs 
collector.sinks.HadoopOut.channel = mc2 
collector.sinks.HadoopOut.hdfs.path =/user/root 
collector.sinks.HadoopOut.hdfs.callTimeout = 150000 
collector.sinks.HadoopOut.hdfs.fileType = DataStream 
collector.sinks.HadoopOut.hdfs.writeFormat = Text 
collector.sinks.HadoopOut.hdfs.rollSize = 0 
collector.sinks.HadoopOut.hdfs.rollCount = 10000 
collector.sinks.HadoopOut.hdfs.rollInterval = 600 

回答

2

的問題是由於在該路徑程序和文件之間的空格:

C:** Program Files文件** \ Cloudera的\水槽0.9.3

考慮在沒有空格的路徑中安裝Flume,它將像魅力一樣工作。

+0

進行了必要的更改。 Flume安裝在「C:\ Cloudera \ Flume」上。現在我收到消息「錯誤:無法找到或加載主類org.apache.flume.node.application」。可能是什麼原因 ? – User456898

+0

您的classpath -cp「C:\ Program Files \ Cloudera \ Flume 0.9.3 \ lib *」不正確,請嘗試顯式列出所有相關的jar。 –

相關問題