flinksql on zeppelin安装及使用

zeppelin简介

	Flink SQL的默认开发方式是通过Java/Scala API编写,与纯SQL化、平台化的目标相去甚远。目前官方提供的FlinkSQL Client仅能在配备Flink客户端的本地使用,局限性很大。而Ververica开源的Flink SQL Gateway组件是基于REST API的,仍然需要二次开发才能供给上层使用,并不是很方便。
	鉴于有很多企业都无法配备专门的团队来解决Flink SQL平台化的问题,那么到底有没有一个开源的、开箱即用的、功能相对完善的组件呢?答案就是本文的主角——Apache Zeppelin。
	Zeppelin是基于Web的交互式数据分析笔记本,支持SQL、Scala、Python等语言。Zeppelin通过插件化的Interpreter(解释器)来解析用户提交的代码,并将其转化到对应的后端(计算框架、数据库等)执行,灵活性很高。

zeppelin安装

1.下载zeppelin-0.9.0-bin-all.tgz

https://apache.website-solution.net/zeppelin/zeppelin-0.9.0/zeppelin-0.9.0-bin-all.tgz
https://mirror-hk.koddos.net/apache/zeppelin/zeppelin-0.9.0/zeppelin-0.9.0-bin-all.tgz

2.解压zeppelin-0.9.0-bin-all.tgz

tar -zxvf zeppelin-0.9.0-bin-all.tgz 

3.修改zeppelin配置文件:conf 文件夹下面的 zeppelin-site.xml 和 zeppelin-env.sh

cp zeppelin-site.xml.template zeppelin-site.xml
vi zeppelin-site.xml

<!-- 服务地址。默认为127.0.0.1,改为0.0.0.0使得可以在外部访问 -->
<property>
  	<name>zeppelin.server.addr</name>
 	<value>0.0.0.0</value>
 	<description>Server binding address</description>
</property>

<!-- 服务端口。默认为8080,如果已占用,可以修改之 -->
<property>
	<name>zeppelin.server.port</name>
	<value>18080</value>
	<description>Server port.</description>
</property>

cp zeppelin-env.sh.template zeppelin-env.sh
vi zeppelin-env.sh

# JDK目录
export JAVA_HOME=/opt/jdk1.8.0_172
# Hadoop配置文件目录
export HADOOP_CONF_DIR=/etc/hadoop/hadoop-conf

3.至此,最基础的配置就完成了。

运行bin/zeppelin-daemon.sh start命令,返回Zeppelin start [ OK ]的提示之后,
就可以访问<服务器地址>:18080,表示Zeppelin服务启动成功。

4.进一步配置,生产也可以使用,修改完重启zeppelin。

	<!-- 将Notebook repo更改为HDFS存储 -->
<property>
	<name>zeppelin.notebook.storage</name>
	<value>org.apache.zeppelin.notebook.repo.FileSystemNotebookRepo</value>
	<description>Hadoop compatible file system notebook persistence layer implementation, such as local file system, hdfs, azure wasb, s3 and etc.</description>
	</property>

<!-- Notebook在HDFS上的存储路径 -->
<property>
	<name>zeppelin.notebook.dir</name>
	<value>/zeppelin/notebook</value>
	<description>path or URI for notebook persist</description>
</property>

<!-- 启用Zeppelin的恢复功能。当Zeppelin服务挂掉并重启之后,能连接到原来运行的Interpreter -->
<property>
	<name>zeppelin.recovery.storage.class</name>
	<value>org.apache.zeppelin.interpreter.recovery.FileSystemRecoveryStorage</value>
	<description>ReoveryStorage implementation based on hadoop FileSystem</description>
</property>

<!-- Zeppelin恢复元数据在HDFS上的存储路径 -->
<property>
	<name>zeppelin.recovery.dir</name>
	<value>/zeppelin/recovery</value>
	<description>Location where recovery metadata is stored</description>
</property>

flinksql on zeppelin

环境:

		flink 1.12.2
		hadoop 3.0.0
		hive 2.1.1
		zeppelin 0.9.0

配置flink interpreter

配置Interpreter 有以下2种方式(通常情况下我们需要结合这两种配置方式):

在Interpreter 页面进行全局配置
在Note页面进行Note级别的配置

1.Interpreter 页面配置

打开zeppelin界面,点击用户,找到 interpreter菜单:
在这里插入图片描述
点击首页用户名区域菜单中的Interpreter,搜索flink,就可以看到参数列表:
在这里插入图片描述
首先,将Interpreter Binding模式修改为Isolated per Note,如下图所示:
在这里插入图片描述

在这种模式下,每个Note在执行时会分别启动Interpreter进程,类似于Flink on YARN的Per-job模式,最符合生产环境的需要。

需要配置的参数:
Flink on YARN参数

FLINK_HOME:Flink 1.12.2所在的目录;
HADOOP_CONF_DIR:Hadoop配置文件所在的目录;
flink.execution.mode:Flink作业的执行模式,指定为yarn以启用Flink on YARN;
flink.jm.memory:JobManager的内存量(MB);
flink.tm.memory:TaskManager的内存量(MB);
flink.tm.slot:TaskManager的Slot数;
flink.yarn.appName:YARN Application的默认名称;
flink.yarn.queue:提交作业的默认YARN队列。

Hive Integration参数

HIVE_CONF_DIR:Hive配置文件(hive-site.xml)所在的目录;
zeppelin.flink.enableHive:设为true以启用Hive Integration;
zeppelin.flink.hive.version:Hive版本号。

复制与Hive Integration相关的依赖到$FLINK_HOME/lib目录下,包括:

flink-connector-hive_2.11-1.12.2.jar
hive-exec-2.1.1.jar

2.Note级别配置:

	Note 级别的配置只有在当Interpreter binding模式选择 Isolated Per Note的时候才起作用。
Note 级别的配置一般放在每个Note的第一个Paragraph,是通过一个特殊的 Inline Configuration 
Interpreter (%flink.conf) 来实现的。
	一般每个Note都有自己对应的Job和场景,我们需要对每个Note做特殊的配置,比如 
flink.execution.packages, flink.udf.jars, flink.yarn.appName 等等。Note级别的配置优先
级比 Interpreter的全局配置要高,所以比如你可以在Note配置 FLINK_HOME 来覆盖Interpreter
页面里配置的 FLINK_HOME。下图是一个简单的例子:	

在这里插入图片描述

3.测试Flink SQL on Zeppelin

创建一个Notebook,Interpreter指定为flink。然后写入Paragraph,通常第一个是job configuration:
接下来创建第二个:
最后运行即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据湖填坑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值