【问题标题】:Flume - Stream log file from Windows to HDFS in LinuxFlume - 在 Linux 中将日志文件从 Windows 流式传输到 HDFS
【发布时间】:2015-04-22 17:53:41
【问题描述】:

如何在 Linux 中将日志文件从 Windows 7 流式传输到 HDFS?

Windows 中的 Flume 报错

我在 Windows 7 (Node 1) 上安装了“flume-node-0.9.3”。 'flumenode' 服务正在运行并且可以访问 localhost:35862。
在 Windows 中,日志文件位于“C:/logs/Weblogic.log”
CentOS Linux (Node 2) 中的 Flume 代理也在运行。

  1. 在 Windows 机器中,JAVA_HOME 变量设置为“C:\Program Files\Java\jre7”
  2. Java.exe 文件位于“C:\Program Files\Java\jre7\bin\java.exe”
  3. Flume 节点安装在“C:\Program Files\Cloudera\Flume 0.9.3”

这是 flume-src.conf 文件,位于 Windows 7(节点 1)上 Flume 的“conf”文件夹中

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

我尝试通过在 Flume 文件夹中执行以下命令来运行上述文件:

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

这是在 CentOS(节点 2)中运行的 trg-node.conf 文件。 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

【问题讨论】:

    标签: linux windows flume flume-ng


    【解决方案1】:

    问题是由于此路径中 Program 和 Files 之间的空白:

    C:**Program Files**\Cloudera\Flume 0.9.3

    考虑将 Flume 安装在没有空格的路径中,它会像一个魅力一样工作。

    【讨论】:

    • 进行了必要的更改。 Flume 安装在“C:\Cloudera\Flume”。现在我收到消息“错误:无法找到或加载主类 org.apache.flume.node.application”。可能是什么原因?
    • 您的类路径 -cp "C:\Program Files\Cloudera\Flume 0.9.3\lib* 不正确。尝试明确列出所有相关的 jar。
    猜你喜欢
    • 2013-05-17
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多