package com.oreilly.springdata.hadoop.hbase;
import java.io.IOException;
import javax.annotation.Resource;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.hadoop.hbase.HbaseTemplate;
import org.springframework.data.hadoop.hbase.TableCallback;
import org.springframework.stereotype.Component;
import com.oreilly.springdata.hadoop.hbase.*;
@Component
public class UserUtils implements InitializingBean {
private String tableName = "users";
private byte[] tableNameAsBytes = Bytes.toBytes("users");
@Resource(name = "hbaseConfiguration")
private Configuration config;
@Autowired
private HbaseTemplate hbaseTemplate;
@Autowired
private UserRepository userRepository;
private HBaseAdmin admin;
public void initialize() throws IOException {
if (admin.tableExists(tableNameAsBytes)) {
if (!admin.isTableDisabled(tableNameAsBytes)) {
System.out.printf("Disabling %s\n", tableName);
admin.disableTable(tableNameAsBytes);
}
System.out.printf("Deleting %s\n", tableName);
admin.deleteTable(tableNameAsBytes);
}
HTableDescriptor tableDescriptor = new HTableDescriptor(tableName);
HColumnDescriptor columnDescriptor = new HColumnDescriptor(
UserRepository.CF_INFO);
tableDescriptor.addFamily(columnDescriptor);
admin.createTable(tableDescriptor);
}
public void addUsers() {
for (int i = 0; i < 10; i++) {
userRepository.save("user" + i,"user" + i + "@yahoo.com", "password" + i);
}
}
@Override
public void afterPropertiesSet() throws Exception {
admin = new HBaseAdmin(config);
}
}