背景

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有可视化效果。

全文完 :)

Apache Zeppelin安装及介绍相关推荐

  1. zeppelin oracle,Apache Zeppelin安装及使用

    Apache Zeppelin介绍:A web-based notebook that enables interactive data analytics.  You can make beauti ...

  2. Apache Zeppelin安装和启动

    目录 1. 软件安装版本说明 2. 下载安装包 3. 修改Zeppelin配置 3.1 修改 zeppelin-site.xml 3.2 修改zeppelin的内存大小

  3. apache zeppelin安装

    [root@mihaoyu151 ~]# cd /opt/install [root@mihaoyu151 install]# ll -rw-r--r--. 1 root root 158247652 ...

  4. Spark交互式分析平台Apache Zeppelin的安装

    Zeppelin介绍 Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化.背后可以接入不同的数据处理引擎,包括Spark, Hive, tajo ...

  5. Zeppelin安装教程

    我是在虚拟机中安装 虚拟机:virtualbox 系统:centos7 jdk1.7 zeppelin0.6.2 spark-2.0.2-bin-hadoop2.7 hadoop-2.7.3 scal ...

  6. Apache Maven 安装与配置-修改源

    Maven配置,强大的Java包管理器 Maven介绍 Apache Maven 下载 Apache Maven 安装 要求 启动 解压到适当的文件夹 添加环境变量 修改配置 启动测试 Maven介绍 ...

  7. 2021年大数据HBase(八):Apache Phoenix的基本介绍

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 前言 系列历史文章 Apache Phoenix的基本介绍 Apache ...

  8. RHEL5+PXE+DHCP+Apache+Kickstart安装RHCE5.1 i386实验室环境

    此博文出自:http://andrewyu.blog.51cto.com/1604432/1100567 使用RHEL5+PXE+DHCP+Apache+Kickstart安装RHCE5.1 i386 ...

  9. (转)Apache的安装与配置

    转自:http://www.dreamdu.com/webbuild/apache/ 5.2. Apache的安装与配置 5.2.1. Apache安装与配置视频教程 下面将介绍如何在WinXP下安装 ...

最新文章

  1. tomcat 日志分割脚本
  2. 【08】Effective Java - 异常
  3. ruby gem 本地安装方法
  4. 贝塞尔曲线(B′ezier)基础
  5. 如何建立自信心,不错!
  6. Ecplise中配置Tomcat7服务器
  7. 阅读openjdk源代码
  8. PHP 依赖注入,从此不再考虑加载顺序
  9. 设计一个程序实现两个任意长的整数的求和运算_深入 Python (7) Karatsuba 实现长整数乘法...
  10. python计算圆的面积
  11. 关于ionic打包出错:ionic Unable to start the daemon process
  12. Spring中的jar包详解
  13. Qt调用ffmpeg录制屏幕
  14. 热插拔48块硬盘服务器,24块前置热插拔硬盘设计
  15. uboot 源码官方下载地址
  16. 华为模拟器eNSP配置DHCP自动分配IP地址
  17. 2022年十大科技应用趋势
  18. android qq侧滑,Android实现QQ的侧滑置顶、删除
  19. 欧拉工程第12题 第一个拥有超过500个约数的三角形数是多少
  20. 基于安卓的 gps定位系统的跑步健身助手

热门文章

  1. 该换壁纸啦,记录一个用CSS和HTML做的3D立体相册
  2. 千分位、两位小数的展示
  3. AS608指纹模块简要说明
  4. js实现正则去除字符串空格
  5. CICD之 gitlab和gtilab runner
  6. 4.R语言【dplyr包】使用方法
  7. 关于u盘运行veket系统这件事
  8. linux上网本系统下载,上网本操作系统veket linux5.192b正式版下载
  9. @Valid和@Validated注解校验List<Object>
  10. UUID和GUID的区别