Apache Zeppelin-0.9.0安装配置Spark-2.3.3
什么是Apache Zeppelin
图1 Apache Zeppelin的功能 直接上官网图,Apache Zeppelin是一个支持20+种语言的多功能后端,说白了就是一个支持多种语言的开发集成环境,如你写spark一般用linux的spark-shell或者spark-sql,你写python你可能用pycharm,你写flink你可能用flink-shell等,等等,现在好了,有一款可以集成这些所有语言的即时查询环境,你觉得棒不棒?配置好了,用起来确实很香,物极必反,包含的多,坑也多,所以耐心对待哈,主要功能如下:
- 数据抽取(定时调度的慎用,建议用专业的ETL和调度工具)
- 数据挖掘
- 数据转换 (定时调度的慎用,建议用专业的ETL和调度工具)
- 数据分析
- 数据即时查询及可视化
官网:http://zeppelin.apache.org/
讲解版本:0.9.0
下载地址:传送门
安装Zeppelin
下载及解压
其实博主主要时用来写spark,spark-sql以及flink的,因为我忍那个黑框很久了,所以一般我就下载在安装了spark,flink及hdfs的节点上,以下操作以Linux为背景;
#切换到我的软件安装目录tools目录下
cd /data/tools/#创建zeppelin,并进入
mkdir zeppelin
cd zeppelin#下载apache zeppelin 0.9.0,没网的集群可以下载好上传上来也一样
wget https://mirror.bit.edu.cn/apache/zeppelin/zeppelin-0.9.0/zeppelin-0.9.0-bin-all.tgz#解呀apache zeppelin tar包
tar -zxvf zeppelin-0.9.0-bin-all.tgz#解压后该目录下会有folder zeppelin-0.9.0-bin-all
#设置一个软链,方便以后访问及版本升级,,配置环境变量及其它地方引用都用软链路径,以后版本升级只要切换软链即可
ln -sf /data/tools/zeppelin/zeppelin-0.9.0-bin-all current
配置zeppelin-site.xml
zeppelin的配置文件包含在/data/tools/zeppelin/zeppelin-0.9.0-bin-all current/conf/
下,先配置zeppelin-site.xml
;
#不难发现zeppelin-site.xml没有,需要cp出来
cp zeppelin-site.xml.template zeppelin-site.xml#修改zeppelin-site.xml
vim zeppelin-site.xml#将以下属性做修改#zeppelin.server.addr改成该节点的ip或者hostname,因为你可能不在本机器访问zeppelin
<property><name>zeppelin.server.addr</name><value>10.250.19.28</value><description>Server binding address</description>
</property>#默认的8080端口比较常用,改成一个不常用同的且不会和你集群冲突的
<property><name>zeppelin.server.port</name><value>18080</value><description>Server port.</description>
</property>#限制输出数据大小的byte单位,改大点,改到1G吧
<property><name>zeppelin.interpreter.output.limit</name><value>1024000000</value><description>Output message from interpreter exceeding the limit will be truncated</description>
</property>#wq! 保存退出编辑
配置zeppelin-env.sh
zeppelin-env.sh
主要交代一些你需要使用的语言即时查询的HOME
路径,这里以配置Spark为例,前提,需要你集群的spark-shell,spark-sql
,本身是没问题的,不然能成功才怪!
这里采用spark yarn client
模式,其它模式只要更换SPARK_SUBMIT_OPTIONS
参数即可,参数规格可以参考官网Spark Interpreter for Apache Zeppelin或者国人整理的Zeppelin中文文档网;
#zeppelin-env.sh 也是默认不存在的,建议cp出来
cp zeppelin-env.sh.template zeppelin-env.sh#vim zeppelin-env.sh,然后在最后面添加以下组件的home路径
#根据自己的组件路劲来填写,不要乱搞哈,坑死人不偿命!
#根据自己的组件路劲来填写,不要乱搞哈,坑死人不偿命!
#根据自己的组件路劲来填写,不要乱搞哈,坑死人不偿命!export JAVA_HOME=/data/tools/java/jdk1.8.0_211
export SPARK_HOME=/data/tools/spark/current
export HADOOP_HOME=/data/tools/hadoop/current
export HADOOP_CONF_DIR=/data/tools/hadoop/current/etc/hadoop
export SPARK_SUBMIT_OPTIONS="--master yarn --deploy-mode client --executor-memory 8G --executor-cores 5 --num-executors 4 --queue etl"
注意:1.在zeppelin上的每一种语言都有一个自己的Interpreter(你可以称呼它为解释器,解析器,理解就行),每种解释器的配置都不同,对于解释器的配置,可以写在zeppelin-env.sh
,如上配置,也可以配置在等下启动的zeppelin网页上的Interpreter
,如图2;点击然后切换到图3去配置相关属性;区别:写在zeppelin-env.sh
,则全局生效;配置在网页的Interpreter。只有运行代码的时候根据你选择的Interpreter来选择配置,换句话说如果你有两个spark集群,两个spark集群版本还不一样,那你可以在web端配置Interpreter属性,你可以加两个spark的Interpreter出来,不要重名即可,然后代码运行的时候选择你想要的Interpreter;那我这里没有两个spark集群,我就直接写在zeppelin-env.sh
,其它Interpreter也有这个原理,个人建议,如果没有特殊需求,最好配置在zeppelin-env.sh
;坑少!
图2 Interpreter菜单栏
注意:2.Interpreter 的spark
模块,新加一个zeppelin.spark.maxResult=1000000
设置导出的行数为100万吧,这个和之前zeppelin-site.xml
的zeppelin.interpreter.output.limit
属性相互呼应的,也就是说如果zeppelin.interpreter.output.limit
太小,则会截断输出内容,同理,如果输出行数zeppelin.spark.maxResult
太小,也会截断输出内容,只会输出这些行数前的;
图3 配置Interpreter的属性
注意:3.如果zeppelin支持的编程语言的home folder被你设置了环境变量,则zeppelin是会默认使用环境变量的;如图4,因为我python用了环境变量;
图4 python运行效果
而为什么我的Java根目录要重设呢,因为zeppelin-0.9.0有个需要Apache Zeppelin requires either Java 8 update 151 or newer
,如下shell代码,什么意思呢,其实要求jdk 8
,并且8里面的小版本也也要求,不能低于151,所以你看我的重新定义的路径是/data/tools/java/jdk1.8.0_211
,是211小版本;注意哈,大坑来了,改了这里还不够,你要找到/data/tools/zeppelin/current/bin/common.sh
,改掉shell的java根目录,具体代码如图5,请写成自己的满足zeppelin版本的java根目录,当然如果你卸载你jdk,重新装高版本,然后再配置成环境变量,也是没问题的,因为我的是再生产环境有这个瑕疵,我不敢改,怕殃及池鱼;
org.apache.zeppelin.interpreter.InterpreterException: java.io.IOException: Fail to launch interpreter process:
Apache Zeppelin requires either Java 8 update 151 or newerat org.apache.zeppelin.interpreter.remote.RemoteInterpreter.open(RemoteInterpreter.java:134)at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getFormType(RemoteInterpreter.java:298)at org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:433)at org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:75)at org.apache.zeppelin.scheduler.Job.run(Job.java:172)at org.apache.zeppelin.scheduler.AbstractScheduler.runJob(AbstractScheduler.java:130)at org.apache.zeppelin.scheduler.RemoteScheduler$JobRunner.run(RemoteScheduler.java:159)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Fail to launch interpreter process:
Apache Zeppelin requires either Java 8 update 151 or newer
图5 重修改common.sh的java环境变量
如果你不在乎权限,就可以启动Zeppelin了,启动命令如下;
# 切换到zeppelin根目录
cd /data/tools/zeppelin/current# 启动
bin/zeppelin-daemon.sh start# 停止
bin/zeppelin-daemon.sh stop# 重启 本质是先stop再start,该命令不管zeppelin是否在运行都可以使用,不在运行会报 zeppelin is not running
bin/zeppelin-daemon.sh restart
# 出现以下字样,则说明ok,有问题则cd /data/tools/zeppelin/current/logs 查看异常原因
Zeppelin stop [ OK ]
Zeppelin start [ OK ]
打开浏览器,输入在zeppelin-site.xml
配置的网页端口10.250.19.28:18080
,即可出现如图6界面
图6 zeppelin网页无权限界面
配置权限管理shiro.ini
zeppelin-0.9.0不用其它操作,直接编辑shiro.ini
文件;
官网参考文档:Apache Shiro authentication for Apache Zeppelin
# 切换到/data/tools/zeppelin/current/conf
cd /data/tools/zeppelin/current/conf/# cp 出来shiro.ini
cp shiro.ini.template shiro.ini#编辑shiro.ini
vim shiro.ini# 把文件内的shiro.ini的admin打开
#等号前面的是user,等号后面的是密码。可以按你的意愿来修改,建议改改吧,不然只要懂zeppelin的就能猜到你的账号和密码,不好吧[users]
# List of users with their password allowed to access Zeppelin.
# To use a different strategy (LDAP / Database / ...) check the shiro doc at http://shiro.apache.org/configuration.html#Configuration-INISections
# To enable admin user, uncomment the following line and set an appropriate password.
admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2
权限解析:主要是shiro.ini
内的如下数据/api/version
表是查看api的version,这里的api其实就是呼应网页上右上角小倒立三角形展开的内容的权限,如图7,anon
表示所有人都能看,即不需要权限;/api/cluster/address
表示集群地址;authc
表示需要用户名密码权限,就是你上面编辑的,roles[admin]
表示需要admin角色才可以操作,/**
代表所有操作,其它的自己以此类推;
[urls]
# This section is used for url-based security. For details see the shiro.ini documentation.
#
# You can secure interpreter, configuration and credential information by urls.
# Comment or uncomment the below urls that you want to hide:
# anon means the access is anonymous.
# authc means form based auth Security.
#
# IMPORTANT: Order matters: URL path expressions are evaluated against an incoming request
# in the order they are defined and the FIRST MATCH WINS.
#
# To allow anonymous access to all but the stated urls,
# uncomment the line second last line (/** = anon) and comment the last line (/** = authc)
#
/api/version = anon
/api/cluster/address = anon
# Allow all authenticated users to restart interpreters on a notebook page.
# Comment out the following line if you would like to authorize only admin users to restart interpreters.
/api/interpreter/setting/restart/** = authc
/api/interpreter/** = authc, roles[admin]
/api/notebook-repositories/** = authc, roles[admin]
/api/configurations/** = authc, roles[admin]
/api/credential/** = authc, roles[admin]
/api/admin/** = authc, roles[admin]
#/** = anon
/** = authc
图7 权限配置含义
更多的权限配置请参考官网的权限页,还有其它类型的权限认证,这里就不一一解释了;
启动Zeppelin
启动指令如下;
# 切换到zeppelin根目录
cd /data/tools/zeppelin/current# 启动
bin/zeppelin-daemon.sh start# 停止
bin/zeppelin-daemon.sh stop# 重启 本质是先stop再start,该命令不管zeppelin是否在运行都可以使用,不在运行会报 zeppelin is not running
bin/zeppelin-daemon.sh restart
# 出现以下字样,则说明ok,有问题则cd /data/tools/zeppelin/current/logs 查看异常原因
Zeppelin stop [ OK ]
Zeppelin start [ OK ]# jps一下守护进程,如下
jps
12956 ZeppelinServer
配置好权限认证的zeppelin网页如下图8;之前的右上角anonymous
任何人能登录变成了Login
,点击Login
弹出账号密码界面图9,根据你配置的账号密码输入后进入开始使用;
图8 权限认证后的zeppelin网页首页
图9 账号权限登录
Apache Zeppelin-0.9.0安装配置Spark-2.3.3到此为止,下一篇讲述spark和sparksql及python在Apache Zeppelin的基本使用Apache Zeppelin支持Spark,python的小试牛刀;
Apache Zeppelin-0.9.0安装配置Spark-2.3.3相关推荐
- WSL 2.0+LAMP+WordPress 安装配置
长流程WSL2.0+LAMP+WordPress 安装配置 不少小网站跑的WordPress,网上共享空间或者VPS又是Linux系统,所以自己在Windows上搭个仿真的坏境当练手十分好玩.笔者大感 ...
- mysql8.0.17压缩包安装教程_mysql 8.0.16 压缩包安装配置方法图文教程
本文为大家分享了mysql 8.0.16 压缩包安装配置方法,供大家参考,具体内容如下 运行环境:windows 10 x64 1.下载zip安装包: mysql8.0 for windows zip ...
- 新版mysql的下载教程_Mysql最新版8.0.21下载安装配置教程详解
一.下载 1.下载安装包 mysql下载路径:https://dev.mysql.com/downloads/file/?id=496745 2.解压压缩包 解压到安装的目录: 3.在此目录下新建my ...
- mysql 8.0.24版本安装配置方法图文教程
文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 本文记录了mysql 8 ...
- mysql 8.0.28版本安装配置方法图文教程
mysql 8.0.28版本安装配置方法图文教程 从 Mysql 官网下载 mysql 下载完成后直接双击进行安装,打开后的页面如下所示: 选择自定义custom,接着下一步 将MySQL Serve ...
- 最新版spark1.1.0集群安装配置
和分布式文件系统和NoSQL数据库相比而言,spark集群的安装配置还算是比较简单的: 很多教程提到要安装java和scala,但我发现spark最新版本是包含scala的,JRE采用linux内嵌的 ...
- hadoop2.2.0 集群安装配置
本集群由6台虚拟机组成,全部安装centos6.4的32位系统. 一.前期工作 1.修改Linux主机名 2.修改IP 3.修改主机名和IP的映射关系 4.关闭防火墙 5.ssh免登陆 6.安装JDK ...
- win8mysql安装教程zip_mysql 8.0.18.zip安装配置方法图文教程(windows 64位)
关于卸载以前安装版的数据库,大家可以参考一下这篇文章. 卸载前记住一定要记得复制保留以前的数据,安装版的数据是在 mysql5.7所有安装版本卸载教程,建议:大家卸载完一定要重启一下. 目录 1.先去 ...
- Android Studio 1.0 苹果电脑安装配置
前言 近日Google终于不负众望,发布了期待已久的Android Studio 1.0正式版.小编自己是Android开发者,之前使用过Eclipse,也试用过Android Studio 0.x版 ...
- OpenCV4.0+VS2017完整安装配置过程(详细!)
刚步入研究生生活,老师要求安装OpenCV+VS,所以昨天捣鼓了下,成功''吃鸡''.所以今天写下昨天安装的过程,也便自己对此印象更加深刻. 一.下载安装VS2017 我安装的版本是目前最新的Visu ...
最新文章
- android将拦截短信通过邮箱发送,网易邮箱Android客户端推出 加速布局移动互联网...
- PP模块: 最简单的混合生产方式
- ESP32cam蓝牙模块与arduino uno通信实验
- Form表单中的元素 控件集
- mysql周报内容范文_Mysql各种表格查询含实例,日报,周报,月报,时间差自动计算...
- jzoj3348,bzoj3258-秘密任务【最短路,网络流最小割】
- 【贪心】【AOJ-02】Home Work
- 滴滴回应司机冲撞路人:将积极配合警方调查
- bilibili缓存文件在哪里_Android——bilibili缓存视频合并教程[2.1]
- 杨强教授团队权威专著《联邦学习》问世,展现数据孤岛和数据保护难题破解之法
- ubuntu18.04设置开机自启动的脚本
- 简单易懂的Android ROM定制与修改教程
- mysql5.7如何打开,mysql57怎么打开
- Atitit 文件存储标准化api 总结 目录 1. 操作系统,进行操作	1 1.1. FileUtils类的应用	1 1.2. 各大api 比较	2 2. Java。Io用apache的commo
- 华为轮值董事长郭平:美国在5G方面已落后
- eplan2.7在win10安装教程
- 3dmax局部渲染变黑原因及解决方法
- ESPRIT 2019初学到走心机编程视频教程
- 怎么给图片添加水印?教你一键添加水印
- 模拟电子电路(1)——概论
热门文章
- java assetmanager_Android学习--Assets资源文件读取及AssetManager介绍
- Python Console报错:Cannot start process, the working directory does not exist
- 关于NodeJs的npm、nrm、nvm
- 扫描识别系统能干些什么?
- 18关不了机 ubuntu_Ubuntu关机卡住无法关机如何解决?
- 天气预报接口,在自己的网页上加入天气预报吧
- React的ajax请求(简略版)
- uniapp苹果手机上传头像不显示,打开调试生效
- 苹果隐藏app_升级iOS14没?来教你一个隐藏功能
- scau 8616 汽车拉力比赛