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)

delta-lake搏斗记录相关推荐

  1. 实战 | 利用Delta Lake使Spark SQL支持跨表CRUD操作

    转载自  实战 | 利用Delta Lake使Spark SQL支持跨表CRUD操作 供稿 | eBay ADI-Carmel Team 作者 | 金澜涛 编辑 | 顾欣怡 本文7309字,预计阅读时 ...

  2. 【详谈 Delta Lake 】系列技术专题 之 特性(Features)

    简介: 本文翻译自大数据技术公司 Databricks 针对数据湖 Delta Lake 的系列技术文章.众所周知,Databricks 主导着开源大数据社区 Apache Spark.Delta L ...

  3. 阿里云 EMR Delta Lake 在流利说数据接入中的架构和实践

    简介: 为了消灭数据孤岛,企业往往会把各个组织的数据都接入到数据湖以提供统一的查询或分析.本文将介绍流利说当前数据接入的整个过程,期间遇到的挑战,以及delta在数据接入中产生的价值. 背景 流利说目 ...

  4. 湖仓一体技术调研(Apache Hudi、Iceberg和Delta lake对比)

    湖仓一体技术调研(Apache Hudi.Iceberg和Delta lake对比) 作者:程哥哥.刘某迎 .杜某安.刘某.施某宇.严某程 1 引 言 ​ 随着当前的大数据技术逐步革新,企业对单一的数 ...

  5. 使用 Jupiter Notebook 运行 Delta Lake 入门教程

    作者:吴威,花名无谓,阿里巴巴高级技术专家,2008年加入阿里巴巴集团,先后在B2B和阿里云工作,一直从事大数据和分布式计算相关研究,作为主要开发和运维.人员经历了阿里内部大数据集群的上线和发展壮大, ...

  6. 全面介绍数砖开发 Delta Lake 的第一篇论文

    今年八月,Delta Lake 的第一篇论文发布了,我当时写了个总体介绍:Delta Lake 第一篇论文发布了,感兴趣的朋友可以先看总体介绍,再来详细了解一下本篇论文.因为篇幅较长,全文超3万字,建 ...

  7. Delta Lake - 走进 Databricks

    今天笔者带大家走进 Databricks,基于 Databricks Cloud 社区版本进行实验,并在 Databricks Notebook 中对 Delta Lake 商业版本进行实战操作. D ...

  8. 【详谈 Delta Lake】系列专题 之 基础和性能 - 02 深入理解事务日志 / 如何使用Schema约束和演变...

    译者 韩宗泽(棕泽),阿里云计算平台事业部技术专家,负责开源大数据生态企业团队的研发工作 前言 本文翻译自大数据技术公司 Databricks 针对数据湖 Delta Lake 系列技术文章.众所周知 ...

  9. 数据湖揭秘—Delta Lake

    01 DeltaLake 简介 Delta Lake 是 DataBricks 公司开源的.用于构建湖仓架构的存储框架.能够支持 Spark,Flink,Hive,PrestoDB,Trino 等查询 ...

最新文章

  1. 推荐一款 Flutter Push 推送功能插件
  2. 译:Spring Boot 自动伸缩
  3. js监听select值变化_网络编程——C++实现socket通信(TCP)高并发之select模式
  4. 云炬Android开发教程0 jdk下载与安装教程(小白)
  5. 【译】 Google: Still in The Search 搜索巨人Google的伟大转变 (四)
  6. 一个墙纸还可以改变使用裁剪工具改变图像
  7. nginx 配置优化详解
  8. C语言——输出9*9口诀
  9. 安装JDK,如何配置PATH,如何配置CLASSPATH
  10. 特斯拉被踢出致命车祸调查组:提前披露信息,涉嫌把责任推向车主
  11. 关于echart 图表自适应问题的解决办法
  12. linux mysql优化_Linux上跑MySQL优化技巧
  13. 收藏的关于开发的一些东西
  14. 联想拯救者Y9000P安装ubuntu22.04和安装anaconda教程
  15. 利用selenium框架爬取京东省市区数据时,网页里面内嵌的一个窗口遇到的NoSuchElementException的 bug,原因是iframe
  16. vue中的混入mix
  17. 大学生必知到的外国典故
  18. UItraEdit激活码
  19. 微信小程序模板信息【详】
  20. 七个好用且免费的在线代码编辑器,你喜欢哪个?

热门文章

  1. Python实现音乐的剪辑
  2. 每日英语--Week15
  3. 聊聊老歌----胎王小齐
  4. 【java】jdb调试java代码
  5. 傲骨外表下的时尚宠儿——山茶花
  6. ESP8266配网并将IP显示至oled液晶屏 ESP8266远程连接服务器控制灯或继电器
  7. 6-5 使用函数求余弦函数的近似值 (15分)
  8. 土方量测量比以前快3倍,而且精度惊人
  9. TensorFlow——热身运动:简单的线性回归
  10. unity3d循环滑动_Unity3D中如何用代码实现物体的左右循环移动?