与Google文件系统中的Hadoop分发文件系统的分布式缓存有什么类似的功能



我已经在Google Compute Engine中部署了一个6节点Hadoop集群

我使用的是Google文件系统(GFS)而不是Hadoop文件分发系统(HFS)。
.所以,我想像HDFS中的分布式缓存方法一样访问GFS中的文件

请告诉我一种以这种方式访问文件的方法。

当在Google Compute Engine上运行Hadoop并将Hadoop的Google Cloud Storage连接器作为"默认文件系统"时,GCS连接器能够以与HDFS完全相同的方式处理,包括在DistributedCache中使用。因此,要访问Google Cloud Storage中的文件,您将以与使用HDFS完全相同的方式使用它,而无需更改任何内容。例如,如果您在部署群集时将 GCS 连接器的CONFIGBUCKET设置为 foo-bucket ,并且您有要放置在分布式缓存中的本地文件,则需要执行以下操作:

# Copies mylib.jar into gs://foo-bucket/myapp/mylib.jar
$ bin/hadoop fs -copyFromLocal mylib.jar /myapp/mylib.jar

在你的Hadoop工作中:

JobConf job = new JobConf();
// Retrieves gs://foo-bucket/myapp/mylib.jar as a cached file.
DistributedCache.addFileToClassPath(new Path("/myapp/mylib.jar"), job);

如果要访问与CONFIGBUCKET不同的存储桶中的文件,只需指定完整路径,使用 gs:// 而不是 hdfs://

# Copies mylib.jar into gs://other-bucket/myapp/mylib.jar
$ bin/hadoop fs -copyFromLocal mylib.jar gs://other-bucket/myapp/mylib.jar

然后在爪哇中

JobConf job = new JobConf();
// Retrieves gs://other-bucket/myapp/mylib.jar as a cached file.
DistributedCache.addFileToClassPath(new Path("gs://other-bucket/myapp/mylib.jar"), job);

最新更新