Spark 是一个非常好的计算平台,支持多种语言,同时基于内存的计算速度也非常快。整个开源社区也很活跃。
但是Spark在易用性上面还是有一些美中不足。 对于刚接触的人来说,上手以及环境搭建还是有一些困难。 另外,如果希望将结果绘制成图表分享给别人,还需要很长一段路程。
目前已经有一些解决方案:
借用别人的一个效果图镇楼^_^
如果您需要的是0.6.0的版本,可以参考上面百度盘的下载链接。
如果您需要的是0.6.1+的版本,可以直接到官网下载, 里面的Mirror下载速度一般还不错
版本: Zeppelin 0.6.0 + 自建Spark集群(1.6.1)
感觉Zeppelin还是不太成熟,并开箱就用,还需要不少人工调整才能正常工作
exportSPARK_HOME=/usr/lib/spark如果是基于Hadoop 或者 Mesos 搭建的Spark 集群,还需要进行另外的设置。
<property>
<name>zeppelin.server.port</name>
<value> 8089 </value>
<description>Server port.</description>
</property>
做完上诉几步之后,就可以启动啦:
启动/停止命令: bin/zeppelin-daemon.sh stop/start
启动之后,打开http://localhost:8089 就可以看到Zeppelin的主界面啦
Spark Interpreter的配置非常简单,可以直接参考下图的配置方式:
Zeppline自带比较详细的Tutorial, 各位看自带的notebook tutorial 可能效果更好。 但是我在第一次使用的时候,遇到了不少坑,在此记录下来,给大家做个参考:
当Zeppelin 提交任务之后,可以看到Spark Master UI 上面,当前任务即使执行完成了,也不会自动退掉
这是因为,Zeppelin 默认就像人手工运行了spark-shell spark://master-ip:7077 一样, 除非手动关闭shell命令,否则会一直占用着资源
解决办法就是将spark 解释器(interpreter) 重启
手动的重启办法:
%python importrequests r = requests.put("http://IP:8089/api/interpreter/setting/restart/2BUDQXH2R") print r.text
比如我们在Spark Master UI 上面将当前job kill 之后,在Zeppelin这边重启执行任务就会遇到这个异常信息。
解决办法很简单: 重启解析器
这是官方明确说明的:scala 的spark-shell 自动初始化了SparkContext / SqlContext 等等
不能自己调用sc.stop() 之后重启创建一个SparkContext
可能笔者水平原因,尝试自己创建新的sc 之后,各种奇奇怪怪的问题
Python Interpreter可以使用当前Zeppelin所在机器的python 所有的model
同时支持python 2 与 python 3
这是一个很有用的功能,比如我使用spark将数据计算完成之后,生成了一个并不太大的csv文件。这个时候完全可以使用Pandas强大的处理能力来进行二次处理,并最终使用Zeppelin的自动绘图能力生成报表
与Tableau之类的BI工具相比功能差了一些,不过各有所长。Zeppelin 对程序员来说可以算是非常方便的一个工具了。 对日常的一些简单报表的工作量大大减小了
在整个Note的最上端,可以设置当前notebook 定期执行。 而且注意: 还可以设置执行完成之后自动重启interpreter 参考下图:
官方网址: http://help.zeppelinhub.com/
这一部分将在下一篇文章之中介绍。敬请期待