2015-04-22 3 views
0

Как передать файл журнала из Windows 7 в HDFS в Linux?Flume - файл журнала потока из Windows в HDFS в Linux

Flume в Windows, дает ошибке

Я установил 'водовод-узел-0.9.3' на Windows 7 (узел 1). Служба «flumenode» запущена, а localhost: 35862 доступен.
В Windows файл журнала находится в 'C: /logs/Weblogic.log'
Также работает Flume agent в CentOS Linux (Node 2).

  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"

Вот желобе-src.conf файл, размещаемый внутри 'конф' папку Flume на Windows 7 (Узел 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 \ Flume 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 *. Не пытайтесь перечислить все соответствующие банки. –