Created 06-23-2016 08:32 PM
I am trying to connect to HBase from Spark via Phoenix (using the official plugin described here).
Here is my scala Spark code:
package com.zachk import org.apache.spark.SparkContext import org.apache.spark.sql.SQLContext import org.apache.phoenix.spark._ import org.apache.spark.rdd.RDD object App { def main(args : Array[String]) { val sc = new SparkContext() val rdd: RDD[Map[String, AnyRef]] = sc.phoenixTableAsRDD( //"TABLE1", Seq("ID", "COL1"), zkUrl = Some("zk1-titanu:2181/hbase-unsecure") //"TABLE1", Seq("ID", "COL1"), zkUrl = Some("zk1-titanu:2181/hbase-secure") "TABLE1", Seq("ID", "COL1"), zkUrl = Some("zk1-titanu:2181") ) println(rdd.count()) }
I am compiling with Maven.
I am running with this spark-submit command:
/usr/bin/spark-submit --class com.zachk.App --master local[*] target/phoenix-hbase-test-0.0.1-jar-with-dependencies.jar
When I run, I get this error continually: ERROR ConnectionManager$HConnectionImplementation: The node /hbase is not in ZooKeeper. It should have been written by the master. Check the value configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master.
As shown in the comments above, I have already tried the suggestion in this similarly-named post. I would appreciate any help!
Created 06-23-2016 08:36 PM
The problem is in missing colons in the URLs you tried. It's supposed to be "zk1-titanu:2181:/hbase-unsecure"
Created 06-23-2016 08:32 PM
The zkUrl you provided the first time should be correct:
"zk1-titanu:2181/hbase-unsecure"
By default, HBase on HDP will use /hbase-unsecure. If you enable Kerberos authentication, it will use /hbase-secure instead.
Created 06-23-2016 08:42 PM
You're missing a ':' after 2181
Created 06-23-2016 08:36 PM
The problem is in missing colons in the URLs you tried. It's supposed to be "zk1-titanu:2181:/hbase-unsecure"
Created 06-23-2016 08:39 PM
The functions `phoenixTableAsDataFrame`, `phoenixTableAsRDD` and `saveToPhoenix` all support optionally specifying a `conf` Hadoop configuration parameter with custom Phoenix client settings, as well as an optional `zkUrl` parameter for the Phoenix connection URL.
val configuration = new Configuration()
// set zookeeper.znode.parent and hbase.zookeeper.quorum in the conf
"TABLE1", Seq("ID", "COL1"), conf = configuration