Apache YARN可以在没有HDFS的情况下使用吗?

时间:2017-03-02 08:06:29

标签: apache hadoop yarn hadoop2

我想使用Apache YARN作为集群和资源管理器来运行一个框架,在该框架中,资源将在同一框架的不同任务之间共享。我想使用自己的分布式堆外文件系统。

  1. 是否可以将任何其他分布式文件系统与YARN一起使用 HDFS以外的其他?

  2. 如果是,需要实施哪些HDFS API?

  3. 运行YARN需要哪些Hadoop组件?

5 个答案:

答案 0 :(得分:12)

这里有一些不同的问题

您可以使用YARN使用S3之类的东西部署应用程序来传播二进制文件吗?

是的:这是LinkedIn过去使用http:// downloads来部署Samza的方式。 Samza不需要集群文件系统,因此集群中没有运行hdfs,只有本地文件://文件系统,每个主机一个。

需要群集文件系统的应用程序无法在此类群集中运行。

您是否可以使用备用文件系统启动YARN群集?

对于“文件系统”是什么,请查看Filesystem Specification。您需要跨文件系统的一致视图:新创建文件列表(),找不到已删除的文件,立即可见更新。并且文件和目录的rename()必须是原子操作,理想情况下是O(1)。它用于原子提交工作,检查点,......哦,对于HBase,需要append()。

MapR这样做,Redhat与GlusterFS; IBM和EMC为他们的。请记住,几乎所有东西都在HDFS上进行测试;你最好希望其他群集FS已经完成了测试(或者有人为他们做过测试,例如Hortonworks或Cloudera)。

您是否可以使用对象库作为底层FS来启动YARN群集。

这取决于FS是否提供一致的文件系统视图,而不是某些最终的一致性世界视图。 HBase是真正的考验。

  1. Microsoft Azure存储是一致的,具有获得对FS位的独占访问权限并且重命名()的速度非常快。在Azure中,它完全取代了HDFS。
  2. Google云存储于2017年3月1日宣布GCS提供一致性。也许它现在可以用作替代品;没有经验。
  3. Amazon EMR确实提供了s3作为替代品,使用(a)发电机用于一致的元数据,以及(b)做可怕的事情让HBase工作。
  4. ASF自己的S3客户端S3a不能用作替代品。我们团队的工作重点是读写perf作为数据的来源和最终目的地;在s3guard中添加发电机层并在s3guard提交器中,能够将其用作高性能工作目的地(在避免重命名()的同时适应故障)。
  5. 您正在编写的新分布式文件系统是否可以用作HDFS的替代?

    嗯,你当然可以尝试!

    首先让所有文件系统合同测试工作,这将测量基本的API合规性。然后查看所有进行系统集成的Apache Bigtop测试。我建议你避免使用HBase&最初,Accumulo专注于:Mapreduce,Hive,spark,Flink。

    不要害怕加入Hadoop common-dev& bigtop列出并提出问题。

答案 1 :(得分:2)

Here's the interface you have to implement,密切关注您必须支持的保证。 There's a utility to test the contracts.如果你需要一个例子,Hadoop中有很多不同的filsystems实现,例如S3 / AzureBlobs / FTP作为一个很好的起点。

您可以按类配置文件系统实现,所有组件都应该尊重fs.defaultFS as the configuration key

答案 2 :(得分:0)

是的,您可以提供支持HDFS API的文件存储实现。

例如您可以使用AWS S3(s3n://或s3a://)代替HDFS。很少有其他支持HDFS API的文件系统。

答案 3 :(得分:-1)

Yarn不仅是分布式集群的资源管理器。 Apache Mesos是类似纱线的资源管理器(但内部技术不同)。并且它不依赖于hadoop组件。在企业云下,已经有很多用途,如dc / os(由mesos,docker等组成)

答案 4 :(得分:-1)

YARN可以在没有HDFS的情况下使用。您不必配置和启动HDFS服务,因此它将在没有HDFS的情况下运行。

但是如果没有Hadoop,你就无法安装YARN。您必须下载Hadoop并仅配置YARN(以及您要使用的其他服务)。