通过scala spark连接到远程hbase

时间:2017-11-03 07:20:17

标签: apache-spark hbase

我正在尝试通过scala和spark连接到远程Hbase。无法成功。 任何人都可以建议任何与此相关的方法。

提前致谢。

2 个答案:

答案 0 :(得分:2)

我们有两种方法可以从spark / scala连接到HBASE

  1. HBASE Rest Api
  2. phoenix.apache - https://phoenix.apache.org/
  3. Hbase Rest API代码

            val hbaseCluster  = new org.apache.hadoop.hbase.rest.client.Cluster()
                        hbaseCluster.add("localhost or UP", <port>)
                        val restClient = new Client(hbaseCluster)
                         val table =  new RemoteHTable(restClient, "STUDENT")
                         println("connected...")
                        var p = new Put(Bytes.toBytes("row1"))
    
                  p.add(Bytes.toBytes("0"), Bytes.toBytes("NAME"),Bytes.toBytes("raju"))
                  p.add(Bytes.toBytes("0"), Bytes.toBytes("COURSE"),Bytes.toBytes("SCALA"))
                  p.add(Bytes.toBytes("0"), Bytes.toBytes("YEAR"),Bytes.toBytes("2017"))
                  table.put(p)
    
                  val scan = new Scan()
                  val scanner : ResultScanner = table.getScanner(scan)
                  println("got scanner...")
                  val g = new Get(Bytes.toBytes("row1"))
                  val result = table.get(g)
    
                  val name = Bytes.toString(result.getValue(Bytes.toBytes("0"),Bytes.toBytes("NAME")))
                  val course = Bytes.toString(result.getValue(Bytes.toBytes("0"),Bytes.toBytes("COURSE")))
                  val year = Bytes.toString(result.getValue(Bytes.toBytes("0"),Bytes.toBytes("YEAR")))
    
                  println("row1 " + "name: " + name + " course: " + course + " year:" + year);
    
    
                  for (result  <- scanner) {
                          var userId = Bytes.toString(result.getValue("NAME".getBytes(), "ID".getBytes()))
                           println("userId " + userId)
                   }
                }
                }
    

    Apache Phoenix

    Phoenix也提供了火花插件和JDBC连接。

    spark plugin - https://phoenix.apache.org/phoenix_spark.html

    JDBC连接(查询服务器) - https://phoenix.apache.org/server.html

答案 1 :(得分:1)

上周我遇到过类似的问题。最终我使用HBase Spark连接器制作了它。这是相当多的设置/配置。我在下面的链接中记录了我的步骤

Setup Apache Zeppelin with Spark and HBase