Skip to content
Snippets Groups Projects
Commit 6e5177fd authored by Mike Drob's avatar Mike Drob Committed by Sean Busbey
Browse files

Cleanup and upgrade to work with Accumulo 1.6.0.

* Increment Accumulo Version to 1.6.0
* Fix accumulo dependency versions
  - Harmonize guava version for Accumulo.
  - Automatically manage slf4j version.
* Clean up depr. code
* Clean up return codes and error logging
parent a3cf980f
No related branches found
No related tags found
No related merge requests found
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
<version>4.8.1</version> <version>4.8.1</version>
<scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.hadoop</groupId> <groupId>org.apache.hadoop</groupId>
...@@ -56,7 +57,7 @@ ...@@ -56,7 +57,7 @@
<dependency> <dependency>
<groupId>com.google.guava</groupId> <groupId>com.google.guava</groupId>
<artifactId>guava</artifactId> <artifactId>guava</artifactId>
<version>r08</version> <version>15.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.yahoo.ycsb</groupId> <groupId>com.yahoo.ycsb</groupId>
...@@ -93,13 +94,4 @@ ...@@ -93,13 +94,4 @@
<url>http://repository.apache.org/snapshots</url> <url>http://repository.apache.org/snapshots</url>
</repository> </repository>
</repositories> </repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.8</version>
</dependency>
</dependencies>
</dependencyManagement>
</project> </project>
package com.yahoo.ycsb.db; package com.yahoo.ycsb.db;
import com.yahoo.ycsb.ByteIterator;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry;
import java.util.Random; import java.util.Random;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import java.util.Vector; import java.util.Vector;
import java.util.Map.Entry; import java.util.concurrent.TimeUnit;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloException;
import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.client.AccumuloSecurityException;
import org.apache.accumulo.core.client.BatchWriter;
import org.apache.accumulo.core.client.BatchWriterConfig;
import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Connector;
import org.apache.accumulo.core.client.MutationsRejectedException; import org.apache.accumulo.core.client.MutationsRejectedException;
import org.apache.accumulo.core.client.Scanner;
import org.apache.accumulo.core.client.TableNotFoundException; import org.apache.accumulo.core.client.TableNotFoundException;
import org.apache.accumulo.core.client.ZooKeeperInstance; import org.apache.accumulo.core.client.ZooKeeperInstance;
import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
import org.apache.accumulo.core.client.BatchWriter; import org.apache.accumulo.core.client.security.tokens.PasswordToken;
import org.apache.accumulo.core.client.Scanner;
import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Key;
import org.apache.accumulo.core.data.Mutation; import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.data.Range; import org.apache.accumulo.core.data.Range;
import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.util.CleanUp; import org.apache.accumulo.core.util.CleanUp;
import org.apache.hadoop.io.Text; import org.apache.hadoop.io.Text;
import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.KeeperException;
import com.yahoo.ycsb.ByteArrayByteIterator;
import com.yahoo.ycsb.ByteIterator;
import com.yahoo.ycsb.DB; import com.yahoo.ycsb.DB;
import com.yahoo.ycsb.DBException; import com.yahoo.ycsb.DBException;
import com.yahoo.ycsb.ByteArrayByteIterator;
public class AccumuloClient extends DB { public class AccumuloClient extends DB {
// Error code constants. // Error code constants.
...@@ -59,20 +61,19 @@ public class AccumuloClient extends DB { ...@@ -59,20 +61,19 @@ public class AccumuloClient extends DB {
@Override @Override
public void init() { public void init() throws DBException {
_colFam = new Text(getProperties().getProperty("accumulo.columnFamily")); _colFam = new Text(getProperties().getProperty("accumulo.columnFamily"));
_inst = new ZooKeeperInstance(getProperties().getProperty("accumulo.instanceName"), _inst = new ZooKeeperInstance(getProperties().getProperty("accumulo.instanceName"),
getProperties().getProperty("accumulo.zooKeepers")); getProperties().getProperty("accumulo.zooKeepers"));
try { try {
_connector = _inst.getConnector(getProperties().getProperty("accumulo.username"), String principal = getProperties().getProperty("accumulo.username");
getProperties().getProperty("accumulo.password")); AuthenticationToken token = new PasswordToken(getProperties().getProperty("accumulo.password"));
_connector = _inst.getConnector(principal, token);
} catch (AccumuloException e) { } catch (AccumuloException e) {
// TODO Auto-generated catch block throw new DBException(e);
e.printStackTrace();
} catch (AccumuloSecurityException e) { } catch (AccumuloSecurityException e) {
// TODO Auto-generated catch block throw new DBException(e);
e.printStackTrace();
} }
_PC_FLAG = getProperties().getProperty("accumulo.PC_FLAG","none"); _PC_FLAG = getProperties().getProperty("accumulo.PC_FLAG","none");
...@@ -135,13 +136,16 @@ public class AccumuloClient extends DB { ...@@ -135,13 +136,16 @@ public class AccumuloClient extends DB {
} }
} }
long bwSize = Long.parseLong(getProperties().getProperty("accumulo.batchWriterSize", "100000")); BatchWriterConfig bwc = new BatchWriterConfig();
long bwMaxLatency = Long.parseLong(getProperties().getProperty("accumulo.batchWriterMaxLatency", "30000")); bwc.setMaxLatency(Long.parseLong(getProperties().getProperty("accumulo.batchWriterMaxLatency", "30000")), TimeUnit.MILLISECONDS);
int bwThreads = Integer.parseInt(getProperties().getProperty("accumulo.batchWriterThreads", "1")); bwc.setMaxMemory(Long.parseLong(getProperties().getProperty("accumulo.batchWriterSize", "100000")));
_bw = _connector.createBatchWriter(table, bwSize, bwMaxLatency, bwThreads); bwc.setMaxWriteThreads(Integer.parseInt(getProperties().getProperty("accumulo.batchWriterThreads", "1")));
_bw = _connector.createBatchWriter(table, bwc);
// Create our scanners // Create our scanners
_singleScanner = _connector.createScanner(table, Constants.NO_AUTHS); _singleScanner = _connector.createScanner(table, Authorizations.EMPTY);
_scanScanner = _connector.createScanner(table, Constants.NO_AUTHS); _scanScanner = _connector.createScanner(table, Authorizations.EMPTY);
_table = table; // Store the name of the table we have open. _table = table; // Store the name of the table we have open.
} }
...@@ -149,8 +153,9 @@ public class AccumuloClient extends DB { ...@@ -149,8 +153,9 @@ public class AccumuloClient extends DB {
/** /**
* Gets a scanner from Accumulo over one row * Gets a scanner from Accumulo over one row
* *
* @param row * @param row the row to scan
* @return * @param fields the set of columns to scan
* @return an Accumulo {@link Scanner} bound to the given row and columns
*/ */
private Scanner getRow(Text row, Set<String> fields) private Scanner getRow(Text row, Set<String> fields)
{ {
...@@ -188,7 +193,7 @@ public class AccumuloClient extends DB { ...@@ -188,7 +193,7 @@ public class AccumuloClient extends DB {
System.err.println("Error trying to reading Accumulo table" + key + e); System.err.println("Error trying to reading Accumulo table" + key + e);
return ServerError; return ServerError;
} }
return 0; return Ok;
} }
...@@ -252,7 +257,7 @@ public class AccumuloClient extends DB { ...@@ -252,7 +257,7 @@ public class AccumuloClient extends DB {
currentHM.put(entry.getKey().getColumnQualifier().toString(), new ByteArrayByteIterator(buf)); currentHM.put(entry.getKey().getColumnQualifier().toString(), new ByteArrayByteIterator(buf));
} }
return 0; return Ok;
} }
...@@ -281,12 +286,13 @@ public class AccumuloClient extends DB { ...@@ -281,12 +286,13 @@ public class AccumuloClient extends DB {
keyNotification(key); keyNotification(key);
} }
} catch (MutationsRejectedException e) { } catch (MutationsRejectedException e) {
// TODO Auto-generated catch block System.err.println("Error performing update.");
e.printStackTrace(); e.printStackTrace();
return ServerError;
} }
return 0; return Ok;
} }
@Override @Override
...@@ -303,26 +309,19 @@ public class AccumuloClient extends DB { ...@@ -303,26 +309,19 @@ public class AccumuloClient extends DB {
return ServerError; return ServerError;
} }
try { try {
deleteRow(new Text(key)); deleteRow(new Text(key));
} catch (SecurityException e) { } catch (RuntimeException e) {
// TODO Auto-generated catch block System.err.println("Error performing delete.");
e.printStackTrace();
} catch (TableNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
return ServerError;
} }
return Ok;
return 0;
} }
// These functions are adapted from RowOperations.java: // These functions are adapted from RowOperations.java:
private void deleteRow(Text row) throws TableNotFoundException { private void deleteRow(Text row) {
deleteRow(getRow(row, null)); deleteRow(getRow(row, null));
} }
...@@ -430,7 +429,7 @@ public class AccumuloClient extends DB { ...@@ -430,7 +429,7 @@ public class AccumuloClient extends DB {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
return 0; return Ok;
} }
} }
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<properties> <properties>
<maven.assembly.version>2.2.1</maven.assembly.version> <maven.assembly.version>2.2.1</maven.assembly.version>
<hbase.version>0.92.1</hbase.version> <hbase.version>0.92.1</hbase.version>
<accumulo.version>1.4.5</accumulo.version> <accumulo.version>1.6.0</accumulo.version>
<cassandra.version>0.7.0</cassandra.version> <cassandra.version>0.7.0</cassandra.version>
<infinispan.version>7.1.0.CR1</infinispan.version> <infinispan.version>7.1.0.CR1</infinispan.version>
<openjpa.jdbc.version>2.1.1</openjpa.jdbc.version> <openjpa.jdbc.version>2.1.1</openjpa.jdbc.version>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment