SparkSQL 和局部性
Posted
技术标签:
【中文标题】SparkSQL 和局部性【英文标题】:SparkSQL and locality 【发布时间】:2015-09-09 18:08:38 【问题描述】:我在 hdfs 上使用 sparksql。 每个 hdfs 节点都有一个 spark slave 运行。 当我运行大型查询时,hdfs 似乎正在节点之间发送数据以触发从属服务器。 为什么 HDFS 不使用本地数据服务本地 spark? 所有任务都显示为 ANY 的位置级别。 我什至设置 spark.locality.wait=10000. 有什么遗漏或需要看的吗? 谢谢,
【问题讨论】:
【参考方案1】:Spark 需要在作业中运行之前向 YARN 询问执行程序。因此,yarn 在不知道数据在哪里的情况下为执行程序分配容器。要解决这个问题,您需要告诉 spark 在像这样创建 SparkContext 时要创建哪些文件(假设您使用的是 scala):
val locData = InputFormatInfo.computePreferredLocations(
Seq(new InputFormatInfo(conf, classOf[TextInputFormat], new Path(“myfile.txt”)))
val sc = new SparkContext(conf, locData)
【讨论】:
对不起,我没有提到我在thrify服务器上使用sparksql。以上是关于SparkSQL 和局部性的主要内容,如果未能解决你的问题,请参考以下文章