首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >星火如何选择运行w.r.tHDFS的位置

星火如何选择运行w.r.tHDFS的位置
EN

Stack Overflow用户
提问于 2016-05-17 07:11:50
回答 1查看 124关注 0票数 2

当我开始使用大数据技术时,我了解到基本规则是“移动代码,而不是数据”。但我意识到我不知道它是如何工作的:火花如何知道在哪里移动代码?

我在这里讲的是第一步,例如:阅读一个分布式文件和几个地图操作。

  1. 在hdfs文件的情况下,如何知道实际的数据部分在哪里?工作中的工具/协议是什么?
  2. 取决于资源管理器(独立的-火花/纱线/mesos),情况是否不同?
  3. hbase/hive之类的hdfs存储应用程序呢?
  4. 如果它们运行在同一台机器(如kafka)上,那么其他分布式存储又如何呢?
  5. 除了火花,类似的分布式引擎,如风暴/flink,也是一样的吗?

编辑

对于卡桑德拉+火花,(专用的)连接器似乎管理着这个数据局部性:https://stackoverflow.com/a/31300118/1206998

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-17 12:10:00

1) Spark询问Hadoop如何将输入文件分发到拆分中(这是对拆分的另一个很好的解释),并将拆分转换为分区。检查星火的NewHadoopRDD代码

代码语言:javascript
复制
override def getPartitions: Array[Partition] = {
  val inputFormat = inputFormatClass.newInstance
  inputFormat match {
    case configurable: Configurable =>
      configurable.setConf(_conf)
        case _ =>
      }
    val jobContext = newJobContext(_conf, jobId)
    val rawSplits = inputFormat.getSplits(jobContext).toArray
    val result = new Array[Partition](rawSplits.size)
    for (i <- 0 until rawSplits.size) {
      result(i) = new NewHadoopPartition(id, i, rawSplits(i).asInstanceOf[InputSplit with Writable])
    }
  result
}

2)事实并非如此。它依赖于文件的Hadoop InputFormat。

3)相同。

4)机制类似,例如,KafkaRDD实现将Kafka分区映射为一对一的火花分区。

( 5)我相信他们使用的机制是相同的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37269435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档