更新时间:2024-10-31 GMT+08:00

Spark同时访问两个HBase样例程序(Scala)

以下为Spark同时访问两个HBase样例程序的Scala示例。

下面代码片段仅为演示。

具体代码参见:com.huawei.spark.examples.SparkOnMultiHbase

def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("SparkOnMultiHbaseExample")
    conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
    conf.set("spark.kryo.registrator", "com.huawei.spark.examples.MyRegistrator")
    val sc = new SparkContext(conf)val tableName = "SparkOnMultiHbase"
    val clusterFlagList=List("B", "A")
    clusterFlagList.foreach{ item =>
        val hbaseConf = getConf( item )
        println(hbaseConf.get("hbase.zookeeper.quorum"))
        val hbaseUtil = new HbaseUtil(sc,hbaseConf)
        hbaseUtil.writeToHbase(tableName)
        hbaseUtil.readFromHbase(tableName)
    }
    sc.stop()
}
private def getConf(item:String):Configuration={
    val conf: Configuration = HBaseConfiguration.create()
    val url = "/opt" + File.separator + "example" + File.separator + item + File.separator + "hbase-site.xml"
    conf.addResource(new File(url).toURI.toURL) 
    conf
}