/// <summary>Process an edit log using the chosen processor or visitor.</summary> /// <param name="inputFilename">The file to process</param> /// <param name="outputFilename">The output file name</param> /// <param name="processor">If visitor is null, the processor to use</param> /// <param name="visitor">If non-null, the visitor to use.</param> /// <returns>0 on success; error code otherwise</returns> public virtual int Go(string inputFileName, string outputFileName, string processor , OfflineEditsViewer.Flags flags, OfflineEditsVisitor visitor) { if (flags.GetPrintToScreen()) { System.Console.Out.WriteLine("input [" + inputFileName + "]"); System.Console.Out.WriteLine("output [" + outputFileName + "]"); } try { if (visitor == null) { visitor = OfflineEditsVisitorFactory.GetEditsVisitor(outputFileName, processor, flags .GetPrintToScreen()); } bool xmlInput = inputFileName.EndsWith(".xml"); OfflineEditsLoader loader = OfflineEditsLoader.OfflineEditsLoaderFactory.CreateLoader (visitor, inputFileName, xmlInput, flags); loader.LoadEdits(); } catch (Exception e) { System.Console.Error.WriteLine("Encountered exception. Exiting: " + e.Message); Sharpen.Runtime.PrintStackTrace(e, System.Console.Error); return(-1); } return(0); }
/// <summary>Constructor</summary> public OfflineEditsBinaryLoader(OfflineEditsVisitor visitor, EditLogInputStream inputStream , OfflineEditsViewer.Flags flags) { this.visitor = visitor; this.inputStream = inputStream; this.fixTxIds = flags.GetFixTxIds(); this.recoveryMode = flags.GetRecoveryMode(); this.nextTxId = -1; }
/// <summary>Main entry point for ToolRunner (see ToolRunner docs)</summary> /// <param name="argv">The parameters passed to this program.</param> /// <returns>0 on success, non zero on error.</returns> /// <exception cref="System.Exception"/> public virtual int Run(string[] argv) { Options options = BuildOptions(); if (argv.Length == 0) { PrintHelp(); return(-1); } CommandLineParser parser = new PosixParser(); CommandLine cmd; try { cmd = parser.Parse(options, argv); } catch (ParseException e) { System.Console.Out.WriteLine("Error parsing command-line options: " + e.Message); PrintHelp(); return(-1); } if (cmd.HasOption("h")) { // print help and exit PrintHelp(); return(-1); } string inputFileName = cmd.GetOptionValue("i"); string outputFileName = cmd.GetOptionValue("o"); string processor = cmd.GetOptionValue("p"); if (processor == null) { processor = defaultProcessor; } OfflineEditsViewer.Flags flags = new OfflineEditsViewer.Flags(); if (cmd.HasOption("r")) { flags.SetRecoveryMode(); } if (cmd.HasOption("f")) { flags.SetFixTxIds(); } if (cmd.HasOption("v")) { flags.SetPrintToScreen(); } return(Go(inputFileName, outputFileName, processor, flags, null)); }
/// <summary>Run OfflineEditsViewer</summary> /// <param name="inFilename">input edits filename</param> /// <param name="outFilename">oputput edits filename</param> /// <exception cref="System.IO.IOException"/> private int RunOev(string inFilename, string outFilename, string processor, bool recovery) { Log.Info("Running oev [" + inFilename + "] [" + outFilename + "]"); Org.Apache.Hadoop.Hdfs.Tools.OfflineEditsViewer.OfflineEditsViewer oev = new Org.Apache.Hadoop.Hdfs.Tools.OfflineEditsViewer.OfflineEditsViewer (); OfflineEditsViewer.Flags flags = new OfflineEditsViewer.Flags(); flags.SetPrintToScreen(); if (recovery) { flags.SetRecoveryMode(); } return(oev.Go(inFilename, outFilename, processor, flags, null)); }
/// <exception cref="System.IO.IOException"/> internal static OfflineEditsLoader CreateLoader(OfflineEditsVisitor visitor, string inputFileName, bool xmlInput, OfflineEditsViewer.Flags flags) { if (xmlInput) { return(new OfflineEditsXmlLoader(visitor, new FilePath(inputFileName), flags)); } else { FilePath file = null; EditLogInputStream elis = null; OfflineEditsLoader loader = null; try { file = new FilePath(inputFileName); elis = new EditLogFileInputStream(file, HdfsConstants.InvalidTxid, HdfsConstants. InvalidTxid, false); loader = new OfflineEditsBinaryLoader(visitor, elis, flags); } finally { if ((loader == null) && (elis != null)) { elis.Close(); } } return(loader); } }
/// <exception cref="System.IO.FileNotFoundException"/> public OfflineEditsXmlLoader(OfflineEditsVisitor visitor, FilePath inputFile, OfflineEditsViewer.Flags flags) { this.visitor = visitor; this.fileReader = new InputStreamReader(new FileInputStream(inputFile), Charsets. Utf8); this.fixTxIds = flags.GetFixTxIds(); }