我想使用Apache YARN作为集群和资源管理器来运行一个框架,在该框架中,资源将在同一框架的不同任务之间共享。我想使用自己的分布式堆外文件系统。
是否可以将任何其他分布式文件系统与YARN一起使用 HDFS以外的其他?
如果是,需要实施哪些HDFS API?
答案 0 :(得分:12)
这里有一些不同的问题
是的:这是LinkedIn过去使用http:// downloads来部署Samza的方式。 Samza不需要集群文件系统,因此集群中没有运行hdfs,只有本地文件://文件系统,每个主机一个。
需要群集文件系统的应用程序无法在此类群集中运行。
是
对于“文件系统”是什么,请查看Filesystem Specification。您需要跨文件系统的一致视图:新创建文件列表(),找不到已删除的文件,立即可见更新。并且文件和目录的rename()必须是原子操作,理想情况下是O(1)。它用于原子提交工作,检查点,......哦,对于HBase,需要append()。
MapR这样做,Redhat与GlusterFS; IBM和EMC为他们的。请记住,几乎所有东西都在HDFS上进行测试;你最好希望其他群集FS已经完成了测试(或者有人为他们做过测试,例如Hortonworks或Cloudera)。
这取决于FS是否提供一致的文件系统视图,而不是某些最终的一致性世界视图。 HBase是真正的考验。
嗯,你当然可以尝试!
首先让所有文件系统合同测试工作,这将测量基本的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(以及您要使用的其他服务)。