rddの内容をHbaseテーブルにコピーする簡単なプログラムを実行しようとしています。私はsper-hbase-connectorをnerdammer https://github.com/nerdammer/spark-hbase-connectorで使用しています。私はマシン上のローカルクラスタ上でspark-submitを使ってコードを実行しています。スパークのバージョンは2.1です。 これはTUが実行しようとしたコードi'amである:ここでspark-hbase-connector:ZooKeeperで読み取られたClusterIdがヌルです
import org.apache.spark.{SparkConf, SparkContext}
import it.nerdammer.spark.hbase._
object HbaseConnect {
def main(args: Array[String]) {
val sparkConf = new SparkConf()
sparkConf.set("spark.hbase.host", "hostname")
sparkConf.set("zookeeper.znode.parent", "/hbase-unsecure")
val sc = new SparkContext(sparkConf)
val rdd = sc.parallelize(1 to 100)
.map(i => (i.toString, i+1, "Hello"))
rdd.toHBaseTable("mytable").toColumns("column1", "column2")
.inColumnFamily("mycf")
.save()
sc.stop
}}
は私build.sbtです:私は
17/11/22 10:20:34 INFO ZooKeeperRegistry: ClusterId read in ZooKeeper is null
17/11/22 10:20:34 INFO TableOutputFormat: Created table instance for mytable
:
name := "HbaseConnect"
version := "0.1"
scalaVersion := "2.11.8"
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first}
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.1.0" % "provided",
"it.nerdammer.bigdata" % "spark-hbase-connector_2.10" % "1.0.3")
実行は、以下の情報を示す立ち往生飼い主の問題を識別できません。 HBaseのクライアントは、次の2つのプロパティを使用して、実行中のHBaseクラスタを発見するでしょう:
1.hbase.zookeeper.quorum:飼育係のクラスタ
2.zookeeper.znode.parentに接続するために使用されます。どのzノードがクラスタのデータ(およびHMasterのアドレス)を保持するかを示します。
コード内でこれらの2つのプロパティがオーバーライドされました。
sparkConf.set("spark.hbase.host", "hostname")
sparkConf.set("zookeeper.znode.parent", "/hbase-unsecure")
もう1つの質問は、spark-hbase-connector_2.11がないことです。提供されたバージョンspark-hbase-connector_2.10はscala 2.11をサポートできますか?