分享

请问mapreduce怎么将多个字段写入到数据库

chenabc 发表于 2014-4-26 13:00:54 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 7219
请问mapreduce怎么将多个字段写入到数据库?

已有(1)人评论

跳转到指定楼层
hyj 发表于 2014-4-26 13:18:48
插入数据的话,根据你的需求,你是map端插入,还是reduce端插入。
这里面无非就是嵌入代码:
比如下面代码:
  1. //创建riapguh表
  2.         System.out.println("创建 table");
  3.         HTableDescriptor tableDescripter = new HTableDescriptor("riapguh".getBytes());//创建表
  4.         tableDescripter.addFamily(new HColumnDescriptor("user"));//创建列簇user
  5.         tableDescripter.addFamily(new HColumnDescriptor("dpt"));//创建列簇dpt
  6.         admin.createTable(tableDescripter);
  7.         HTable table = new HTable(configuration, "riapguh");
  8.       //插入数据
  9.       System.out.println("add riapguh data");
  10.       List<Put> putuser = new ArrayList<Put>();
  11.        Put user1 = new Put(new String("用户A").getBytes());
  12.        //写入用户员信息
  13.        user1.add(new String("user").getBytes(), new String("user_code").getBytes(), new String("u_0001").getBytes());
  14.        user1.add(new String("user").getBytes(), new String("user_name").getBytes(), new String("u_用户A").getBytes());
  15.        //写入部门信息
  16.        user1.add(new String("dpt").getBytes(), new String("dpt_code").getBytes(), new String("d_001").getBytes());
  17.        user1.add(new String("dpt").getBytes(), new String("dpt_name").getBytes(), new String("d_部门A").getBytes());
  18.        putuser.add(user1);
  19.        Put user2 = new Put(new String("用户B").getBytes());
  20.        //写入用户员信息
  21.        user2.add(new String("user").getBytes(), new String("user_code").getBytes(), new String("u_0002").getBytes());
  22.        user2.add(new String("user").getBytes(), new String("user_name").getBytes(), new String("u_用户B").getBytes());
  23.        //写入部门信息
  24.        user2.add(new String("dpt").getBytes(), new String("dpt_code").getBytes(), new String("d_002").getBytes());
  25.        user2.add(new String("dpt").getBytes(), new String("dpt_name").getBytes(), new String("d_部门B").getBytes());
  26.        putuser.add(user2);
  27.        Put user3 = new Put(new String("用户C").getBytes());
  28.        //写入用户员信息
  29.        user3.add(new String("user").getBytes(), new String("user_code").getBytes(), new String("u_0003").getBytes());
  30.        user3.add(new String("user").getBytes(), new String("user_name").getBytes(), new String("u_用户C").getBytes());
  31.        //写入部门信息
  32.        user3.add(new String("dpt").getBytes(), new String("dpt_code").getBytes(), new String("d_003").getBytes());
  33.        user3.add(new String("dpt").getBytes(), new String("dpt_name").getBytes(), new String("d_部门C").getBytes());
  34.        putuser.add(user3);
  35.       table.put(putuser);
  36.       table.flushCommits();
复制代码
把上面代码整合到maoreduce中就可以做到了。


更详细操作可以查看hbase-0.90.2中创建表、插入数据,更新数据,删除数据实例


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条