use of org.apache.accumulo.examples.cli.ClientOpts in project accumulo-examples by apache.
the class RowOperations method main.
public static void main(String[] args) throws AccumuloException, AccumuloSecurityException, TableExistsException, TableNotFoundException, MutationsRejectedException {
ClientOpts opts = new ClientOpts();
ScannerOpts scanOpts = new ScannerOpts();
BatchWriterOpts bwOpts = new BatchWriterOpts();
opts.parseArgs(RowOperations.class.getName(), args, scanOpts, bwOpts);
// First the setup work
connector = opts.getConnector();
// lets create an example table
connector.tableOperations().create(tableName);
// lets create 3 rows of information
Text row1 = new Text("row1");
Text row2 = new Text("row2");
Text row3 = new Text("row3");
// Which means 3 different mutations
Mutation mut1 = new Mutation(row1);
Mutation mut2 = new Mutation(row2);
Mutation mut3 = new Mutation(row3);
// And we'll put 4 columns in each row
Text col1 = new Text("1");
Text col2 = new Text("2");
Text col3 = new Text("3");
Text col4 = new Text("4");
// Now we'll add them to the mutations
mut1.put(new Text("column"), col1, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
mut1.put(new Text("column"), col2, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
mut1.put(new Text("column"), col3, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
mut1.put(new Text("column"), col4, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
mut2.put(new Text("column"), col1, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
mut2.put(new Text("column"), col2, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
mut2.put(new Text("column"), col3, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
mut2.put(new Text("column"), col4, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
mut3.put(new Text("column"), col1, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
mut3.put(new Text("column"), col2, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
mut3.put(new Text("column"), col3, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
mut3.put(new Text("column"), col4, System.currentTimeMillis(), new Value("This is the value for this key".getBytes(UTF_8)));
// Now we'll make a Batch Writer
bw = connector.createBatchWriter(tableName, bwOpts.getBatchWriterConfig());
// And add the mutations
bw.addMutation(mut1);
bw.addMutation(mut2);
bw.addMutation(mut3);
// Force a send
bw.flush();
// Now lets look at the rows
Scanner rowThree = getRow(scanOpts, new Text("row3"));
Scanner rowTwo = getRow(scanOpts, new Text("row2"));
Scanner rowOne = getRow(scanOpts, new Text("row1"));
// And print them
log.info("This is everything");
printRow(rowOne);
printRow(rowTwo);
printRow(rowThree);
System.out.flush();
// Now lets delete rowTwo with the iterator
rowTwo = getRow(scanOpts, new Text("row2"));
deleteRow(rowTwo);
// Now lets look at the rows again
rowThree = getRow(scanOpts, new Text("row3"));
rowTwo = getRow(scanOpts, new Text("row2"));
rowOne = getRow(scanOpts, new Text("row1"));
// And print them
log.info("This is row1 and row3");
printRow(rowOne);
printRow(rowTwo);
printRow(rowThree);
System.out.flush();
// Should only see the two rows
// Now lets delete rowOne without passing in the iterator
deleteRow(scanOpts, row1);
// Now lets look at the rows one last time
rowThree = getRow(scanOpts, new Text("row3"));
rowTwo = getRow(scanOpts, new Text("row2"));
rowOne = getRow(scanOpts, new Text("row1"));
// And print them
log.info("This is just row3");
printRow(rowOne);
printRow(rowTwo);
printRow(rowThree);
System.out.flush();
// Should only see rowThree
// Always close your batchwriter
bw.close();
// and lets clean up our mess
connector.tableOperations().delete(tableName);
// fin~
}
Aggregations