Search in sources :

Example 1 with Input

use of org.apache.accumulo.core.clientImpl.bulk.BulkSerialize.Input in project accumulo by apache.

the class BulkSerializeTest method testRemap.

@Test
public void testRemap() throws Exception {
    TableId tableId = TableId.of("3");
    SortedMap<KeyExtent, Bulk.Files> mapping = generateMapping(tableId);
    SortedMap<KeyExtent, Bulk.Files> newNameMapping = new TreeMap<>();
    Map<String, String> nameMap = new HashMap<>();
    mapping.forEach((extent, files) -> {
        Files newFiles = new Files();
        files.forEach(fi -> {
            newFiles.add(new FileInfo("N" + fi.name, fi.estSize, fi.estEntries));
            nameMap.put(fi.name, "N" + fi.name);
        });
        newNameMapping.put(extent, newFiles);
    });
    ByteArrayOutputStream mappingBaos = new ByteArrayOutputStream();
    ByteArrayOutputStream nameBaos = new ByteArrayOutputStream();
    BulkSerialize.writeRenameMap(nameMap, "/some/dir", p -> nameBaos);
    BulkSerialize.writeLoadMapping(mapping, "/some/dir", p -> mappingBaos);
    Input input = p -> {
        if (p.getName().equals(Constants.BULK_LOAD_MAPPING)) {
            return new ByteArrayInputStream(mappingBaos.toByteArray());
        } else if (p.getName().equals(Constants.BULK_RENAME_FILE)) {
            return new ByteArrayInputStream(nameBaos.toByteArray());
        } else {
            throw new IllegalArgumentException("bad path " + p);
        }
    };
    try (LoadMappingIterator lmi = BulkSerialize.getUpdatedLoadMapping("/some/dir", tableId, input)) {
        SortedMap<KeyExtent, Bulk.Files> actual = new TreeMap<>();
        lmi.forEachRemaining(e -> actual.put(e.getKey(), e.getValue()));
        assertEquals(newNameMapping, actual);
    }
}
Also used : TableId(org.apache.accumulo.core.data.TableId) TableId(org.apache.accumulo.core.data.TableId) ByteArrayOutputStream(java.io.ByteArrayOutputStream) KeyExtent(org.apache.accumulo.core.dataImpl.KeyExtent) Text(org.apache.hadoop.io.Text) HashMap(java.util.HashMap) Constants(org.apache.accumulo.core.Constants) Test(org.junit.jupiter.api.Test) ByteArrayInputStream(java.io.ByteArrayInputStream) TreeMap(java.util.TreeMap) Map(java.util.Map) Input(org.apache.accumulo.core.clientImpl.bulk.BulkSerialize.Input) FileInfo(org.apache.accumulo.core.clientImpl.bulk.Bulk.FileInfo) Files(org.apache.accumulo.core.clientImpl.bulk.Bulk.Files) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) SortedMap(java.util.SortedMap) HashMap(java.util.HashMap) ByteArrayOutputStream(java.io.ByteArrayOutputStream) TreeMap(java.util.TreeMap) KeyExtent(org.apache.accumulo.core.dataImpl.KeyExtent) Input(org.apache.accumulo.core.clientImpl.bulk.BulkSerialize.Input) FileInfo(org.apache.accumulo.core.clientImpl.bulk.Bulk.FileInfo) ByteArrayInputStream(java.io.ByteArrayInputStream) Files(org.apache.accumulo.core.clientImpl.bulk.Bulk.Files) Test(org.junit.jupiter.api.Test)

Aggregations

ByteArrayInputStream (java.io.ByteArrayInputStream)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 SortedMap (java.util.SortedMap)1 TreeMap (java.util.TreeMap)1 Constants (org.apache.accumulo.core.Constants)1 FileInfo (org.apache.accumulo.core.clientImpl.bulk.Bulk.FileInfo)1 Files (org.apache.accumulo.core.clientImpl.bulk.Bulk.Files)1 Input (org.apache.accumulo.core.clientImpl.bulk.BulkSerialize.Input)1 TableId (org.apache.accumulo.core.data.TableId)1 KeyExtent (org.apache.accumulo.core.dataImpl.KeyExtent)1 Text (org.apache.hadoop.io.Text)1 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)1 Test (org.junit.jupiter.api.Test)1