You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by dr...@apache.org on 2019/03/20 14:54:36 UTC
[accumulo] branch 1.9 updated: Fixes #1041 Provides proper volumes
to chooser from import table command
This is an automated email from the ASF dual-hosted git repository.
drew pushed a commit to branch 1.9
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/1.9 by this push:
new e92ef4e Fixes #1041 Provides proper volumes to chooser from import table command
e92ef4e is described below
commit e92ef4ecf17e8b24d145a746c019848e3ec85d9f
Author: Drew Farris <dr...@gmail.com>
AuthorDate: Wed Mar 20 07:53:42 2019 -0700
Fixes #1041 Provides proper volumes to chooser from import table command
---
.../accumulo/master/tableOps/PopulateMetadataTable.java | 12 ++++++------
.../org/apache/accumulo/master/tableOps/ImportTableTest.java | 12 ++++++------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/server/master/src/main/java/org/apache/accumulo/master/tableOps/PopulateMetadataTable.java b/server/master/src/main/java/org/apache/accumulo/master/tableOps/PopulateMetadataTable.java
index 160480b..75c080a 100644
--- a/server/master/src/main/java/org/apache/accumulo/master/tableOps/PopulateMetadataTable.java
+++ b/server/master/src/main/java/org/apache/accumulo/master/tableOps/PopulateMetadataTable.java
@@ -109,7 +109,7 @@ class PopulateMetadataTable extends MasterRepo {
// hdfs://localhost:8020/path/to/accumulo/tables/...
final String bulkDir = tableInfo.importDir;
- final String[] tableDirs = ServerConstants.getTablesDirs();
+ final String[] volumes = ServerConstants.getBaseUris();
ZipEntry zipEntry;
while ((zipEntry = zis.getNextEntry()) != null) {
@@ -155,7 +155,7 @@ class PopulateMetadataTable extends MasterRepo {
UTF_8);
// Build up a full hdfs://localhost:8020/accumulo/tables/$id/c-XXXXXXX
- String absolutePath = getClonedTabletDir(master, tableDirs, tabletDir);
+ String absolutePath = getClonedTabletDir(master, volumes, tabletDir);
m = new Mutation(metadataRow);
TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.put(m,
@@ -173,7 +173,7 @@ class PopulateMetadataTable extends MasterRepo {
UTF_8);
// Build up a full hdfs://localhost:8020/accumulo/tables/$id/c-XXXXXXX
- String absolutePath = getClonedTabletDir(master, tableDirs, tabletDir);
+ String absolutePath = getClonedTabletDir(master, volumes, tabletDir);
m = new Mutation(metadataRow);
TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.put(m,
@@ -220,12 +220,12 @@ class PopulateMetadataTable extends MasterRepo {
*
* @return An absolute, unique path for the imported table
*/
- protected String getClonedTabletDir(Master master, String[] tableDirs, String tabletDir) {
+ protected String getClonedTabletDir(Master master, String[] volumes, String tabletDir) {
// We can try to spread out the tablet dirs across all volumes
- String tableDir = master.getFileSystem().choose(Optional.of(tableInfo.tableId), tableDirs);
+ String volume = master.getFileSystem().choose(Optional.of(tableInfo.tableId), volumes);
// Build up a full hdfs://localhost:8020/accumulo/tables/$id/c-XXXXXXX
- return tableDir + "/" + tableInfo.tableId + "/" + tabletDir;
+ return volume + "/" + ServerConstants.TABLE_DIR + "/" + tableInfo.tableId + "/" + tabletDir;
}
@Override
diff --git a/server/master/src/test/java/org/apache/accumulo/master/tableOps/ImportTableTest.java b/server/master/src/test/java/org/apache/accumulo/master/tableOps/ImportTableTest.java
index 5e0a32b..e22d710 100644
--- a/server/master/src/test/java/org/apache/accumulo/master/tableOps/ImportTableTest.java
+++ b/server/master/src/test/java/org/apache/accumulo/master/tableOps/ImportTableTest.java
@@ -19,6 +19,7 @@ package org.apache.accumulo.master.tableOps;
import static org.junit.Assert.assertEquals;
import org.apache.accumulo.master.Master;
+import org.apache.accumulo.server.ServerConstants;
import org.apache.accumulo.server.fs.VolumeManager;
import org.easymock.EasyMock;
import org.junit.Test;
@@ -38,21 +39,20 @@ public class ImportTableTest {
iti.tableId = "5";
// Different volumes with different paths
- String[] tableDirs = new String[] {"hdfs://nn1:8020/apps/accumulo1/tables",
- "hdfs://nn2:8020/applications/accumulo/tables"};
+ String[] volumes = new String[] {"hdfs://nn1:8020/apps/accumulo1",
+ "hdfs://nn2:8020/applications/accumulo"};
// This needs to be unique WRT the importtable command
String tabletDir = "/c-00000001";
EasyMock.expect(master.getFileSystem()).andReturn(volumeManager);
// Choose the 2nd element
- EasyMock.expect(volumeManager.choose(Optional.of(iti.tableId), tableDirs))
- .andReturn(tableDirs[1]);
+ EasyMock.expect(volumeManager.choose(Optional.of(iti.tableId), volumes)).andReturn(volumes[1]);
EasyMock.replay(master, volumeManager);
PopulateMetadataTable pmt = new PopulateMetadataTable(iti);
- assertEquals(tableDirs[1] + "/" + iti.tableId + "/" + tabletDir,
- pmt.getClonedTabletDir(master, tableDirs, tabletDir));
+ assertEquals(volumes[1] + "/" + ServerConstants.TABLE_DIR + "/" + iti.tableId + "/" + tabletDir,
+ pmt.getClonedTabletDir(master, volumes, tabletDir));
EasyMock.verify(master, volumeManager);
}