[原]Apache Zeppelin安装及介绍

标签: | 发表时间:2015-05-23 23:46 | 作者:zbf8441372
出处:http://blog.csdn.net/zbf8441372

背景

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

Mac OS上安装

目前github上,zeppelin版本是0.5.0,没用预先编译好的包提供下载。安装文档: http://zeppelin.incubator.apache.org/docs/install/install.html

其他组件都是好安装的,直接mvn install是没问题的。
我安装的时候唯一不太熟悉的就是zeppelin-web项目,里面使用了node, grunt, bower这些前段的工具。

我的经验是,修改zeppelin-web项目的pom.xml,把这部分脚本单独走一遍,

  <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>

安装顺序:
1. 首先需要提前安装好npm和node。 brew install npm和npm install -g node。
2. 进入zeppelin-web目录下,执行 npm install。它会根据package.json的描述安装一些grunt的组件,安装bower,然后再目录下生产一个node_modules目录。
3. 执行 bower –alow-root install,会根据bower.json安装前段库依赖,有点类似于java的mvn。见 http://bower.io/
4. 执行 grunt –force,会根据Gruntfile.js整理web文件。
5. 最好执行 mvn install -DskipTests,把web项目打包,在target目录下会生成war。

mvn可能会出错,因为web.xml不在默认路径下,需要在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

就可以在 localhost:8080 访问到zepplin主页了。如果没有出主页,可以看浏览器console,是缺少了什么文件,八成是web项目打包的时候漏了,很可能是bower和grunt命令执行的时候缺少依赖出错的。

主界面为
这里写图片描述

zeppelin parent目录下会看到一个notebook文件夹,按notebook的名字命名区分了多个子目录。目录下是一个note.json文件,记录了每个notebook里输入的代码和执行结果,启动的时候会加载起来。

功能

进入页面上的notebook,可以直接写scala代码,
这里写图片描述

通过标识%md, %sh, %sql, %spark, %hive, %tajo来区分要执行的是什么,默认不写的话,执行环境是scala。在 http://127.0.0.1:8080/#/interpreter 页面里有详细的参数说明。

我还随手试了几个:
这里写图片描述

非常酷。

此外,zeppelin为spark sql做了可视化工作,进入tutorial notebook,它里面已经写好了例子。由于本地编译没有指定spark 版本,1.3之前版本没用toDF方法,而是toSchemaRDD,改下面这段:

  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")

生成bank表之后,可以做查询,效果如下:
这里写图片描述
有直方图,饼状图,散点图,折线图等等。

注意
这里写图片描述
这里${maxAge=}的写法和databricks cloud里的demo一样。当时那个例子是输入soccer,然后下方会实时训练并输出与足球有关的tweets(值FIFA比赛时期)。
这种表示方法,Zeppelin称之为 Dynamic Form
http://zeppelin.incubator.apache.org/docs/dynamicform.html

总结

apache zeppelin应该会很吸引分布式计算、数据分析从业者,代码量少,模块很清楚,可以尝试接入不同计算引擎,试试任务运行、可视化效果,是个值得把玩的算比较前卫的项目。

没有过多复杂的操作,只是区分了多个notebook,每个notebook里做单独的分析处理工作,流程和结果会被保存下来。此外,为spark做了更好的支持,比如默认是scala环境,默认sc已经创建好,即spark local可跑,默认spark sql有可视化效果。

全文完 :)

作者:zbf8441372 发表于2015/5/23 15:46:21 原文链接
阅读:144 评论:0 查看评论

相关 [apache zeppelin] 推荐:

[原]Apache Zeppelin安装及介绍

- - 张包峰的博客
Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化. 背后可以接入不同的数据处理引擎,包括spark, hive, tajo等,原生支持scala, java, shell, markdown等. 它的整体展现和使用形式和Databricks Cloud是一样的,就是来自于当时的demo.

Apache Shiro 介绍

- - CSDN博客推荐文章
什么是Apache Shiro?. Apache shiro 是一个强大而灵活的开源安全框架,可清晰地处理身份认证、授权、会话(session)和加密. Apache Shiro最主要的初衷是为了易用和易理解,处理安全问题可能非常复杂甚至非常痛苦,但并非一定要如此. 一个框架应该尽可能地将复杂的问题隐藏起来,提供清晰直观的API使开发者可以很轻松地开发自己的程序安全代码.

Apache Derby Papers

- -
Derby Type System (Note: if your browser shows HTML source for this page instead of displaying it, save the file locally with . It will prompt you to click on "Grant license to ASF for inclusion in ASF works", and this is the permission we need in place to host your contribution on the Derby web site..

Apache防止攻击

- - 小彰
为了防止恶意用户对Apache进行攻击,我们需要安装mod_security这个安全模块. mod_security 1.9.x模块的下载与安装. 下载地址: http://www.modsecurity.org/download/index.html. 建议使用1.9.x,因为2.x的配置指令与1.x完全不同,解压后进入解压目录,执行:.

Apache OpenOffice 3.4发布

- - Solidot
Apache OpenOffice的第一个版本v3.4正式发布. 主要新特性包括:改进ODF支持,包括ODF 1.2加密选项和新电子表格功能;改进Calc组件的数据透视表(Pivot Table)支持;原生支持SVG,增强图形如线帽和剪切变形;简体和繁体中文等原生语言支持;改进性能等. 在甲骨文将OpenOffice.org捐给Apache软件基金会后,OOo的命运曾存在许多争议.

Apache PDFBox 1.8.0 发布

- - 开源中国社区最新新闻
Apache PDFBox 1.8.0 发布了,该版本除了修复大量 bug 之外,还包含如下新特性:. PDFBox是Java实现的PDF文档协作类库,提供PDF文档的创建、处理以及文档内容提取功能,也包含了一些命令行实用工具. PDF 文档加密与解密. 与 Lucene搜索引擎的集成. 填充PDF/XFDF表单数据.

Apache Log4j 2.0介绍

- - CSDN博客推荐文章
Apache Log4j 2.0介绍. 作者:chszs,转载需注明. 作者博客主页:http://blog.csdn.net/chszs. Apache Log4j是著名的Java日志框架之一,在早些年应用最广. 但近两年来,随着SLF4J和LogBack的兴起,很多流行的开源框架在日志模块方面逐步转移到SLF4J+LogBack上,Log4j日渐衰落.

Apache 的 MaxClients 與 MaxRequestsPerChild

- - SSORC.tw
對於 Apache 架設的伺服器,在遇到連線數問題上,以下參數是會考慮微調的. 不過遇到多個 VirtualHost 與連線變多時,需要適時調整. ServerLimit 與 MaxClients 是針對同時間最大連線數為多少,也等於是 Apache 程序數量,ps 一下就會有多少個 /usr/sbin/httpd 等.

apache 工作模式

- - 互联网 - ITeye博客
如果httpd -l列出prefork.c. 则表示是 prefork 工作方式. 这表明当前apache2的工作方式是 prefork. prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止.

Apache投票接受OpenOffice.org

- 灰灰 - Solidot
甲骨文已宣布将开源办公软件项目OpenOffice.org捐赠给Apache基金会. 6月13日,Apache基金会进行了投票表决,以压倒性多数同意接受OpenOffice.org成为Apache的一个孵化器项目. OpenOffice.org将转交给Apache基金会管理,它可能需要数个月时间才能变成Apache的新顶级项目.