这篇文章给大家介绍怎么进行Zeppelin的原理分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Zeppelin在之前的技术探索里介绍过,是一个想法来源于Jupyter的可视化的Spark/Hive/R分析编程界面。这周想着把一些原来代码中的spark迁到Zeppelin中,主要原因是:
代码中的spark修改运行麻烦: git push, git pull, 编译,打包,运行……,希望可以一键修改运行spark
spark运行结果可视程度差,希望在网页上看到表格和图
希望工程师以外的同事也能运行spark
然而现实是骨感的,本来打算1天做的事情陆陆续续做了4天。现在的Zeppelin还是有太多的小问题,算它识趣,只是v0.6.0,要敢叫V1.0我打死它。
##安装 我是直接在官网下载的all-in-binary的版本。Zeppelin和spark兼容貌似很有问题,最稳妥的办法是下载Zeppelin的源代码,用mvn选择对应的spark/hadoop版本编译。
官网上说
Zeppelin will work with any version of Spark and any deployment type without rebuilding Zeppelin in this way. (Zeppelin 0.5.6-incubating release works up to Spark 1.6.1 )
我信了,最后也确实spark都跑起来了,除了我那逝去的青春。
不过现在Spark已经2.0了哦,可以的话还是自己build吧。
##创建Notebook 一个Notebook相当于一个任务吧,可以分成多个Paragraph。每个Paragraph可以使用不同的interpreter,从而使用不同的语法。
我创建了两个Notebook,一个连接HBase清理数据,一个使用Spark做HBase数据的统计,基本都可以把Java/Scala代码直接往里面拷。
下面这些问题花了挺多时间:
###· 加载Dependency 有三种方式添加依赖包,这里的做法是靠谱的。
z.load()
的那种方式是不建议。
注意0.5.6以及之前的版本是没有这个Interpreter依赖包管理的功能的!
###· Spark连接不上,Can't get status 错误信息大概是 org.apache.zeppelin.interpreter.InterpreterException: org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused
如果其他的设置都正确的话,很有可能是SPARK_HOME没有设置 export SPARK_HOME=你的spark安装地址
一些固定的设置可以写在conf/zeppelin-env.sh
里去。
###·Jackson问题
具体的报错应该是
原因是spark依赖的jackson和zeppelin的冲突了,在Zeppelin的lib目录下吧jackson相关的包删掉就好。 下面有大神更详细的解决办法: Apache Zeppelin & Spark解析Json异常
##最后成果
##同行对比 这篇文章简单的比较了Zeppelin, Spark-notebook和Jupyter。作者的结论是:
只用Scala不用Spark的话可以用jupyter-scala;
要Spark+Scala并且用花哨的Javascript显示的话用spark-notebook;
要用AWS EMR或者其他后台程序的时候选择Zeppelin。
关于怎么进行Zeppelin的原理分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。