您现在的位置是:首页 > 文章详情

Spark-数据分析可视化Zeppelin

日期:2016-04-25点击:440

官网介绍

Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化。背后可以接入不同的数据处理引擎,包括Spark, hive, tajo等,原生支持scala, Java, shell, markdown等。它的整体展现和使用形式和Databricks Cloud是一样的。

安装

其他组件都是好安装的,直接mvn install是没问题的。 而且zeppelin-web项目,里面使用了node, grunt, bower这些前端的工具。可以自己源码编译也可以使用二进制包直接使用。目前官网最新的版本是0.5.6版本,支持spark1.5和hadoop2.x版本。
自己编译:
- 安装好node, grunt, bower

 brew install npm npm install -g node
  • 修改pom
<plugin> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <version>0.0.23</version> <executions> <execution> <id>install node and npm</id> <goals> <goal>install-node-and-npm</goal> </goals> <configuration> <nodeVersion>v0.10.18</nodeVersion> <npmVersion>1.3.8</npmVersion> </configuration> </execution> <execution> <id>npm install</id> <goals> <goal>npm</goal> </goals> </execution> <execution> <id>bower install</id> <goals> <goal>bower</goal> </goals> <configuration> <arguments>--allow-root install</arguments> </configuration> </execution> <execution> <id>grunt build</id> <goals> <goal>grunt</goal> </goals> <configuration> <arguments>--no-color --force</arguments> </configuration> </execution> </executions> </plugin>
  • 进入zeppelin-web目录下,执行 npm install。它会根据package.json的描述安装一些grunt的组件,安装bower,然后再目录下生产一个node_modules目录。
  • bower –alow-root install,会根据bower.json安装前端库依赖
  • grunt –force,会根据Gruntfile.js整理web文件
  • mvn install -DskipTests,把web项目打包,在target目录下会生成war
    需要在pom.xml里添加:
 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webXml>app\WEB-INF\web.xml</webXml> </configuration> </plugin>

到此处就已经编译完成了。

测试

  • 配置
    在zeppelin parent目录下,修改conf文件夹里的zeppelin-env.sh和zeppelin-site.xml,可以是默认配置,但要把两个文件原本的无效后缀去掉。

  • zeppelin parent目录下执行

bin/zeppelin-daemon.sh start
  • 漂亮主页
    这里写图片描述
    zeppelin parent目录下会看到一个notebook文件夹,按notebook的名字命名区分了多个子目录。目录下是一个note.json文件,记录了每个notebook里输入的代码和执行结果,启动的时候会加载起来。

  • 编码
    使用的是scala,notebook,可以直接写scala代码
    标识%md, %sh, %sql, %spark, %hive, %tajo来区分要执行的是什么
    这里写图片描述

和spark整合

进入tutorial notebook,它里面已经写好了例子:

import sys.process._ // sc is an existing SparkContext. val sqlContext = new org.apache.spark.sql.SQLContext(sc) val zeppelinHome = ("pwd" !!).replace("\n", "") val bankText = sc.textFile(s"$zeppelinHome/data/bank-full.csv") case class Bank(age: Integer, job: String, marital: String, education: String, balance: Integer) val bank = bankText.map(s => s.split(";")).filter(s => s(0) != "\"age\"").map( s => Bank(s(0).toInt, s(1).replaceAll("\"", ""), s(2).replaceAll("\"", ""), s(3).replaceAll("\"", ""), s(5).replaceAll("\"", "").toInt ) ).toSchemaRDD bank.registerTempTable("bank")

这里写图片描述

总结

apache zeppelin分布式计算、数据分析从业者,代码量少,模块很清楚,可以尝试接入不同计算引擎,试试任务运行、可视化效果。没有过多复杂的操作,只是区分了多个notebook,每个notebook里做单独的分析处理工作,流程和结果会被保存下来。此外,为spark做了更好的支持,比如默认是scala环境,默认sc已经创建好,即spark local可跑,默认spark sql有可视化效果。
Publish
Zeppelin provides an URL to display the result only, that page does not include Zeppelin’s menu and buttons. This way, you can easily embed it as an iframe inside of your website.
这里写图片描述

原文链接:https://yq.aliyun.com/articles/232693
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章