Package com.cloudera.flume.handlers.debug

Source Code of com.cloudera.flume.handlers.debug.TextToCollector

/**
* 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();
    }

  }
}
TOP

Related Classes of com.cloudera.flume.handlers.debug.TextToCollector

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.