// @Ignore @Test public void testSingleRollingFileFailedWrite() { prepareTest(); SingleHDFSExactlyOnceWriter writer = new SingleHDFSExactlyOnceWriter(); writer.setAppend(true); testSingleRollingFileFailedWriteHelper(writer, ProcessingMode.EXACTLY_ONCE); // Rolling file 0 String singleFileName = testMeta.getDir() + File.separator + SINGLE_FILE; String correctContents = "0\n" + "1\n" + "2\n"; checkOutput(0, singleFileName, correctContents); // Rolling file 1 correctContents = "3\n" + "4\n" + "5\n"; checkOutput(1, singleFileName, correctContents); // Rolling file 2 correctContents = "6\n" + "7\n" + "8\n"; checkOutput(2, singleFileName, correctContents); }
// @Ignore @Test public void testSingleRollingFileCompletedWriteOverwriteInitial() { prepareTest(); populateFile(SINGLE_FILE + ".0", "0\n" + "1\n" + "2\n"); populateFile(SINGLE_FILE + ".1", "0\n" + "1\n" + "2\n"); populateFile(SINGLE_FILE + ".2", "0\n" + "1\n" + "2\n"); SingleHDFSExactlyOnceWriter writer = new SingleHDFSExactlyOnceWriter(); writer.setAppend(false); testSingleRollingFileCompletedWriteHelper(writer, ProcessingMode.EXACTLY_ONCE); // Rolling file 0 String singleFileName = testMeta.getDir() + File.separator + SINGLE_FILE; String correctContents = "0\n" + "1\n" + "2\n"; checkOutput(0, singleFileName, correctContents); // Rolling file 1 correctContents = "3\n" + "4\n" + "5\n"; checkOutput(1, singleFileName, correctContents); }
// @Ignore @Test public void testSingleFileFailedWriteOverwrite() { prepareTest(); SingleHDFSExactlyOnceWriter writer = new SingleHDFSExactlyOnceWriter(); writer.setAppend(false); testSingleFileFailedWriteHelper(writer, ProcessingMode.EXACTLY_ONCE); String singleFileName = testMeta.getDir() + File.separator + SINGLE_FILE; String correctContents = "0\n" + "1\n" + "4\n" + "5\n" + "6\n" + "7\n"; checkOutput(-1, singleFileName, correctContents); }
// @Ignore @Test public void testSingleFileCompletedWriteInitial() { prepareTest(); populateFile(SINGLE_FILE, "0\n" + "1\n" + "2\n"); SingleHDFSExactlyOnceWriter writer = new SingleHDFSExactlyOnceWriter(); writer.setAppend(true); testSingleFileCompletedWriteHelper(writer, ProcessingMode.EXACTLY_ONCE); String singleFileName = testMeta.getDir() + File.separator + SINGLE_FILE; String correctContents = "0\n" + "1\n" + "2\n" + "0\n" + "1\n" + "2\n" + "3\n"; checkOutput(-1, singleFileName, correctContents); }
// @Ignore @Test public void singleFileMultiRollingFailureOverwrite() { prepareTest(); SingleHDFSExactlyOnceWriter writer = new SingleHDFSExactlyOnceWriter(); File meta = new File(testMeta.getDir()); writer.setFilePath(meta.getAbsolutePath()); writer.setAppend(false); writer.setMaxLength(4); singleFileMultiRollingFailureHelper(writer, ProcessingMode.EXACTLY_ONCE); String singleFilePath = testMeta.getDir() + File.separator + SINGLE_FILE; // Rolling file 0 String correctContents = "0\n" + "1\n" + "2\n"; checkOutput(0, singleFilePath, correctContents); // Rolling file 1 correctContents = "3\n" + "4\n" + "0\n"; checkOutput(1, singleFilePath, correctContents); // Rolling file 2 correctContents = "1\n" + "2\n" + "3\n"; checkOutput(2, singleFilePath, correctContents); // Rolling file 2 correctContents = "4\n" + "5\n"; checkOutput(3, singleFilePath, correctContents); }
private void testSingleFileCompletedWriteHelper( SingleHDFSExactlyOnceWriter writer, ProcessingMode mode) { writer.setFilePath(testMeta.getDir()); writer.setup(new DummyContext(0, mode)); writer.beginWindow(0); writer.input.put(0); writer.input.put(1); writer.endWindow(); writer.beginWindow(1); writer.input.put(2); writer.input.put(3); writer.endWindow(); writer.teardown(); }
private void testSingleFileFailedWriteHelper( SingleHDFSExactlyOnceWriter writer, ProcessingMode mode) { File meta = new File(testMeta.getDir()); writer.setFilePath(meta.getAbsolutePath()); writer.setup(new DummyContext(0, mode)); writer.beginWindow(0); writer.input.put(0); writer.input.put(1); writer.endWindow(); CheckPointWriter checkPointWriter = checkpoint(writer); writer.beginWindow(1); writer.input.put(2); writer.teardown(); restoreCheckPoint(checkPointWriter, writer); writer.setup(new DummyContext(0, mode)); writer.beginWindow(1); writer.input.put(4); writer.input.put(5); writer.endWindow(); writer.beginWindow(2); writer.input.put(6); writer.input.put(7); writer.endWindow(); writer.teardown(); }
private void singleFileMultiRollingFailureHelper( SingleHDFSExactlyOnceWriter writer, ProcessingMode mode) { writer.setup(new DummyContext(0, mode)); writer.beginWindow(0); writer.input.put(0); writer.input.put(1); writer.input.put(2); writer.endWindow(); writer.beginWindow(1); writer.input.put(3); writer.input.put(4); CheckPointWriter checkPointWriter = checkpoint(writer); writer.input.put(3); writer.input.put(4); writer.input.put(5); writer.endWindow(); writer.beginWindow(2); writer.input.put(6); writer.input.put(7); writer.input.put(8); writer.endWindow(); writer.teardown(); restoreCheckPoint(checkPointWriter, writer); writer.setup(new DummyContext(0, mode)); writer.beginWindow(1); writer.input.put(0); writer.input.put(1); writer.input.put(2); writer.endWindow(); writer.beginWindow(2); writer.input.put(3); writer.input.put(4); writer.input.put(5); writer.endWindow(); }
// @Ignore @Test public void testSingleRollingFileFailedWrite1() { prepareTest(); SingleHDFSExactlyOnceWriter writer = new SingleHDFSExactlyOnceWriter(); writer.setAppend(true); writer.setFilePath(testMeta.getDir()); writer.setMaxLength(4); writer.setup(new DummyContext(0, ProcessingMode.EXACTLY_ONCE)); writer.beginWindow(0); writer.input.put(0); writer.input.put(1); writer.input.put(2); writer.endWindow(); writer.beginWindow(1); writer.input.put(3); writer.input.put(4); writer.endWindow(); CheckPointWriter checkPointWriter = checkpoint(writer); CheckPointWriter checkPointWriter1 = checkpoint(writer); LOG.debug("Checkpoint endOffsets={}", checkPointWriter.endOffsets); writer.beginWindow(2); writer.input.put(5); writer.teardown(); restoreCheckPoint(checkPointWriter, writer); LOG.debug("Checkpoint endOffsets={}", checkPointWriter.endOffsets); writer.setup(new DummyContext(0, ProcessingMode.EXACTLY_ONCE)); writer.beginWindow(2); writer.input.put(5); writer.endWindow(); writer.beginWindow(3); writer.input.put(6); writer.input.put(7); writer.input.put(8); writer.endWindow(); writer.teardown(); restoreCheckPoint(checkPointWriter1, writer); writer.setup(new DummyContext(0, ProcessingMode.EXACTLY_ONCE)); String singleFilePath = testMeta.getDir() + File.separator + SINGLE_FILE; // Rolling file 0 String correctContents = "0\n" + "1\n" + "2\n"; checkOutput(0, singleFilePath, correctContents); // Rolling file 1 correctContents = "3\n" + "4\n"; checkOutput(1, singleFilePath, correctContents); }
private void testSingleRollingFileFailedWriteOverwriteHelper( SingleHDFSExactlyOnceWriter writer, ProcessingMode mode) { writer.setMaxLength(4); writer.setFilePath(testMeta.getDir()); writer.setup(new DummyContext(0, mode)); writer.beginWindow(0); writer.input.put(0); writer.input.put(1); writer.input.put(2); writer.endWindow(); writer.beginWindow(1); writer.input.put(3); writer.input.put(4); CheckPointWriter checkPointWriter = checkpoint(writer); writer.teardown(); restoreCheckPoint(checkPointWriter, writer); writer.setup(new DummyContext(0, mode)); writer.beginWindow(1); writer.input.put(3); writer.endWindow(); writer.beginWindow(2); writer.input.put(6); writer.input.put(7); writer.input.put(8); writer.endWindow(); writer.teardown(); }