在谷歌云上创建集群

Posted

技术标签:

【中文标题】在谷歌云上创建集群【英文标题】:creation of a cluster on google cloud 【发布时间】:2018-12-03 15:41:37 【问题描述】:

我不得不使用谷歌云集群分析数据集。 我在谷歌云平台上创建了一个存储桶,并创建了一个计算机集群,我将我想要分析的数据移到了存储桶中(我亲自检查了它是否存在)。 我现在必须为我的集群创建一个 ssh 隧道,我通过运行以下代码来做到这一点:

%%bash    
#!/bin/bash
NODE="cluster-west1b-m"
ZONE="europe-west1-b"
PORT=8080
PROJ="myfirstproject09112018"   

gcloud compute ssh $NODE \
--project=$PROJ \
--zone=$ZONE -- -fN -L $PORT:localhost:$PORT 

完成此操作后,我去了 localhost:8080,在这里我打开了一个 python 笔记本,并导入了一些 spark 库:

from pyspark.sql import functions as F
from pyspark.sql import types as T
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()
sc = spark.sparkContext

然后我想读取我的文件,因此我尝试运行:

natality = spark.read.csv('gs://storage-eu-west-luchino/natality/natality*.csv',header=True,inferSchema=True)

但是它告诉我他找不到文件,但是文件在桶里所以我不明白问题出在哪里,错误基本上是这个:

Py4JJavaError: An error occurred while calling o61.csv.
: java.io.IOException: No FileSystem for scheme: gs

有人知道为什么这不起作用吗? 我实在想不通问题

【问题讨论】:

【参考方案1】:

Spark 不理解开箱即用的gs:// 协议,因此出现此错误:

没有用于方案的文件系统:gs

相反,您可以执行以下任何操作:

Download the file 或 fetch it as a string 与 google-cloud-storage 库 Install the Cloud Storage Connector

【讨论】:

我没有完全理解,我试图在我的集群的 Jupiter notebook 中导入 blob 库,我从该集群中连接了一个 ssh 隧道,但是给出了一个错误,说 google.cloud库没有安装,你会建议直接使用 spark 而不是 python?而且加密密钥是我必须创建的,或者是我可以从谷歌云平台检索的东西? 是的,您需要安装 google-cloud-storage 软件包。请参阅this link,获取有关如何设置存储桶身份验证的指南。 感谢它现在可以工作了!原始代码不起作用的事实可能是因为我使用的是 Mac 书吗?因为原始代码来自我的数据库教授,并且在他的 PC 上运行良好,或者只是他省略了他可能在他的 PC 上的包的部分代码而我没有? 看起来可以安装第三方连接器,以便 Spark 可以处理 GCS 文件。我已经更新了我的问题,另请参阅 https://***.com/q/46659757 和 https://***.com/q/27782844

以上是关于在谷歌云上创建集群的主要内容,如果未能解决你的问题,请参考以下文章

在谷歌云平台部署python脚本

如何在谷歌云上正确托管 node.js 应用程序?

使用 python 在谷歌云存储桶中创建文件夹

在谷歌云上的 bash 中获取正确的 $HOME 目录

我们可以在谷歌云 ubuntu vm 实例中使用 xampp 作为在线服务器吗

在谷歌云上运行 nohup 后 Chromedriver 关闭