delta-lake搏斗记录

delta-lake搏斗记录

——在调试delta-lake的时候遇到大大小小各种可怕并且难以解决的奇怪问题特此记录:


						写在最前面:

delta-lake项目中关于spark,hadoop,delta-core各种相关的版本配置对于新手来说十分头疼,在搜索各类资源之后,他的官方发布网址是开发delta-lake相关内容必备的

		https://github.com/delta-io/delta/releases 

链接

在这个网站中是官方发布的版本历史,相关的版本匹配信息,以及各个版本官方不太详细的使用手册都可以再此找到。
建议使用的是Delta Lake 1.0.0以后,也就是对应Apache Spark 3.1之后,应为在此之后才支持python去安装delta-spark。


一.本地单节点运行中的问题

问题1:

一个容易忘记的环境变量的添加:

当遇到如下问题的时候可以尝试添加以下环境变量解决:
在这里插入图片描述
在添加以下PYSPARK_PYTHON之后可能可以解决:
在这里插入图片描述
可以看到他正常运行拉。

问题2:

No FileSystem for scheme “D”:

这实际上是一个常见的问题,往往能到遇到这个问题的时候离开成功提交第一个作业以及不远了。
在网上有不同的解释,但就此也记录在此贴中。
在提交作业的时候一开始我的写法是:

spark-submit --packages "io.delta:delta-core_2.12:1.0.1" D:/spark/test.py

此时出现报错,经过纠正正确的写法应该是:

spark-submit --packages "io.delta:delta-core_2.12:1.0.1" file:///D:/spark/test.py

为了保险起见在脚本中的路径最好也这样写。

问题3:

在提交的代码中这个所谓的delta-core中到底些什么版本:

在一开始运行作业的时候,由于目前delta-lake相关的可读性较高的新手帖子较少,在装配spark,hadoop等等的时候版本配置研究花费了不少时间。到了提交作业的时候delta-core的版本又成了拦路虎。对此就这个问题进行一个不严谨的解答。
delta-core和spark具有比较强的联系性,在根据官方文档第一次运行delta-lake依赖的spark时候,也就是以下语句(根据spark版本选择一个大概的delta-core去运行,比如spark3.1就改为core_2.12:1.0.0【根据开头的文档选择】)的时候:

pyspark --packages io.delta:delta-core_2.12:2.2.0 --conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" --conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog"

或者之后运行正常的时候,在启动的时候都会出现一个路径(打码部分为用户名):
打码部分为用户名
打开这个路径(C:\Users\用户名.ivy2)可以发现这个文件夹里面有相关的包,似乎下载的内容,或者安装时候自己安装的delta-core就在此处【至于是安装的时候产生的还是第一次运行的时候下载的时候产生的,本人还不是很明确,但显然这些文件是与这个问题相关的】:

在这里插入图片描述
因此使用的时候应该在这些自己有的包中选择,而不是随意网上抄一段带码运行。
比如:可能会搜到的一个教程是教程
其中的提交任务代码是:
在这里插入图片描述
笔者一开始就按这个方式运行,浪费了不少时间。值得一提的是,在交互式运行的时候,也就是pyspark shell命令行方式运行而不是submit方式运行的时候似乎不会对此问题报错。

问题4:

:WARN SparkEnv: Exception while deleting Spark temp dir:
:ERROR ShutdownHookManager: Exception while deleting Spark temp dir:

无论在命令行模式运行或者提交任务方式模式运行的时候,都遇到了这个错误,网络上的解决方案较多,但似乎都比较复杂。
这个错误对代码运行的过程中似乎并没有什么实际的影响,但是对于电脑环境似乎会起到恶化作用。首先在临时文件文件夹(在报错中也会显示,这里是C:\Users\用户名\AppData\Local\Temp)中每运行一次会产生一个关于spark的临时文件,占用储存。
在这里插入图片描述

在这里插入图片描述
此外,当他存储到一定数量的时候似乎会有几率导致pyspark运行失败【具体原因不明】。
目前解决方案是手动删掉,相关比较靠谱的网页链接也附上解决方案1
解决方案2讨论。若网友们有比较简单且可靠的解决方案可在评论区分享以下,tks。


二.虚拟机运行中的问题与记录

Note1:

:首先记录一下在windows单节点上运行成功之后,在linux虚拟机上首次运行的画面

在虚拟机上我用anaconda环境创建了两个虚拟环境,一个是base,另一个是pyspark,这里为了记录利用base(实际时使用了另建立的pyspark环境)环境运行一下来获得首次运行的画面从而记录一下现象:
在这里插入图片描述

----更新中 2023-02-20

学不懂,弃更了(2023-04-09)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值