Skip to main content

Azure Databricks入门 - 认识一下Databricks的数据对象

分类:  Azure Databricks 标签:  #基础 #Azure #大数据 #入门 发布于: 2023-08-07 20:46:28

Unity Catalog: 是下一代由databricks开发的元数据管理服务,目前还是在public preview,还不能用于正式生产,而且Azure China也不支持。这个服务将数据对象分为三个级别:catalog.database.table。 hive metastore: 目前应用成熟的元数据服务,直接使用了Hive的服务。在Databricks中,每个集群的节点上都会安装一个Hive metastore的客户端,这些客户端都会链接到Control panel的Hive Meta store服务上,在Azure Databricks中,后端默认是Azure Database for MySQL。

Read more

Azure Databricks入门 - 认识一下DBFS

分类:  Azure Databricks 标签:  #Azure #基础 #入门 发布于: 2023-07-27 9:54:28

Databricks File System简称DBFS, 在Databricks的部署中,它是一个分布式文件系统,是基于云的文件系统,为Spark计算引擎提供统一文件存取接口,这主要体现在如下几个方面: DBFS是跟随Worksapce的,一个Workspace共享一个根DBFS文件系统。 每个在Workspace里启动的集群都会自动挂载DBFS到根目录/dbfs 通过DBFS文件系统mount进入到workspace的其他对象存储都严格的限制在DBFS的mnt下 无论什么云对象存储系统通过DBFS的mount过来之后,都是可以直接简单的使用文件操作命令进行操作,例如Azure Storage Data Lake或者AWS S3等等。 另外需要注意的是DBFS有几个特殊的根目

Read more

Azure Databricks入门 - 创建一个worksapce并安装Databricks CLi

分类:  Azure Databricks 标签:  #Azure #基础 #入门 发布于: 2023-07-27 9:48:18

我们前面的文章简单的介绍了什么Azure Databricks, 在开始其他的内容学习之前,我们要先创建一个Azure Databricks的workspace,并安装好databricks cli。 请先准备好一个Azure账号,如果你还没有Azure账号,那么请按照这个链接申请一个免费的Azure账号: 创建Azure Databricks 使用你的Azure账户登录到Azure Portal之后,从左侧的菜单上选择创建新资源,然后搜索Databricks:

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