我有一个客户端应用程序,我需要使用spark-sql远程执行spark上的查询。我能够从spark-shell中做到这一点但是如何从基于scala的客户端应用程序远程执行它们。 我尝试了以下代码:
val conf = new SparkConf().set("spark.shuffle.blockTransferService", "nio").setMaster("spark://master:port").setAppName("Query Fire").set("spark.hadoop.validateOutputSpecs", "true")
.set("spark.local.dir", "/tmp/spark-temp")
.set("spark.driver.memory", "4G").set("spark.executor.memory", "4G")
val spark = SparkContext.getOrCreate(conf)
我尝试过提供默认端口7077,但它没有打开。我有一个基于cloudera的火花装置,似乎没有独立运行火花。
当我尝试给出yarn resourcemanager端口8042时,我运行代码的错误如下:
16/09/16 20:14:36 WARN TransportChannelHandler:例外 来自/192.168.0.171:8042的连接java.io.IOException:Connection 在sun.nio.ch.FileDispatcherImpl.read0(本机方法)上由peer重置
有没有办法解决这个问题,通过jdbc客户端远程调用spark-sql,就像我们可以为Hive查询做的那样?