当Spark遇上Zeppelin

本文探讨如何在Zeppelin中利用Spark进行交互式数据分析。通过Spark SQL处理CSV数据,创建临时表,进行数据探索,定义UDF,以及讨论资源配置。文章介绍了Zeppelin的基本概念,使用方法,以及Spark在Zeppelin中的工作原理。
摘要由CSDN通过智能技术生成

本文原先发表在GitChat上面,现在(2020/03/14)冻结时间(一年)已过,这里将其拉回博客。

随着数据时代和 AI 时代的到来,几乎所有的企业都在建设自己的大数据系统。为了提高数据处理能力,突破单机在计算与资源上的瓶颈,诸如 Hadoop、Spark、Flink 等分布式计算框架和基于 HDFS 的分布式存储系统成为大多数选择。实际工作中,大部分时间我们都在研发、部署和维护批处理、流处理程序,完成相应的业务需求,但是相信很多人都遇到过这样的事情:

  • 需要对一批数据做探索性分析,所谓探索性即尚且没有明确的思路,需要不断的尝试,这时你无法形成完整方案写到代码文件、打包、正式部署。
  • 临时有个任务需要验证一下,特别针对研发人员,你为这个任务写个正式代码文件、打包、部署显然过于繁琐,并且很多线上环境是不允许随便传代码的。

这里的问题就是,如何在分布式计算框架之上实现交互式运行代码? Notebook 显然成为首选。Notebook 是一类基于 Web 的交互式数据分析工具,比较流行的有 Jupyter、Zeppelin 等。Jupyter 是基于 Python 的,前身是 IPython,在单机数据分析上表现非常优异,特别是结合 pandas 库。而 Zeppelin 则以插件的形式对大多数分布式计算引擎提供了友好的支持,尤其是 Spark。

本文重点探讨Spark with Zeppelin,即在 Zeppelin 中通过 Spark 计算引擎进行交互式数据分析。文章假定读者对 Spark 已经有一定的认知,主要围绕 Zeppelin 展开,由浅入深包含以下几方面:

  • 介绍 Zeppelin 的基本概念
  • 介绍如何在 Zeppelin 中通过 Spark 进行数据分析
  • 探讨如何为 Zeppelin 下的 Spark 配置资源
  • 探讨 Zeppelin 与 Spark 进行交互的原理

需要说明的是,笔者使用的测试环境为 AWS EMR 5.20.0(Spark 2.4.0 + Zeppelin 0.8.0)。


基本概念

Zeppelin 的核心概念可归为两类:一类与执行引擎相关&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值