插入数据的话,根据你的需求,你是map端插入,还是reduce端插入。
这里面无非就是嵌入代码:
比如下面代码:
- //创建riapguh表
- System.out.println("创建 table");
- HTableDescriptor tableDescripter = new HTableDescriptor("riapguh".getBytes());//创建表
- tableDescripter.addFamily(new HColumnDescriptor("user"));//创建列簇user
- tableDescripter.addFamily(new HColumnDescriptor("dpt"));//创建列簇dpt
- admin.createTable(tableDescripter);
-
- HTable table = new HTable(configuration, "riapguh");
-
- //插入数据
- System.out.println("add riapguh data");
- List<Put> putuser = new ArrayList<Put>();
-
-
- Put user1 = new Put(new String("用户A").getBytes());
- //写入用户员信息
- user1.add(new String("user").getBytes(), new String("user_code").getBytes(), new String("u_0001").getBytes());
- user1.add(new String("user").getBytes(), new String("user_name").getBytes(), new String("u_用户A").getBytes());
-
- //写入部门信息
- user1.add(new String("dpt").getBytes(), new String("dpt_code").getBytes(), new String("d_001").getBytes());
- user1.add(new String("dpt").getBytes(), new String("dpt_name").getBytes(), new String("d_部门A").getBytes());
- putuser.add(user1);
-
-
-
- Put user2 = new Put(new String("用户B").getBytes());
- //写入用户员信息
- user2.add(new String("user").getBytes(), new String("user_code").getBytes(), new String("u_0002").getBytes());
- user2.add(new String("user").getBytes(), new String("user_name").getBytes(), new String("u_用户B").getBytes());
-
- //写入部门信息
- user2.add(new String("dpt").getBytes(), new String("dpt_code").getBytes(), new String("d_002").getBytes());
- user2.add(new String("dpt").getBytes(), new String("dpt_name").getBytes(), new String("d_部门B").getBytes());
- putuser.add(user2);
-
-
-
- Put user3 = new Put(new String("用户C").getBytes());
- //写入用户员信息
- user3.add(new String("user").getBytes(), new String("user_code").getBytes(), new String("u_0003").getBytes());
- user3.add(new String("user").getBytes(), new String("user_name").getBytes(), new String("u_用户C").getBytes());
-
- //写入部门信息
- user3.add(new String("dpt").getBytes(), new String("dpt_code").getBytes(), new String("d_003").getBytes());
- user3.add(new String("dpt").getBytes(), new String("dpt_name").getBytes(), new String("d_部门C").getBytes());
- putuser.add(user3);
-
-
- table.put(putuser);
- table.flushCommits();
复制代码
把上面代码整合到maoreduce中就可以做到了。
更详细操作可以查看hbase-0.90.2中创建表、插入数据,更新数据,删除数据实例
|