Hadoop 从本地计算机上安装了Spark的EMR群集上运行的HBase读取数据
我在EMR集群上运行HBase,我正试图使用Spark从本地计算机访问它上的表 它似乎连接到了zookeeper,但甚至不知道我查找的表是否存在 这是我的代码、hbase-site.xml文件和收到的消息Hadoop 从本地计算机上安装了Spark的EMR群集上运行的HBase读取数据,hadoop,apache-spark,hbase,apache-zookeeper,emr,Hadoop,Apache Spark,Hbase,Apache Zookeeper,Emr,我在EMR集群上运行HBase,我正试图使用Spark从本地计算机访问它上的表 它似乎连接到了zookeeper,但甚至不知道我查找的表是否存在 这是我的代码、hbase-site.xml文件和收到的消息 package org.apache.spark.examples import org.apache.hadoop.fs.Path import org.apache.hadoop.hbase.HBaseConfiguration import org.apache
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()
}
}
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>
fs.hdfs.implemr.hbase.fs.BlockableFileSystem
hbase.regionserver.handler.count100
hbase.zookeeper.quorumec2-52-26-***-***.us-west-2.compute.amazonaws.com
hbase.rootdirhdfs://10.0.0.25:9000/hbase
hbase.cluster.distributedrue
hbase.tmp.dir/mnt/var/lib/hbase/tmp-data
我得到的信息是什么
15/06/10 12:00:28 INFO ZooKeeper: Client environment:java.io.tmpdir=/tmp
15/06/10 12:00:28 INFO ZooKeeper: Client environment:java.compiler=<NA>
15/06/10 12:00:28 INFO ZooKeeper: Client environment:os.name=Linux
15/06/10 12:00:28 INFO ZooKeeper: Client environment:os.arch=amd64
15/06/10 12:00:28 INFO ZooKeeper: Client environment:os.version=3.2.0-67-generic
15/06/10 12:00:28 INFO ZooKeeper: Client environment:user.name=spark
15/06/10 12:00:28 INFO ZooKeeper: Client environment:user.home=/home/spark
15/06/10 12:00:28 INFO ZooKeeper: Client environment:user.dir=/home/spark/projetWordCount
15/06/10 12:00:28 INFO ZooKeeper: Initiating client connection, connectString=ec2-52-26-***-***.us-west-2.compute.amazonaws.com:2181 sessionTimeout=90000 watcher=hconnection-0x7ecf3c090x0, quorum=ec2-52-26-***-***.us-west-2.compute.amazonaws.com:2181, baseZNode=/hbase
15/06/10 12:00:28 INFO ClientCnxn: Opening socket connection to server ec2-52-26-***-***.us-west-2.compute.amazonaws.com/52.26.***.***:2181. Will not attempt to authenticate using SASL (unknown error)
15/06/10 12:00:28 INFO ClientCnxn: Socket connection established to ec2-52-26-***-***.us-west-2.compute.amazonaws.com/52.26.***.***:2181, initiating session
15/06/10 12:00:28 INFO ClientCnxn: Session establishment complete on server ec2-52-26-***-***.us-west-2.compute.amazonaws.com/52.26.***.***:2181, sessionid = 0x14ddc7d70ed0023, negotiated timeout = 90000
-------------2
15/06/10 12:00:28信息ZooKeeper:客户端环境:java.io.tmpdir=/tmp
15/06/10 12:00:28信息ZooKeeper:客户端环境:java.compiler=
15/06/10 12:00:28信息ZooKeeper:客户端环境:os.name=Linux
2010年6月15日12:00:28信息ZooKeeper:客户端环境:os.arch=amd64
2010年6月15日12:00:28信息ZooKeeper:客户端环境:os.version=3.2.0-67-generic
15/06/10 12:00:28信息ZooKeeper:客户端环境:user.name=spark
15/06/10 12:00:28信息ZooKeeper:客户端环境:user.home=/home/spark
15/06/10 12:00:28信息ZooKeeper:客户端环境:user.dir=/home/spark/projetWordCount
15/06/10 12:00:28信息ZooKeeper:正在启动客户端连接,connectString=ec2-52-26-***-***.us-west-2.compute.amazonaws.com:2181 sessionTimeout=90000 watcher=hconnection-0x7ecf3c090x0,quorum=ec2-52-26-***-***.us-west-2.compute.amazonaws.com:2181,baseZNode=/hbase
2010年6月15日12:00:28信息客户端CNXN:打开到服务器ec2-52-26-***-***-***.us-west-2.compute.amazonaws.com/52.26的套接字连接。***:2181。不会尝试使用SASL进行身份验证(未知错误)
2010年6月15日12:00:28信息客户端CNXN:已建立到ec2-52-26-***-***-***.us-west-2.compute.amazonaws.com/52.26的套接字连接。***:2181,正在启动会话
15/06/10 12:00:28信息客户端CNXN:在服务器ec2-52-26-***-***-***.us-west-2.compute.amazonaws.com/52.26上完成会话建立。******:2181,会话ID=0x14ddc7d70ed0023,协商超时=90000
-------------2
然后什么也没发生
那么,有可能做我想做的吗?我的配置哪一部分是错误的 在主机文件上使用了公共IP而不是公共DNS,它在安装了hbase的ec2实例上运行良好,但在Emr clusterLate响应上不起作用,但我想知道您是否在Emr中发现了这一点?我在尝试让Spark连接到位于同一EMR群集上的HBase时遇到了相同的问题。实际上,我正在使用Phoenix与Spark的HBase对话,但还没有找到连接的方法。我遇到了类似的问题,在EC2上从Spark访问HBase(但不使用EMR)。在同一台机器上,从Spark外部运行相同的HBase代码可以正常工作。希望听到任何解决方案。。。