在Google Colab中安装Spark时遇到tar解压错误求助
解决Google Colab中Spark安装的tar文件找不到问题
嘿,这个问题我见得挺多的——你看到的tar: Cannot open: No such file or directory错误,本质是之前的wget命令没成功下载到Spark压缩包,大概率是因为你用的那个Apache镜像链接已经失效了。毕竟Spark 2.2.1是好几年前的旧版本,很多镜像站会清理掉旧版本的资源。
给你两个可行的解决方案,按需选择:
方案一:修复旧版本的下载链接
Apache官方有个归档服务器,会长期保留所有旧版本的软件包,把你的wget链接换成这个归档地址就行:
# 安装Java(这一步没问题,不用改) !apt-get install openjdk-8-jdk-headless -qq > /dev/null # 替换为Apache归档的可靠链接 !wget -q https://archive.apache.org/dist/spark/spark-2.2.1/spark-2.2.1-bin-hadoop2.7.tgz # 解压文件 !tar xf spark-2.2.1-bin-hadoop2.7.tgz # 安装findspark !pip install -q findspark
方案二:升级到较新的Spark版本(更推荐)
Spark 2.2.1实在太老了,不仅有安全漏洞,和Colab的最新环境兼容性也可能出问题。建议换成稳定的3.x版本,比如Spark 3.3.2,适配Hadoop 3.2,步骤更完整(别忘了设置环境变量,这是很多人漏的关键步骤):
# 安装Java !apt-get install openjdk-8-jdk-headless -qq > /dev/null # 下载Spark 3.3.2稳定版 !wget -q https://archive.apache.org/dist/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz # 解压 !tar xf spark-3.3.2-bin-hadoop3.tgz # 安装findspark !pip install -q findspark # 设置环境变量,让系统找到Spark和Java import os os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64" os.environ["SPARK_HOME"] = "/content/spark-3.3.2-bin-hadoop3" # 初始化Spark import findspark findspark.init()
简单说下原因:你原来用的http://apache.osuosl.org镜像可能已经移除了旧版本的Spark包,而archive.apache.org是官方的归档仓库,所有旧版本资源都会长期保存,所以用这个链接不会再出现下载失败的问题。另外,设置环境变量是必须的,不然findspark没法定位到Spark的安装目录,后续初始化Spark也会报错。
内容的提问来源于stack exchange,提问作者Prasoon Parashar
相关产品推荐
相关产品推荐

