Skip to main content

诡异的Databricks Delta Lake Table History

分类:  Azure Databricks 标签:  #Databricks #大数据 发布于: 2025-02-16 20:00:33

如果大家对于什么是Databricks Delta Lake Table History还不是太清楚,那么你一定要参考Databricks的官方文档: https://docs.databricks.com/en/delta/history.html, 这篇官方文档里详细的描述了什么是Delta Lake的Table History, 以及主要支持的场景: Time Travel Query。

Read more

使用Azure Databricks Struct Stream存取Azure HDInsight Kafka

分类:  Azure Databricks 标签:  #Databricks #Spark 发布于: 2025-02-15 18:34:02

如果想要使用Azure Databricks Struct Stream存取Azure HDInsight Kafka,需要满足一些必要的条件: Azure HDInsight不允许通过公网存取Kafka服务,客户端或者应用要存取这个服务,必须通过适当的途径连入Azure HDInsight的虚拟网络里。 Azure HDInsight Kafka服务默认情况下不能通过IP地址访问,需要更改它的配置,使得该服务可以通过IP地址进行访问。

Read more

故障排查:开启了Databricks的Table Access Controler之后,Python脚本无法访问外部的数据库了

分类:  故障排查 标签:  #Databricks #大数据 发布于: 2023-08-07 22:14:07

最近遇到一个案例:起初我们是想在Databricks里通过pyodbc访问访问外部的数据,这个简单,写一个脚本,然后把这个脚本放置到集群的初始化脚本里,安装必要的库就行了。脚本如下: #!/bin/sh curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list sudo apt-get update sudo ACCEPT_EULA=Y apt-get install msod

Read more

学习一个Spark内存的管理案例

分类:  Azure Databricks 标签:  #Azure #Databricks 发布于: 2023-06-18 19:56:24

在学习Databricks的内存管理时,我发现在stackoverflow上有一篇非常好的案例,我总结了一下这个案例并分享给大家。 用户场景 用户在本机写了一个Spark的应用。这个应用从本地读取14KB的文本文件,读入Spark之后,然后对这部分数据进行一定的转换操作,最后存储到数据库中。 使用的环境是: 8个Core,16G物理内存。 Java max heap size被设为了12G. 然后用户使用如下的命令提交任务到Spark本地执行:

Read more

Azure Databricks入门 - 概述

分类:  Azure Databricks 标签:  #Azure #入门 #Databricks 发布于: 2023-06-18 19:54:40

我开始学习Azure Databricks的时候遇到的最大困难是没有搞清楚Azure Databicks里面各种各样的名词和概念,这极大的阻碍了我学习该服务的热情和进度。认识到了这个问题之后,我调整了自己的方向,花了一些时间整理了Azure Databricks的基本结构,以及众多的工具和名词,后面再学习这个服务就感觉顺畅了很多,我将这个学习过程记录下来,就有了这个系列的入门文章了。 学习Azure Databricks的时候首先要明确的是Azure Databricks是为谁准备的平台?

Read more

再次深入Databricks内存管理

分类:  Azure Databricks 标签:  #Azure #Databricks 发布于: 2023-06-18 19:52:08

我们之前有一篇文章就用户的案例提及了Databricks的内存管理,我们本章计划再次深入学习一下内存管理。虽然Databricks是基于Spark开发的平台,但是Databricks的部署和用户自己搭建的Spark集群在配置上还是有不一样的地方。 谁在管理内存 所有的Spark应用都是运行在JVM的进程内的,对于JVM来说,它主要是通过GC来管理内存,而GC对于Spark的内存使用模式是一无所知的,也就是说Spark需要自己管理内存。相对于GC, Spark管理的内存其模式相对固定,它管理的内存主要是被分成两大块,Execute Memory和Storage Memory, 同时Spark应用运行时还有一块内存称为保留内存,需要注意的是这块内存并不是由Spark来管理的,而是由JVM

Read more

使用Azure Databricks通过JDBC读入大量数据异常处理(三)理解Databricks中的内存配置

分类:  Azure Databricks 标签:  #Azure #Databricks 发布于: 2023-06-18 19:46:44

在阅读这篇文章之前需要了解用户问题背景,您可以通过如下链接了解到: 我们之前一篇文章学习通过调整JDBC源配置提高并行度来缓解客户的问题,这是个比较好的解决方案,也是我们和Databricks的团队仔细讨论过的方案,是比较稳妥的做法。为了更好的理解客户的问题发生原因,我们还可以从Databricks的内存管理上入手,来讨论和学习如何从内存上缓解类似的问题。 Databricks是基于Spark的云平台,因此在架构上、内存管理上和传统的Spark会有区别,不过组件结构也是由driver和executor组成的,drvier和executor的分工也很明确: driver的主要负责: 创建SparkContext和SparkSession, 并运行用户代码中的main()

Read more

使用Azure Databricks通过JDBC读入大量数据异常处理(二)优化JDBC源配置

分类:  Azure Databricks 标签:  #Azure #Databricks 发布于: 2023-06-18 19:43:36

我们之前的文章介绍了这个用户案例的背景,要学习本章需要认真了解一下背景,您可以通过如下的链接访问:<> 上篇结束时我们谈到过有两个解决方案可以缓解这个问题: 优化客户导入数据的代码,使用JDBC数据源的配置项提升数据导入的并行度,避免发生Out Of Memory这样的问题。 优化集群的配置,调整Spark运行过程中使用到内存环境, 避免发生Out OF Memory的问题。 我们本节来学习和讨论方案一,优化JDBC源配置。 我们可以使用如下的方式来缓解: 优化pushdown query限制数据集,分批次导入数据集。 根据JDBC数据源的配置选项,优化并行配置。 根据JDBC数据源配置选项,配置fetchsize, 优化导入效率。 我们现在来学习这三个方案

Read more