错误:类htable中的构造函数htable不能应用于给定类型

htzpubme  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(973)

我正在使用hadoop hbase。我只是写了一个简单的程序来插入数据库。运行程序时出现以下错误:
插入数据。java:31:错误:类htable中的构造函数htable不能应用于给定类型;htable htable=新htable(“emp”,conn);
我的代码:

  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.client.HTable;
  5. import org.apache.hadoop.hbase.client.Put;
  6. import org.apache.hadoop.hbase.util.Bytes;
  7. public class InsertData {
  8. public static void main(String[] args) throws IOException {
  9. // Instantiating Configuration class
  10. Configuration config = HBaseConfiguration.create();
  11. // Instantiating HTable class
  12. HTable hTable = new HTable(config, "emp");
  13. // Instantiating Put class
  14. // accepts a row name.
  15. Put p = new Put(Bytes.toBytes("row1"));
  16. // adding values using add() method
  17. // accepts column family name, qualifier/row name ,value
  18. p.add(Bytes.toBytes("personal"),
  19. Bytes.toBytes("name"),Bytes.toBytes("raju"));
  20. p.add(Bytes.toBytes("personal"),
  21. Bytes.toBytes("city"),Bytes.toBytes("hyderabad"));
  22. p.add(Bytes.toBytes("professional"),Bytes.toBytes("designation"),
  23. Bytes.toBytes("manager"));
  24. p.add(Bytes.toBytes("professional"),Bytes.toBytes("salary"),
  25. Bytes.toBytes("50000"));
  26. // Saving the put Instance to the HTable.
  27. hTable.put(p);
  28. System.out.println("data inserted");
  29. // closing HTable
  30. hTable.close();
  31. }
  32. }

我的帮助?
谢谢

qij5mzcb

qij5mzcb1#

我不确定您使用的是哪个版本的hbase,但是 HTable 已被弃用一段时间(请参阅 HTable api文档),现在纯粹是一个内部方法。相反,使用 Table (确保版本与您的hbase部署保持一致):
你应该依靠 org.apache.hbase:hbase-client:<VERSION> (不需要任何其他hbase依赖项),并使用以下方法:

  1. try {
  2. Configuration conf = HBaseConfiguration.create();
  3. Connection connection = ConnectionFactory.createConnection(conf);
  4. Table table = connection.getTable(TableName.valueOf("emp"));
  5. Put p = new Put(Bytes.toBytes("row1"));
  6. p.add(Bytes.toBytes("personal"), Bytes.toBytes("name"),Bytes.toBytes("raju"));
  7. table.put(p);
  8. } finally {
  9. table.close();
  10. connection.close();
  11. }

相关问题