前言

  Apache Zeppelin是一款基于web的notebook(类似于ipython的notebook),支持交互式地数据分析,即一个Web笔记形式的交互式数据查询分析工具,可以在线用scala和SQL对数据进行查询分析并生成报表。原生就支持Spark、Scala、SQL 、shell 、markdown等。而且它是完全开源的,目前还处于Apache孵化阶段。其已经在各大公司均有采用,比如美团、微软等等。

  Zeppelin的后台数据引擎可以是Spark,也可以通过实现更多的解释器来为Zeppelin添加数据引擎。在本地搭建一个Zeppelin 使得Spark更易用,同时可以很方便的将自己的工作成功展示给客户。

准备

sudo apt-get update    //更新Apt

安装JDK

sudo apt-get install openjdk-8-jre openjdk-8-jdk

安装Hadoop

安装Spark

安装Git

sudo apt-get install git

安装Maven

sudo apt-get install maven

安装Npm

sudo apt-get install npm  //Npm home: /usr/share/npm

安装Phantomjs

下载"phantomjs-1.9.8-linux-x86_64.tar.bz2"
解压至:/usr/local/phantomjs

安装Apache Zeppelin

  • 源码下载

  • 解压安装

  Apache Zeppelin官方提供了Source包和二进制包,我们可以根据需要下载相关的包进行安装。

  1. 通过下载zeppelin的binary包:http://ftp.meisei-u.ac.jp/mirror/apache/dist/incubator/zeppelin/0.5.6-incubating/zeppelin-0.5.6-incubating-bin-all.tgz,然后解压缩安装。

    tar -xzvf zeppelin--incubating-bin-all.tgz
  2. 通过编译源码的方式来安装Apache Zeppelin,我这里从Zeppelin的git库里面下载最新的源码进行编译。

    $ git clone https://github.com/apache/incubator-zeppelin.git //下载最新的->解压至:/usr/local/zeppelin

编译Apache Zeppelin

  • 本地模式:mvn clean package -DskipTests
  • 集群模式:mvn package -Pspark-2.0 -Dhadoop.version=2.7.1 -Phadoop-2.7 -DskipTests -X
在安装过程中可能会出现各种问题,但是一般都是网络问题导致,重新执行下编译命令即可。但如果编译出现oom,需增加如下命令:
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"  
  1. 配置环境变量

    ysp@YSP:~$ vim .bashrc

    -openjdk-amd64 export SPARK_HOME=/usr/local/spark export HADOOP_HOME=/usr/local/hadoop export PHANTOMJS_HOME=/usr/local/phantomjs export ZEPPELIN_HOME=/usr/local/zeppelin export PATH=.:$PATH:/usr/local/hadoop/bin:/usr/local/phantomjs/bin:/usr/local/spark/bin:/usr/local/zeppelin/bin:/usr/lib/jvm/java--openjdk-amd64/bin;

    ysp@YSP:~$ source .bashrc
  2. 集群模式编译
    ysp@YSP:~$ cd /usr/local/zeppelin
    ysp@YSP:/usr/local/zeppelin$ mvn package -Pspark- -Phadoop-2.7 -DskipTests -X

如果你需要使用到YARN,你必须在编译Zeppelin的时候指定-Pyarn选项。

配置

  配置文件为环境变量文件(conf/zeppelin-env.sh)和Java属性文件(conf/zeppelin-site.xml)。根据自己的要求进行配置。

  1. 拷贝/usr/local/zeppelin/conf/zeppelin-env.sh.template和/usr/local/zeppelin/conf/zeppelin-site.xml.template至/usr/local/zeppelin/conf/zeppelin-env.sh与/usr/local/zeppelin/conf/zeppelin-site.xml。
  2. 编辑conf/zeppelin-env.sh
    export JAVA_HOME=/usr/lib/jvm/java--openjdk-amd64
    export SPARK_HOME=/usr/local/spark
    export HADOOP_CONF_DIR=/usr/local/hadoop
    export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0"

启动

  在zeppelin_home目录下执行如下命令:

ysp@YSP:/usr/local/zeppelin$ ./bin/zeppelin-daemon.sh start

  其启动/停止命令: bin/zeppelin-daemon.sh start/stop。

  启动之后,打开localhost:8080访问zepplin主页。

测试

  • 配置Spark解释器

  • 创建Note

1.text

  默认使用scala语言输出text内容:

println("Hello Yuan Siping!")

2.html

    shell输出html:

%sh echo "%html <h2>Hello Zeppelin</h2>"

  3.table

    scala:

print(s"""%table name\tsize\nsun\t100\nmoon\t10""")

  4.Tutorial with Local File

Data Refine:

下载bank数据:http://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip ,将csv格式数据转成Bank对象RDD,并过滤表头列:

val bankText = sc.textFile("/usr/data/bank/bank-full.csv")

case class Bank(age:Integer, job:String, marital : String, education : String, balance : Integer)

val bank = bankText.map(s=>s.split()!="\"age\"").map(
    s=>Bank(s().toInt,
            s().replaceAll("\"", ""),
            s().replaceAll("\"", ""),
            s().replaceAll("\"", ""),
            s().replaceAll("\"", "").toInt
        )
)

bank.toDF().registerTempTable("bank")

Data Retrieval:

执行以下语句,可看到年龄的分布:

%sql )  group by age order by age

  动态输入maxAge参数(默认是30岁),查看小于maxAge岁的年龄分布:

%sql ) } group by age order by age

  根据婚姻状况选项,查看年龄分布状况:

%sql ) from bank where marital="${marital=single,single|divorced|married}" group by age order by age

Ubuntu下基于Saprk安装Zeppelin的更多相关文章

  1. ubuntu下的openfire安装、配置、运行

    openfire服务器              Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议.您可以使用它轻易的构建高效率的即时通信服务器.Op ...

  2. 2010-01-20 12:09 ubuntu下minicom的安装及使用

    转http://hi.baidu.com/npugtawqdnbgqrq/item/106f805409b42813db163527 ubuntu下minicom的安装及使用 安装: sudo apt ...

  3. Ubuntu下git的安装与使用

    Ubuntu下git的安装与使用 Ubuntu下git的安装与使用与Windows下的大致相同,只不过个人感觉在Ubuntu下使用git更方便. 首先,确认你的系统是否已安装git,可以通过git指令 ...

  4. Ubuntu下Speedtest的安装

    要安装Speedtest,需要先安装apache,参见<Ubuntu下Apache的安装>一文:*(再安装LAMP server,参见<Ubuntu下快速安装LAMP server& ...

  5. Ubuntu下Apache的安装

    Ubuntu下可快速安装LAMP server(Apache+MySQL+PHP5),参见<Ubuntu下快速安装LAMP server>一文. 也可以手动安装Apache.本文介绍如何手 ...

  6. Linux(Ubuntu)下MySQL的安装与配置

    转自:http://www.2cto.com/database/201401/273423.html 在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今 ...

  7. ubuntu下boost编译安装

    ubuntu下boost编译安装 boost 安装 1.依赖安装 apt-get install mpi-default-dev libicu-dev python-dev python3-dev l ...

  8. ubuntu 下redis的安装简介

    Linux公社:https://www.linuxidc.com/topicnews.aspx?page=2&tid=2 简单介绍下ubuntu下redis的安装方式: 第一种: 1:进入re ...

  9. ubuntu下tomcat的安装及注册成系统服务

    在ubuntu下tomcat的安装有两种方式,第一种是下载二进制文件,解压安装:第二种则是使用apt-get自动下载.这里不推荐第二种方法安装,因为这种方法安装会像天女散花一样把安装的文件散落在系统的 ...

随机推荐

  1. Docker for Windows使用简介

    在上一篇文章中,通过演练指导的方式,介绍了在Docker中运行ASP.NET Core Web API应用程序的过程.本文将介绍Docker for Windows的使用. 先决条件 前两周时间,Do ...

  2. 基于 WebSocket 实现 WebGL 3D 拓扑图实时数据通讯同步(一)

    今天没有延续上一篇讲的内容,穿插一段小插曲,WebSocket 实时数据通讯同步的问题,今天我们并不是很纯粹地讲 WebSocket 相关知识,我们通过 WebGL 3D 拓扑图来呈现一个有趣的 De ...

  3. CLR和.Net对象生存周期

    标签:GC .Net C# CLR 前言 1. 基础概念明晰 * 1.1 公告语言运行时 * 1.2 托管模块 * 1.3 对象和类型 * 1.4 垃圾回收器 2. 垃圾回收模型 * 2.1 为什么需 ...

  4. ASP.NET Core服务器综述

    原文地址:Servers overview for ASP.NET Core By Tom Dykstra, Steve Smith, Stephen Halter, and Chris Ross A ...

  5. Devexpress Ribbon Add Logo

    一直在网上找类似的效果.在Devpexress控件里面的这个是一个Demo的.没法查看源代码.也不知道怎么写的.所以就在网上搜索了半天的. 终于找到类似的解决办法. 可以使用重绘制的办法的来解决. [ ...

  6. sql 补齐字段位数

    select top 100 lmdte, right(replicate('0',6)+ltrim(lmtme),6) from smtpdsum where lmdte <> 0

  7. bzoj1878--离线+树状数组

    这题在线做很麻烦,所以我们选择离线. 首先预处理出数组next[i]表示i这个位置的颜色下一次出现的位置. 然后对与每种颜色第一次出现的位置x,将a[x]++. 将每个询问按左端点排序,再从左往右扫, ...

  8. 深度理解CSS样式表,内有彩蛋....

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. java中动态代理的实现

    动态代理的实现 使用的模式:代理模式. 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问.类似租房的中介. 两种动态代理: (1)jdk动态代理,jdk动态代理是由Java内部的反射机制 ...

  10. 《连载 | 物联网框架ServerSuperIO教程》- 14.配制工具介绍,以及设备驱动、视图驱动、服务实例的挂载

    注:ServerSuperIO二次开发套件授权码申请---截止到:2016-12-09 1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架Server ...