什么是Zeppelin?
简而言之,就是一个大数据分析平台。用户可以利用提供好的WEB UI,在线编写分析逻辑代码,输出结果,并且能够利用可视化工具,形象生动的在线展示结果。
基础知识
notebook:是一个自己的工作环境,可以在notebook中执行大数据分析的逻辑,可以配置interpreter,可以设置权限等。基本上所有web上的操作都会在一个notebook中进行
interpreter:是zeppelin的核心概念-解析器,zeppelin通过解析器(interpreter)将用户输入转换为后台服务命令。具体原理请自行查阅资料。
Zeppelin安装
直接通过zeppelin官网。我下载的是包括了所有interpreter的压缩包
下载完成之后,解压然后运行(unix platform):bin/zeppelin-daemon.sh start
这个时候你就能访问8080端口来访问zeppelin服务了
接入spark on yarn集群
接入spark on yarn非常简单,只用在conf/zeppelin-env.sh中加入两个配置即可
master是zeppelin底层调用spark的参数,熟悉利用命令行通过spark提交任务的朋友应该比较熟悉:$SPARK_HOME/bin/spark-submit --class package.SparkStudy --master yarn-cluster ./wordcount.jar some_params
上面这个命令是shell下利用spark提交任务到yarn上的最简单的方式(只指出了运行模式,jar包以及运行的class,其他参数全部默认,也不包含输入输出),其中master就是我们在zeppelin中设置的master,zeppelin并不支持yarn-cluster,所以我们选择yarn-lient。SPARK_HOME就是本地的SPARK根目录。设置好之后,就可以重启zeppelin了。
下面就可以利用zeppelin在线调用我的spark on yarn集群了
下面利用python脚本生成需要处理的数据:
该脚本随机生成了10亿个0~99的随机数,下面将利用zeppelin分析该数据,完成一个统计工作,看看python随机数是否均衡。数据生成完之后,利用命令将数据保存在hdfs当中(hdfs dfs -put local-data dfs-dir)。
此时我们已经拥有了数据,下面就开始直接在zeppelin上进行分析吧
使用zeppelin:
首先访问8080端口,然后新建一个note
点击创建Note进入到一下页面
下面就可以在输入框中编写逻辑代码了,默认使用spark(创建note的时候有配置过)
下面我直接给出结果的截图:
我总共提交了三块代码,分别是spark和2个sparkSQL的代码
最终第三块的sparkSQL是对这10亿数字分配在0~99里的总误差,可以发现总误差非常非常小,说明python的random.randint还是非常均匀的。
注意:
1. zeppelin架在spark on yarn上,用的是yarn-client模式,所以AM会在本机启动
2. 请确保自己的spark on yarn没有有问题
3. 在生成10亿数据时,应该采用xrange(10亿),而不是range(10亿),一个小细节,懂python的应该知道。
4. zeppelin还支持很多的interpreter,以上流程只介绍了spark和sparksql,大家可以自己研究一下,使用各种解析器完成分析工作。
PS:如果文中有错误的地方,请各位大神指点一下,本人菜鸟很多东西不甚了解,谢谢
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。