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