Hadoop - Zeppelin 使用心得

简介:

1.概述

  在编写 Flink,Spark,Hive 等相关作业时,要是能快速的将我们所编写的作业能可视化在我们面前,是件让人兴奋的时,如果能带上趋势功能就更好了。今天,给大家介绍这么一款工具。它就能满足上述要求,在使用了一段时间之后,这里给大家分享以下使用心得。

2.How to do

  首先,我们来了解一下这款工具的背景及用途。Zeppelin 目前已托管于 Apache 基金会,但并未列为顶级项目,可以在其公布的 官网访问。它提供了一个非常友好的 WebUI 界面,操作相关指令。它可以用于做数据分析和可视化。其后面可以接入不同的数据处理引擎。包括 Flink,Spark,Hive 等。支持原生的 Scala,Shell,Markdown 等。

2.1 Install

  对于 Zeppelin 而言,并不依赖 Hadoop 集群环境,我们可以部署到单独的节点上进行使用。首先我们使用以下地址获取安装包:

http://zeppelin.incubator.apache.org/download.html
  这里,有2种选择,其一,可以下载原文件,自行编译安装。其二,直接下载二进制文件进行安装。这里,为了方便,笔者直接使用二进制文件进行安装使用。 这里有些参数需要进行配置,为了保证系统正常启动,确保的 zeppelin.server.port 属性的端口不被占用,默认是8080,其他属性大家可按需配置即可。[ 配置链接]

2.2 Start/Stop

  在完成上述步骤后,启动对应的进程。定位到 Zeppelin 安装目录的bin文件夹下,使用以下命令启动进程:



./zeppelin-daemon.sh start

  若需要停止,可以使用以下命令停止进程:



./zeppelin-daemon.sh stop

  另外,通过阅读 zeppelin-daemon.sh 脚本的内容,可以发现,我们还可以使用相关重启,查看状态等命令。内容如下:

case "${1}" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload)
    stop
    start
    ;;
  restart)
    stop
    start
    ;;
  status)
    find_zeppelin_process
    ;;
  *)
    echo ${USAGE}

3.How to use

  在启动相关进程后,可以使用以下地址在浏览器中访问:



http://<Your_<IP/Host>:Port>

  启动之后的界面如下所示:

  该界面罗列出插件绑定项。如图中的 spark,md,sh 等。那我如何使用这些来完成一些工作。在使用一些数据引擎时,如 Flink,Spark,Hive 等,是需要配置对应的连接信息的。在 Interpreter 栏处进行配置。这里给大家列举一些配置示例:

3.1 Flink

  可以找到 Flink 的配置项,如下图所示:

 

  然后指定对应的 IP 和地址即可。

3.2 Hive

  这里 Hive 配置需要指向其 Thrift 服务地址,如下图所示:

  另外,其他的插件,如 Spark,Kylin,phoenix等配置类似,配置完成后,记得点击 “restart” 按钮。

3.3 Use md and sh

  下面,我们可以创建一个 Notebook 来使用,我们拿最简单的 Shell 和 Markdown 来演示,如下图所示:

3.4 SQL

  当然,我们的目的并不是仅仅使用 Shell 和 Markdown,我们需要能够使用 SQL 来获取我们想要的结果。

3.4.1 Spark SQL

  下面,我们使用 Spark SQL 去获取想要的结果。如下图所示:

  这里,可以将结果以不同的形式来可视化,量化,趋势,一目了然。

3.4.2 Hive SQL

  另外,可以使用动态格式来查询分区数据,以"${partition_col=20160101,20160102|20160103|20160104|20160105|20160106}"的格式进行表示。如下图所示:

3.5 Video Guide

  另外,官方也给出了一个快速指导的入门视频,观看地址:[入口]

4.总结

  在使用的过程当中,有些地方需要注意,必须在编写 Hive SQL 时,%hql 需要替换为 %hive.sql 的格式;另外,在运行 Scala 代码时,如果出现以下异常,如下图所示:

  解决方案,在 zeppelin-env.sh 文件中添加以下内容:

export ZEPPELIN_MEM=-Xmx4g

  该 BUG 在 0.5.6 版本得到修复,参考码:[ZEPPELIN-305]

5.结束语

  这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
目录
相关文章
|
12月前
|
机器学习/深度学习 编解码 自然语言处理
深入BERT内核:用数学解密掩码语言模型的工作原理
BERT通过掩码语言建模(MLM)实现双向语言理解,随机遮蔽15%的词并预测,结合Transformer的自注意力与多头机制,利用上下文信息生成深层语义表示。其数学设计如√d_k缩放、80-10-10掩码策略和交叉熵优化,显著提升模型性能,奠定现代NLP基础。
754 8
|
Rust JavaScript 前端开发
[oeasy]python075_什么是_动态类型_静态类型_强类型_弱类型_编译_运行
本文探讨了编程语言中的动态类型与静态类型、强类型与弱类型的概念。通过实例分析,如Python允许变量类型动态变化(如`age`从整型变为字符串),而C语言一旦声明变量类型则不可更改,体现了动态与静态类型的差异。此外,文章还对比了强类型(如Python,不允许隐式类型转换)和弱类型(如JavaScript,支持自动类型转换)的特点。最后总结指出,Python属于动态类型、强类型语言,对初学者友好但需注意类型混淆,并预告下期内容及提供学习资源链接。
509 21
|
SQL 监控 关系型数据库
深入解析MySQL死锁:原因、检测与解决方案
深入解析MySQL死锁:原因、检测与解决方案
|
Linux 应用服务中间件 nginx
Linux 进程管理基础
Linux 进程是操作系统中运行程序的实例,彼此隔离以确保安全性和稳定性。常用命令查看和管理进程:`ps` 显示当前终端会话相关进程;`ps aux` 和 `ps -ef` 显示所有进程信息;`ps -u username` 查看特定用户进程;`ps -e | grep &lt;进程名&gt;` 查找特定进程;`ps -p &lt;PID&gt;` 查看指定 PID 的进程详情。终止进程可用 `kill &lt;PID&gt;` 或 `pkill &lt;进程名&gt;`,强制终止加 `-9` 选项。
331 3
|
存储 安全 网络安全
解析企业邮箱迁移:从技术到策略的完全指南
公司邮箱迁移是业务连续性和数据安全的关键步骤。涉及数据加密、安全存储和密钥管理,确保转移过程中的完整性与机密性。迁移应尽量减少对业务影响,通过IMAP/POP协议实现无缝转移。以Zoho Mail为例,需开启服务,获取授权码,设置转移,选择内容,填写原邮箱信息,最后验证数据。迁移前后注意备份和问题解决,确保顺利进行。
770 0
|
运维 监控 安全
关于云成本管理和优化 FinOps,你需要知道的一切
FinOps 是一种云成本管理和优化的解决方案,并为组织、企业、团队提供了系统化的方法论,其中每个人都应该对自己的云资源成本负责。
关于云成本管理和优化 FinOps,你需要知道的一切
|
Java Linux Maven
Acitiviti7基本使用-1、启动默认引擎
Acitiviti7基本使用-1、启动默认引擎
292 0
|
算法
算法系列--动态规划--回文子串系列(下)
算法系列--动态规划--回文子串系列(下)
211 0
两种俄罗斯方块的记分规则
在实现俄罗斯方块游戏的得分处理时,我上网查找了一下关于俄罗斯方块游戏得分计算的相关内容,但是,并没有找到能够简单清晰的解决我的问题的内容。
529 0
|
机器学习/深度学习 人工智能 算法
大型语言模型教会智能体进化,OpenAI这项研究揭示了二者的互补关系
大型语言模型教会智能体进化,OpenAI这项研究揭示了二者的互补关系
406 0