返回介绍

HBase 创建(插入)数据

发布于 2024-06-23 16:37:45 字数 11505 浏览 0 评论 0 收藏 0

创建数据

要在HBase表中创建数据,请使用以下命令和方法:

  • put 命令
  • Put类的add()方法,以及
  • HTable类的put()方法。

例如,我们将在HBase中创建下表。

使用put命令,可以将行插入表中。其语法如下:

  1. put '<table name>','row1','<colfamily:colname>','<value>'

让我们将第一行值插入emp表,如下所示。

  1. hbase:002:0> put 'emp','1','personal data:name','raju'
  2. Took 1.3256 seconds
  3. hbase:003:0> put 'emp','1','personal data:city','hyderahad'
  4. Took 0.0283 seconds
  5. hbase:004:0> put 'emp','1','personal data:designation','manager'
  6. Took 0.0079 seconds
  7. hbase:005:0> put 'emp','1','personal data:salary','50000'
  8. Took 0.0110 seconds

以相同方式使用put命令插入其余行。如果插入整个表,将得到以下输出。

  1. hbase:019:0> scan 'emp'
  2. ROW COLUMN+CELL
  3. 1 column=personal data:city, timestamp=2021-01-04T09:35:39.345, val
  4. ue=hyderahad
  5. 1 column=personal data:designation, timestamp=2021-01-04T09:36:18.4
  6. 66, value=manager
  7. 1 column=personal data:name, timestamp=2021-01-04T09:38:44.128, val
  8. ue=raju
  9. 1 column=personal data:salary, timestamp=2021-01-04T09:36:42.145, v
  10. alue=50000
  11. 2 column=personal data:city, timestamp=2021-01-04T09:39:25.298, val
  12. ue=chennai
  13. 2 column=personal data:designation, timestamp=2021-01-04T09:39:56.8
  14. 97, value=sr.engineer
  15. 2 column=personal data:name, timestamp=2021-01-04T09:39:07.682, val
  16. ue=ravi
  17. 2 column=personal data:salary, timestamp=2021-01-04T09:40:13.935, v
  18. alue=30000
  19. 3 column=personal data:city, timestamp=2021-01-04T09:40:57.831, val
  20. ue=delhi
  21. 3 column=personal data:designation, timestamp=2021-01-04T09:41:27.2
  22. 62, value=jr.engineer
  23. 3 column=personal data:name, timestamp=2021-01-04T09:40:33.117, val
  24. ue=rajesh
  25. 3 column=personal data:salary, timestamp=2021-01-04T09:41:46.733, v
  26. alue=25000

使用Java API插入数据

您可以使用Put类的add()方法将数据插入Hbase 。您可以使用HTable类的put()方法保存它。这些类属于org.apache.hadoop.hbase.client软件包。下面给出了在HBase表中创建数据的步骤。

步骤1:连接

该配置类增加了HBase的配置文件,它的对象。您可以使用HbaseConfiguration类的create()方法创建配置对象,如下所示。

  1. // Instantiating Configuration class
  2. Configuration config = HBaseConfiguration.create();
  3. Connection connection = ConnectionFactory.createConnection(config);

步骤2:实例化Table类

您有一个名为HTable的类,它是HBase中Table的实现。此类用于与单个HBase表进行通信。在实例化此类时,它接受配置对象和表名称作为参数。Table类,如下所示。

  1. TableName tb = TableName.valueOf("emp");
  2. // Instantiating HTable class
  3. Table table = connection.getTable(tb);

步骤3:实例化Put 类

要将数据插入到HBase表中,请使用add()方法及其变体。此方法属于Put,因此实例化put类。此类要求您要以字符串格式将数据插入到的行名。您可以如下所示实例化Put类。

  1. TableName tb = TableName.valueOf("emp");
  2. // Instantiating HTable class
  3. Table table = connection.getTable(tb);

步骤4:插入数据

Put类的addaddColumn()方法用于插入数据。它需要3个字节的数组,分别代表列族,列限定符(列名)和要插入的值。如下所示,使用addColumn()方法将数据插入HBase表。

  1. p.addColumn(Bytes.toBytes("personal data"), Bytes.toBytes("name"), Bytes.toBytes("raju"));

步骤5:将数据保存在表中

插入所需的行后,通过将put实例添加到HTable类的put()方法中来保存更改,如下所示。

  1. Table.put(p);

步骤6:关闭HTable实例

在HBase表中创建数据后,使用close()方法关闭HTable实例,如下所示。

  1. Table.close();

下面给出了在HBase Table中创建数据的完整程序。

  1. import java.io.IOException;
  2. import org.apache.hadoop.conf.Configuration;
  3. import org.apache.hadoop.hbase.HBaseConfiguration;
  4. import org.apache.hadoop.hbase.TableName;
  5. import org.apache.hadoop.hbase.client.Connection;
  6. import org.apache.hadoop.hbase.client.ConnectionFactory;
  7. import org.apache.hadoop.hbase.client.Put;
  8. import org.apache.hadoop.hbase.client.Table;
  9. import org.apache.hadoop.hbase.util.Bytes;
  10. public class InsertData {
  11. public static void main(String[] args) throws IOException {
  12. // Instantiating Configuration class
  13. Configuration config = HBaseConfiguration.create();
  14. Connection connection = ConnectionFactory.createConnection(config);
  15. TableName tb = TableName.valueOf("emp");
  16. // Instantiating HTable class
  17. Table table = connection.getTable(tb);
  18. // Instantiating Put class
  19. // accepts a row name.
  20. Put p = new Put(Bytes.toBytes("row1"));
  21. // adding values using add() method
  22. // accepts column family name, qualifier/row name ,value
  23. p.addColumn(Bytes.toBytes("personal data"), Bytes.toBytes("name"), Bytes.toBytes("raju"));
  24. p.addColumn(Bytes.toBytes("personal data"), Bytes.toBytes("city"), Bytes.toBytes("hyderabad"));
  25. p.addColumn(Bytes.toBytes("personal data"), Bytes.toBytes("designation"), Bytes.toBytes("manager"));
  26. p.addColumn(Bytes.toBytes("personal data"), Bytes.toBytes("salary"), Bytes.toBytes("50000"));
  27. // Saving the put Instance to the HTable.
  28. table.put(p);
  29. System.out.println("data inserted");
  30. // closing HTable
  31. table.close();
  32. }
  33. }

编译并执行上述程序,如下所示。

  1. $javac InsertData.java
  2. $java InsertData

以下应该是输出:

  1. data inserted

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文