如何在GCE中装载bucket并使其可用于R Studio-Server

bprjcwpo  于 2023-02-01  发布在  其他
关注(0)|答案(3)|浏览(152)

我已经安装了一个Google Compute Engine(GCE)示例,我想在上面挂载一个Google Cloud Bucket。基本上,我已经将数据上传到Google Cloud,我想让它在我的示例中安装的R Studio服务器上可用。看起来我的挂载成功了,但是我在R上(或shell中)看不到数据。
我希望bucket安装在/home/roberto/remote中。我运行了chmod 777 /home/roberto/remote,然后运行了gcsfuse my-project /home/roberto/remote。我得到了以下输出:

2023/01/28 22:49:01.004683 Start gcsfuse/0.41.12 (Go version go1.18.4) for app "" using mount point: /home/roberto/remote
2023/01/28 22:49:01.022553 Opening GCS connection...
2023/01/28 22:49:01.172583 Mounting file system "my-project"...
2023/01/28 22:49:01.176837 File system has been successfully mounted.

但是,当我运行ls时,或者当我从R Studio-server查看/home/roberto/remote内部时,我看不到它内部的任何内容(见下图)。
更新:我已经上传了我的文件夹到谷歌云,但是当我上传一个单独的文件时,它突然出现了!这让我认为这个问题与implicit directories有关。假设,如果我运行与以前相同的命令,并带有--implicit-dirs标志,这就足够了(类似于:gcsfuse --implicit-dirs my-project /home/roberto/remote)。但是,这将返回一个错误消息,我不知道如何处理它。
错误信息:

2023/01/29 01:33:15.428752 Start gcsfuse/0.41.12 (Go version go1.18.4) for app "" using mount point: /home/roberto/remote
2023/01/29 01:33:15.446696 Opening GCS connection...
2023/01/29 01:33:15.548211 Mounting file system "my-project"...
daemonize.Run: readFromProcess: sub-process: mountWithArgs: mountWithConn: Mount: mount: running /usr/bin/fusermount3: exit status 1
k3bvogb1

k3bvogb11#

尝试将存储的VM Cloud API访问作用域编辑为"完全"。
请按照以下步骤操作:
1.单击/选择虚拟机示例
1.停止VM示例,然后编辑VM示例。
1.向下滚动到访问范围并选择"为每个API设置访问权限"
1.将存储从只读更改为完整。
1.保存并启动VM示例。
然后通过SSH连接到您的虚拟机示例并尝试ls /home/roberto/remote

qni6mghb

qni6mghb2#

根据您的问题,这里的其他答案可能有用。在我的情况下,真正解决这个问题的是运行命令gcsfuse --implicit-dirs my-project /home/roberto/remote。我在编辑我的问题时得到的错误是由于我之前安装了bucket,并且试图在没有先卸载它的情况下再次安装它(这里是关于如何卸载bucket的官方文档).有关--implicit-dirs标志重要性的更多细节,请查看这里的官方文档.有非常相似的解决方案使用,例如,/etc/fstab文件。为此,请查看gcsfuse官方github页面中的discussion

omjgkv6w

omjgkv6w3#

尝试运行带有调试标志的gcsfuse mount命令,这将有助于了解装载失败的原因。例如:gcsfuse --隐式目录--调试熔丝--调试gcs --调试http我的项目/主页/roberto/远程

相关问题