use of org.apache.hadoop.fs.LocalFileSystem in project accumulo by apache.
the class RFileTest method testScannerTableProperties.
@Test
public void testScannerTableProperties() throws Exception {
NewTableConfiguration ntc = new NewTableConfiguration();
LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
String testFile = createTmpTestFile();
RFileWriter writer = RFile.newWriter().to(testFile).withFileSystem(localFs).build();
Key k1 = new Key("r1", "f1", "q1");
k1.setTimestamp(3);
Key k2 = new Key("r1", "f1", "q1");
k2.setTimestamp(6);
Value v1 = new Value("p".getBytes());
Value v2 = new Value("q".getBytes());
writer.append(k2, v2);
writer.append(k1, v1);
writer.close();
// pass in table config that has versioning iterator configured
Scanner scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).withTableProperties(ntc.getProperties()).build();
Assert.assertEquals(ImmutableMap.of(k2, v2), toMap(scanner));
scanner.close();
scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).build();
Assert.assertEquals(ImmutableMap.of(k2, v2, k1, v1), toMap(scanner));
scanner.close();
}
use of org.apache.hadoop.fs.LocalFileSystem in project accumulo by apache.
the class RFileTest method testNoSystemIters.
@Test
public void testNoSystemIters() throws Exception {
LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
String testFile = createTmpTestFile();
RFileWriter writer = RFile.newWriter().to(testFile).withFileSystem(localFs).build();
Key k1 = new Key("r1", "f1", "q1");
k1.setTimestamp(3);
Key k2 = new Key("r1", "f1", "q1");
k2.setTimestamp(6);
k2.setDeleted(true);
Value v1 = new Value("p".getBytes());
Value v2 = new Value("".getBytes());
writer.append(k2, v2);
writer.append(k1, v1);
writer.close();
Scanner scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).build();
Assert.assertFalse(scanner.iterator().hasNext());
scanner.close();
scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).withoutSystemIterators().build();
Assert.assertEquals(ImmutableMap.of(k2, v2, k1, v1), toMap(scanner));
scanner.setRange(new Range("r2"));
Assert.assertFalse(scanner.iterator().hasNext());
scanner.close();
}
use of org.apache.hadoop.fs.LocalFileSystem in project accumulo by apache.
the class RFileTest method testSummaries.
@Test
public void testSummaries() throws Exception {
SummarizerConfiguration sc1 = SummarizerConfiguration.builder(VisibilitySummarizer.class).build();
SummarizerConfiguration sc2 = SummarizerConfiguration.builder(FamilySummarizer.class).build();
LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
String testFile = createTmpTestFile();
SortedMap<Key, Value> testData1 = createTestData(0, 100, 0, 4, 1, "A&B", "A&B&C");
RFileWriter writer = RFile.newWriter().to(testFile).withFileSystem(localFs).withSummarizers(sc1, sc2).build();
writer.append(testData1.entrySet());
writer.close();
// verify summary data
Collection<Summary> summaries = RFile.summaries().from(testFile).withFileSystem(localFs).read();
Assert.assertEquals(2, summaries.size());
for (Summary summary : summaries) {
Assert.assertEquals(0, summary.getFileStatistics().getInaccurate());
Assert.assertEquals(1, summary.getFileStatistics().getTotal());
String className = summary.getSummarizerConfiguration().getClassName();
CounterSummary counterSummary = new CounterSummary(summary);
if (className.equals(FamilySummarizer.class.getName())) {
Map<String, Long> counters = counterSummary.getCounters();
Map<String, Long> expected = ImmutableMap.of("0000", 200l, "0001", 200l, "0002", 200l, "0003", 200l);
Assert.assertEquals(expected, counters);
} else if (className.equals(VisibilitySummarizer.class.getName())) {
Map<String, Long> counters = counterSummary.getCounters();
Map<String, Long> expected = ImmutableMap.of("A&B", 400l, "A&B&C", 400l);
Assert.assertEquals(expected, counters);
} else {
Assert.fail("Unexpected classname " + className);
}
}
// check if writing summary data impacted normal rfile functionality
Scanner scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).withAuthorizations(new Authorizations("A", "B", "C")).build();
Assert.assertEquals(testData1, toMap(scanner));
scanner.close();
String testFile2 = createTmpTestFile();
SortedMap<Key, Value> testData2 = createTestData(100, 100, 0, 4, 1, "A&B", "A&B&C");
writer = RFile.newWriter().to(testFile2).withFileSystem(localFs).withSummarizers(sc1, sc2).build();
writer.append(testData2.entrySet());
writer.close();
// verify reading summaries from multiple files works
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).read();
Assert.assertEquals(2, summaries.size());
for (Summary summary : summaries) {
Assert.assertEquals(0, summary.getFileStatistics().getInaccurate());
Assert.assertEquals(2, summary.getFileStatistics().getTotal());
String className = summary.getSummarizerConfiguration().getClassName();
CounterSummary counterSummary = new CounterSummary(summary);
if (className.equals(FamilySummarizer.class.getName())) {
Map<String, Long> counters = counterSummary.getCounters();
Map<String, Long> expected = ImmutableMap.of("0000", 400l, "0001", 400l, "0002", 400l, "0003", 400l);
Assert.assertEquals(expected, counters);
} else if (className.equals(VisibilitySummarizer.class.getName())) {
Map<String, Long> counters = counterSummary.getCounters();
Map<String, Long> expected = ImmutableMap.of("A&B", 800l, "A&B&C", 800l);
Assert.assertEquals(expected, counters);
} else {
Assert.fail("Unexpected classname " + className);
}
}
// verify reading a subset of summaries works
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 800l, "A&B&C", 800l), 0);
// the following test check boundry conditions for start row and end row
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).startRow(rowStr(99)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 400l, "A&B&C", 400l), 0);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).startRow(rowStr(98)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 800l, "A&B&C", 800l), 1);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).startRow(rowStr(0)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 800l, "A&B&C", 800l), 1);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).startRow("#").read();
checkSummaries(summaries, ImmutableMap.of("A&B", 800l, "A&B&C", 800l), 0);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).startRow(rowStr(100)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 400l, "A&B&C", 400l), 1);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).endRow(rowStr(99)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 400l, "A&B&C", 400l), 0);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).endRow(rowStr(100)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 800l, "A&B&C", 800l), 1);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).endRow(rowStr(199)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 800l, "A&B&C", 800l), 0);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).startRow(rowStr(50)).endRow(rowStr(150)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 800l, "A&B&C", 800l), 2);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).startRow(rowStr(120)).endRow(rowStr(150)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 400l, "A&B&C", 400l), 1);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).startRow(rowStr(50)).endRow(rowStr(199)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 800l, "A&B&C", 800l), 1);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).startRow("#").endRow(rowStr(150)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 800l, "A&B&C", 800l), 1);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).startRow(rowStr(199)).read();
checkSummaries(summaries, ImmutableMap.of(), 0);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).startRow(rowStr(200)).read();
checkSummaries(summaries, ImmutableMap.of(), 0);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).endRow("#").read();
checkSummaries(summaries, ImmutableMap.of(), 0);
summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).selectSummaries(sc -> sc.equals(sc1)).endRow(rowStr(0)).read();
checkSummaries(summaries, ImmutableMap.of("A&B", 400l, "A&B&C", 400l), 1);
}
use of org.apache.hadoop.fs.LocalFileSystem in project accumulo by apache.
the class RFileTest method testBadVis.
@Test(expected = IllegalArgumentException.class)
public void testBadVis() throws Exception {
// this test has two purposes ensure an exception is thrown and ensure the exception document in the javadoc is thrown
LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
String testFile = createTmpTestFile();
try (RFileWriter writer = RFile.newWriter().to(testFile).withFileSystem(localFs).build()) {
writer.startDefaultLocalityGroup();
Key k1 = new Key("r1", "f1", "q1", "(A&(B");
writer.append(k1, new Value("".getBytes()));
}
}
use of org.apache.hadoop.fs.LocalFileSystem in project accumulo by apache.
the class RFileTest method testAuths.
@Test
public void testAuths() throws Exception {
LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
String testFile = createTmpTestFile();
RFileWriter writer = RFile.newWriter().to(testFile).withFileSystem(localFs).build();
Key k1 = new Key("r1", "f1", "q1", "A&B");
Key k2 = new Key("r1", "f1", "q2", "A");
Key k3 = new Key("r1", "f1", "q3");
Value v1 = new Value("p".getBytes());
Value v2 = new Value("c".getBytes());
Value v3 = new Value("t".getBytes());
writer.append(k1, v1);
writer.append(k2, v2);
writer.append(k3, v3);
writer.close();
Scanner scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).withAuthorizations(new Authorizations("A")).build();
Assert.assertEquals(ImmutableMap.of(k2, v2, k3, v3), toMap(scanner));
Assert.assertEquals(new Authorizations("A"), scanner.getAuthorizations());
scanner.close();
scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).withAuthorizations(new Authorizations("A", "B")).build();
Assert.assertEquals(ImmutableMap.of(k1, v1, k2, v2, k3, v3), toMap(scanner));
Assert.assertEquals(new Authorizations("A", "B"), scanner.getAuthorizations());
scanner.close();
scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).withAuthorizations(new Authorizations("B")).build();
Assert.assertEquals(ImmutableMap.of(k3, v3), toMap(scanner));
Assert.assertEquals(new Authorizations("B"), scanner.getAuthorizations());
scanner.close();
}
Aggregations