我在EMR集群上运行HBase,我试图用本地机器上的Spark访问它上面的表.
它似乎连接到动物园管理员,但甚至不知道我寻找的表是否存在.
这是我的代码,以及hbase-site.xml文件和我得到的消息.
package org.apache.spark.examples
import org.apache.hadoop.fs.Path
import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.hbase.client.HBaseAdmin
import org.apache.hadoop.hbase.mapreduce.TableInputFormat
import org.apache.spark._
object HBaseTestEMR {
def main(args: Array[String]) {
val sparkConf = new SparkConf().setAppName("HBaseTest").setMaster("local[4]")
val sc = new SparkContext(sparkConf)
val conf = HBaseConfiguration.create()
val table_name="empl"
conf.addResource(new Path("/home/spark/development/hbase/conf/hbase-site.xml"))
conf.set(TableInputFormat.INPUT_TABLE, table_name)
println("-------------1")
val admin = new HBaseAdmin(conf)
//println(admin.listTables())
println("-------------2")
if (admin.isTableAvailable(table_name)) println("la table existe")
else println("la table n'existe pas")
println("-------------3")
sc.stop()
}
}
Run Code Online (Sandbox Code Playgroud)
HBase的-site.xml中
<configuration>
<property><name>fs.hdfs.impl</name><value>emr.hbase.fs.BlockableFileSystem</value></property>
<property><name>hbase.regionserver.handler.count</name><value>100</value></property>
<property><name>hbase.zookeeper.quorum</name><value>ec2-52-26-***-***.us-west-2.compute.amazonaws.com</value></property>
<property><name>hbase.rootdir</name><value>hdfs://10.0.0.25:9000/hbase</value></property>
<property><name>hbase.cluster.distributed</name><value>true</value></property>
<property><name>hbase.tmp.dir</name><value>/mnt/var/lib/hbase/tmp-data</value></property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
和我得到的信息
15/06/10 12:00:28 INFO ZooKeeper: Client environment:java.io.tmpdir=/tmp …Run Code Online (Sandbox Code Playgroud)