前言

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

    ChatSecure是一个免费和开源消息传递应用程序的特性 OTR加密在 XMPP. 你可以连接到现有的谷歌帐户或创建新帐户 公共XMPP服务器(包括通过 Tor),甚至 连接到您自己的服务器额外的安 ...

  2. Kafka0.8.2.1删除topic逻辑

    前提条件: 在启动broker时候开启删除topic的开关,即在server.properties中添加:  delete.topic.enable=true 命令: bin/kafka-topics ...

  3. Autofac 组件、服务、自动装配 《第二篇》

    一.组件 创建出来的对象需要从组件中来获取,组件的创建有如下4种(延续第一篇的Demo,仅仅变动所贴出的代码)方式: 1.类型创建RegisterType AutoFac能够通过反射检查一个类型,选择 ...

  4. Redis命令拾遗一(字符串类型)

    文章归博客园和作者“蜗牛”共同所有 .转载和爬虫请注明原文Redis系列链接 http://www.cnblogs.com/tdws/tag/NoSql/ Redis有五种基本数据类型.他们分别是字符 ...

  5. shiro的使用2 灵活使用shiro的密码服务模块

    shiro最闪亮的四大特征是认证,授权,加密,会话管理. 上一篇已经演示了如何使用shiro的授权模块,有了shiro这个利器,可以以统一的编码方式对用户的登入,登出,认证进行管理,相当的优雅. 为了 ...

  6. linux vi 命令大全

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  7. Idea SpringMVC+Spring+MyBatis+Maven调整【转】

    Idea SpringMVC+Spring+MyBatis+Maven整合   创建项目 File-New Project 选中左侧的Maven,选中右侧上方的Create from archetyp ...

  8. Position属性四个值:static、fixed、relative、absolute的区别和用法

    1.static(静态定位):默认值.没有定位,元素出现在正常的文档流中(如果设置 top, bottom, left, right, z-index这些属性就不起做作了). 2.relative(相 ...

  9. 【前端优化之渲染优化】大屏android手机动画丢帧的背后

    前言 上周我与阿里的宇果有一次技术的交流,然后对天猫H5站点做了一些浅层次的分析,后面点时间基本天天都会有联系,中途聊了一些技术细节.聊了双方团队在干什么,最后聊到了前端优化.因为我本身参与了几次携程 ...

  10. Android事件分发机制浅谈(三)--源码分析(View篇)

    写事件分发源码分析的时候很纠结,网上的许多博文都是先分析的View,后分析ViewGroup.因为我一开始理解的时候是按我的流程图往下走的,感觉方向很对,单是具体分析的时候总是磕磕绊绊的,老要跳到Vi ...