20,811
社区成员
发帖
与我相关
我的任务
分享
public class SaveToHBase {
public static int userNumber = 0;
public static String tableName = "UserData";
public static String columnFamily = "userinfo";
public static Configuration cfg = HBaseConfiguration.create();
public static class Map extends Mapper<LongWritable, Text, Text, Text>{
public void map(LongWritable key,Text value,Context context) throws IOException, InterruptedException{
context.write(new Text("user"+userNumber), value);
userNumber++;
}
}
public static class Reduce extends Reducer<Text, Text, Text, Text>{
public void reduce(Text key,Text value,Context context) throws IOException, InterruptedException{
String[] data = value.toString().trim().split("#");
SaveToHBase.put(tableName, key.toString(), columnFamily, "id", data[0]);
SaveToHBase.put(tableName, key.toString(), columnFamily, "password", data[1]);
SaveToHBase.put(tableName, key.toString(), columnFamily, "email", data[2]);
context.write(key,value);
}
}
public static void put(String tableName,String row,String columnFamily,String column,String data) throws IOException{
HTable table = new HTable(cfg, tableName);
Put put = new Put(Bytes.toBytes(row));
put.add(Bytes.toBytes(columnFamily),Bytes.toBytes(column),Bytes.toBytes(data));
table.put(put);
}
public static void create(String tableName, String columnFamily) throws Exception{
HBaseAdmin admin = new HBaseAdmin(cfg);
HTableDescriptor tableDescriptor = new HTableDescriptor(tableName);
tableDescriptor.addFamily(new HColumnDescriptor(columnFamily));
admin.createTable(tableDescriptor);
}
public static boolean delete(String tableName) throws Exception{
HBaseAdmin admin = new HBaseAdmin(cfg);
if(admin.tableExists(tableName)){
try {
admin.disableTable(tableName);
admin.deleteTable(tableName);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return false;
}
}
return true;
}
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
// SaveToHBase.delete(tableName);
SaveToHBase.create(tableName, columnFamily);
Job job = new Job(conf, "Save ");
job.setJarByClass(SaveToHBase.class);
job.setMapperClass(Map.class);
job.setReducerClass(Reduce.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}