在我的机器上,我配置了 hadoopcore-site.xml
以识别该gs://
方案并将 gcs-connector-1.2.8.jar 添加为 Hadoop 库。我可以运行hadoop fs -ls gs://mybucket/
并获得预期的结果。但是,如果我尝试使用以下方法从 java 中进行模拟:
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
FileStatus[] status = fs.listStatus(new Path("gs://mybucket/"));
我在本地 HDFS 中而不是在根目录下获取文件gs://mybucket/
,但这些文件以gs://mybucket
. 如果我在获取 fs 之前修改了 conf conf.set("fs.default.name", "gs://mybucket");
,那么我可以在 GCS 上看到文件。
我的问题是:
1.这是预期的行为吗?
2.相对于谷歌云存储客户端api,使用这个hadoop FileSystem api有什么缺点吗?