【发布时间】:2023-04-09 02:18:01
【问题描述】:
我有一个 spark 作业(用 Scala 编写),它从另一台服务器上的 HBase 表中检索数据。为了做到这一点,我首先像这样创建HBaseContext:
val hBaseContext:HBaseContext = new HBaseContext(sparkContext, HBaseConfiguration.create())
当我运行 spark 作业时,我使用 spark-submit 并指定所需的参数。像这样的:
spark-submit --master=local[*] --executor-memory 4g --executor-cores 2 --num-executors 2 --jars $(for x in `ls -1 ~/spark_libs/*.jar`; do readlink -f $x; done | paste -s | sed -e 's/\t/,/g') --class com.sparksJob.MyMainClass myJarFile.jar "$@"
问题是它连接到 localhost 上的 zookeeper,但是我希望它连接到另一台服务器(HBase 所在的那个)上的 zookeeper。
硬编码此信息有效:
val configuration: Configuration = new Configuration()
configuration.set("hbase.zookeeper.quorum", "10.190.144.8")
configuration.set("hbase.zookeeper.property.clientPort", "2181")
val hBaseContext:HBaseContext = new HBaseContext(sparkContext, HBaseConfiguration.create(configuration))
但是我希望它是可配置的。
如何指定 spark-submit 到要使用的 hbase-site.xml 文件的路径?
【问题讨论】:
-
你能通过 scala 应用参数传递 zookeeper quorum 和 port 吗?
-
除了 Ted Malaska git repo 之外,您从哪个 JAR 文件中获得了 HBaseContext ..我找不到这个类 ..您能否分享您的 SBT 或 POM 文件,这将非常有帮助..github.com/tmalaska/SparkOnHBase
-
您找到解决方案了吗?我遇到了同样的问题
标签: scala apache-spark hbase