tl;dr 在 Hadoop HDFS 上存储要由 Spark 应用程序处理的文件,Spark 执行程序将被告知如何访问它们。
来自HDFS Users Guide:
本文档是使用 Hadoop 分布式文件系统 (HDFS) 作为 Hadoop 集群的一部分或作为独立的通用分布式文件系统的用户的起点。
HDFS 集群主要由管理文件系统元数据的 NameNode 和存储实际数据的 DataNode 组成。
因此,HDFS 是一个仅仅是文件系统,您可以使用它来存储文件并在分布式应用程序中使用它们,包括。 Spark 应用程序。
令我惊讶的是,只有在 HDFS Architecture 中,您才能找到 HDFS URI,即 hdfs://localhost:8020/user/hadoop/delete/test1,它是属于用户 hadoop 的资源 delete/test1 的 HDFS URL。
以hdfs 开头的 URL 指向一个 HDFS,在上面的示例中由位于 localhost:8020 的 NameNode 管理。
这意味着 HDFS 不需要 Hadoop YARN,但通常一起使用,因为它们结合在一起并且一起使用很简单。
从客户端提交应用程序时,我是否需要手动将数据放在我的从节点上?如何指定从哪里读取数据?
Spark 支持带或不带 Hadoop YARN 的 Hadoop HDFS。 cluster manager(又名 主 URL)是 HDFS 的正交关注点。
总结一下,只需使用hdfs://hostname:port/path/to/directory with 即可访问 HDFS 上的文件。