我正在寻找一种方法,将一个新的文件系统连接到hadoop中,以测试这个新文件系统相对于hdfs的性能。我是hadoop新手,所以如果我问错了问题,请随时纠正我。如果有用的话,我会用亚马逊的电子病历。
ecfsfe2w1#
另一种方法是使用serviceloader,通过放置一个带有路径的配置文件 META-INF/services/org.apache.hadoop.fs.FileSystem ,并将限定的实现类名作为值,我们可以得到如下所示的文件系统
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
7cwmlq892#
您需要为新文件系统创建一个hadoop文件系统驱动程序。这将是一个扩展 org.apache.hadoop.fs.FileSystem . 这种“司机”的例子是众所周知的 DistributedFileSystem akka 。hdfs和 LocalFilesystem 或者 S3FileSystem 等等,然后你必须注册你的新文件系统的一个方案 core-site.xml ,假设您注册了“gaurav”:
org.apache.hadoop.fs.FileSystem
DistributedFileSystem
LocalFilesystem
S3FileSystem
core-site.xml
<property> <name>fs.gaurav.impl</name> <value>com.package.GauravFileSystem</value> </property>
现在,您可以使用注册的方案引用自己文件系统中的文件: gaurav://somepath/somename . 或者,您可以通过更改 fs.default.name . 您的集群现在应该运行在您自己的文件系统之上(当然,如果一切都是正确的并且工作正常的话)。例如,请参阅hadoop-9629以获取完整hadoop文件系统的示例。
gaurav://somepath/somename
fs.default.name
piv4azn73#
不,hadoop只适用于hdfs。。。mapr正在使用hdfs的另一个版本。但是您可以在dfs上开发自己的mapreduce,并将其与hadoop进行比较。
wrrgggsh4#
是的,你可以在其他文件系统上运行hadoop,它们只需要实现hdfs接口。下面是一个在名为tachyon的新文件系统上运行它的示例。在amazon上,明显的选择是在s3文件系统上运行。虽然不是这方面的Maven,但让文件系统透明地支持hadoop map reduce似乎相对简单,下面是tachyon是如何做到的tachyon filesystem,基本上只是扩展了hadoop filesystem类。
4条答案
按热度按时间ecfsfe2w1#
另一种方法是使用serviceloader,通过放置一个带有路径的配置文件
META-INF/services/org.apache.hadoop.fs.FileSystem
,并将限定的实现类名作为值,我们可以得到如下所示的文件系统例子:https://github.com/grahamar/hadoop-aws/blob/master/src/main/resources/meta-inf/services/org.apache.hadoop.fs.filesystem
7cwmlq892#
您需要为新文件系统创建一个hadoop文件系统驱动程序。这将是一个扩展
org.apache.hadoop.fs.FileSystem
. 这种“司机”的例子是众所周知的DistributedFileSystem
akka 。hdfs和LocalFilesystem
或者S3FileSystem
等等,然后你必须注册你的新文件系统的一个方案core-site.xml
,假设您注册了“gaurav”:现在,您可以使用注册的方案引用自己文件系统中的文件:
gaurav://somepath/somename
. 或者,您可以通过更改fs.default.name
. 您的集群现在应该运行在您自己的文件系统之上(当然,如果一切都是正确的并且工作正常的话)。例如,请参阅hadoop-9629以获取完整hadoop文件系统的示例。
piv4azn73#
不,hadoop只适用于hdfs。。。mapr正在使用hdfs的另一个版本。
但是您可以在dfs上开发自己的mapreduce,并将其与hadoop进行比较。
wrrgggsh4#
是的,你可以在其他文件系统上运行hadoop,它们只需要实现hdfs接口。下面是一个在名为tachyon的新文件系统上运行它的示例。在amazon上,明显的选择是在s3文件系统上运行。
虽然不是这方面的Maven,但让文件系统透明地支持hadoop map reduce似乎相对简单,下面是tachyon是如何做到的tachyon filesystem,基本上只是扩展了hadoop filesystem类。