【问题标题】:Specify hbase-site.xml to spark-submit指定 hbase-site.xml 到 spark-submit
【发布时间】:2023-04-09 02:18:01
【问题描述】:

我有一个 spark 作业(用 Scala 编写),它从另一台服务器上的 HBase 表中检索数据。为了做到这一点,我首先像这样创建HBaseContextval 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


【解决方案1】:

您可以将 hbase-site.xml 作为 --files 选项的参数传递。您的示例将变为:

spark-submit  --master yarn-cluster --files /etc/hbase/conf/hbase-site.xml --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 "$@"

注意 master 设置为 yarn-cluster。任何其他选项都会使 hbase-site.xml 被忽略。

【讨论】:

  • 我尝试了上述选项,但仍然无法连接到 HBase,但在本地模式下工作正常...
  • 您运行的是哪个 Spark 版本?您使用什么作为 --master 的值?
猜你喜欢
  • 2017-07-02
  • 1970-01-01
  • 2020-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多