/**
* Licensed to Cloudera, Inc. under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. Cloudera, Inc. licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.cloudera.flume.handlers.debug;
import java.io.IOException;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import com.cloudera.flume.conf.FlumeConfiguration;
import com.cloudera.flume.core.EventSource;
import com.cloudera.flume.core.EventUtil;
import com.cloudera.flume.handlers.thrift.ThriftEventSink;
import com.cloudera.util.Benchmark;
/**
* This is a simple program that takes a list of textfiles and shoots if off to
* a collector host/port
*
* This does benchmark info
* @deprecated
*/
public class TextToCollector {
static void core(CommandLine cmd) throws IOException {
String[] argv = cmd.getArgs();
Benchmark b = new Benchmark();
b.mark("init");
FlumeConfiguration conf = FlumeConfiguration.get();
ThriftEventSink tes = new ThriftEventSink(conf.getCollectorHost(), conf
.getCollectorPort(), false);
tes.open();
MemorySinkSource mem = cmd.hasOption("m") ? new MemorySinkSource() : null;
for (String f : argv) {
EventSource src = null;
if (cmd.hasOption("l")) {
b.mark("log4jtext");
src = new Log4jTextFileSource(f);
} else if (cmd.hasOption("t")) {
b.mark("random access text");
src = new TextFileSource(f);
} else {
b.mark("buffered reader text");
src = new TextReaderSource(f);
}
src.open();
b.mark("fileread");
if (mem != null) {
EventUtil.dumpAll(src, mem);
} else {
EventUtil.dumpAll(src, tes);
}
src.close();
}
b.mark("memdump");
if (mem != null) {
EventUtil.dumpAll(mem, tes);
}
b.mark("done");
b.done();
tes.close();
}
static public void main(String[] argv) throws IOException {
Options opts = new Options();
opts.addOption("m", false, "Load events into memory");
opts.addOption("t", false, "Simple text file format loader");
opts.addOption("l", false, "Log4j text file format loader");
try {
if (argv.length < 1) {
HelpFormatter fmt = new HelpFormatter();
fmt.printHelp("TextToCollector", opts, true);
System.exit(-1);
}
CommandLineParser parser = new PosixParser();
CommandLine cmd = parser.parse(opts, argv);
core(cmd);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}