将scala hbase连接到固定的hbase

xxls0lw8  于 2021-06-09  发布在  Hbase
关注(0)|答案(0)|浏览(275)

我正在尝试播放框架模板“播放hbase”。这是一个模板,所以我希望它在大多数情况下工作。但在我的例子中,hbase是在win7x64上用boot2docker运行的。所以我在模板中添加了一些配置细节:

object Application extends Controller {

  val barsTableName = "bars"
  val family = Bytes.toBytes("all")
  val qualifier = Bytes.toBytes("json")

  lazy val hbaseConfig = {
    val conf = HBaseConfiguration.create()
    // ADDED ADDED specify boot2docker vm
    conf.set("hbase.zookeeper.quorum", "192.168.59.103")
    conf.set("hbase.zookeeper.property.clientPort", "2181")
    conf.set("hbase.master", "192.168.59.103:60000");
    val hbaseAdmin = new HBaseAdmin(conf)

    // create a table in HBase if it doesn't exist
    if (!hbaseAdmin.tableExists(barsTableName)) {
      val desc = new HTableDescriptor(barsTableName)
      desc.addFamily(new HColumnDescriptor(family))
      hbaseAdmin.createTable(desc)
      Logger.info("bars table created")
    }

    // return the HBase config
    conf
  }

它正在编译和运行,但在此代码期间显示“错误请求错误”。

def addBar() = Action(parse.json) { request =>
    // create a new row in the table that contains the JSON sent from the client
    val table = new HTable(hbaseConfig, barsTableName)
    val put = new Put(Bytes.toBytes(UUID.randomUUID().toString))
    put.add(family, qualifier, Bytes.toBytes(request.body.toString()))
    table.put(put)
    table.close()
    Ok
  }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题