我可以用hadoop插入不同的dfs而不是hdfs吗?

ct3nt3jp  于 2021-06-02  发布在  Hadoop
关注(0)|答案(4)|浏览(309)

我正在寻找一种方法,将一个新的文件系统连接到hadoop中,以测试这个新文件系统相对于hdfs的性能。我是hadoop新手,所以如果我问错了问题,请随时纠正我。如果有用的话,我会用亚马逊的电子病历。

ecfsfe2w

ecfsfe2w1#

另一种方法是使用serviceloader,通过放置一个带有路径的配置文件 META-INF/services/org.apache.hadoop.fs.FileSystem ,并将限定的实现类名作为值,我们可以得到如下所示的文件系统

FileSystem.get(new URI("{SCHEME}://" + "{VALUE}" + "/"), conf)

例子:https://github.com/grahamar/hadoop-aws/blob/master/src/main/resources/meta-inf/services/org.apache.hadoop.fs.filesystem

7cwmlq89

7cwmlq892#

您需要为新文件系统创建一个hadoop文件系统驱动程序。这将是一个扩展 org.apache.hadoop.fs.FileSystem . 这种“司机”的例子是众所周知的 DistributedFileSystem akka 。hdfs和 LocalFilesystem 或者 S3FileSystem 等等,然后你必须注册你的新文件系统的一个方案 core-site.xml ,假设您注册了“gaurav”:

<property>
  <name>fs.gaurav.impl</name>
  <value>com.package.GauravFileSystem</value>
</property>

现在,您可以使用注册的方案引用自己文件系统中的文件: gaurav://somepath/somename . 或者,您可以通过更改 fs.default.name . 您的集群现在应该运行在您自己的文件系统之上(当然,如果一切都是正确的并且工作正常的话)。
例如,请参阅hadoop-9629以获取完整hadoop文件系统的示例。

piv4azn7

piv4azn73#

不,hadoop只适用于hdfs。。。mapr正在使用hdfs的另一个版本。
但是您可以在dfs上开发自己的mapreduce,并将其与hadoop进行比较。

wrrgggsh

wrrgggsh4#

是的,你可以在其他文件系统上运行hadoop,它们只需要实现hdfs接口。下面是一个在名为tachyon的新文件系统上运行它的示例。在amazon上,明显的选择是在s3文件系统上运行。
虽然不是这方面的Maven,但让文件系统透明地支持hadoop map reduce似乎相对简单,下面是tachyon是如何做到的tachyon filesystem,基本上只是扩展了hadoop filesystem类。

相关问题