您的位置:首页 > 运维架构 > Apache

Apache Zeppelin使用入门指南:安装

2016-04-27 08:56 645 查看
 Apache Zeppelin使用入门指南:安装

  Apache Zeppelin使用入门指南:编程

  Apache Zeppelin使用入门指南:添加外部依赖

  Apache Zeppelin是一款基于web的notebook(类似于ipython的notebook),支持交互式地数据分析。原生就支持Spark、Scala、SQL
、shell, markdown等。而且它是完全开源的,目前还处于Apache孵化阶段。本文所有的操作都是基于Apache Zeppelin 0.6.0-incubating-SNAPSHOT,spark
1.5.2的。

  本文将介绍如何编译、安装以及使用Apache Zeppelin。


编译和安装Apache Zeppelin

  Apache Zeppelin官方提供了Source包和二进制包,我们可以根据需要下载相关的包进行安装。这里我通过编译源码的方式来安装Apache Zeppelin,通过源码编译Zeppelin非常地简单,我这里从Zeppelin的git库里面下载最新的源码进行编译,步骤如下:

01
[iteblog@www.iteblog.com
~]$ git clone https://github.com/apache/incubator-zeppelin.git
02
[iteblog@www.iteblog.com
~]$
cd

incubator-zeppelin
03
[iteblog@www.iteblog.com
~]$mvn package -Pspark-1.5 -Dhadoop.version=2.2.0 -Phadoop-2.2 -DskipTests
04
[INFO]
Reactor Summary:
05
[INFO]
06
[INFO]
Zeppelin ........................................... SUCCESS [4.336 s]
07
[INFO]
Zeppelin: Interpreter .............................. SUCCESS [4.525 s]
08
[INFO]
Zeppelin: Zengine .................................. SUCCESS [2.465 s]
09
[INFO]
Zeppelin: S park dependencies ...................... SUCCESS [ 30.643 s]
10
[INFO]
Zeppelin: S park ................................... SUCCESS [2.220 s]
11
[INFO]
Zeppelin: Markdown interpreter ..................... SUCCESS [0.223 s]
12
[INFO]
Zeppelin: Angular interpreter ...................... SUCCESS [0.495 s]
13
[INFO]
Zeppelin: Shell interpreter ........................ SUCCESS [0.203 s]
14
[INFO]
Zeppelin: Hive interpreter ......................... SUCCESS [1.590 s]
15
[INFO]
Zeppelin: Apache Phoenix Interpreter ............... SUCCESS [2.196 s]
16
[INFO]
Zeppelin: PostgreSQL interpreter ................... SUCCESS [0.202 s]
17
[INFO]
Zeppelin: JDBC interpreter ......................... SUCCESS [0.171 s]
18
[INFO]
Zeppelin: Tajo interpreter ......................... SUCCESS [0.436 s]
19
[INFO]
Zeppelin: Flink .................................... SUCCESS [0.864 s]
20
[INFO]
Zeppelin: Apache Ignite interpreter ................ SUCCESS [0.219 s]
21
[INFO]
Zeppelin: Kylin interpreter ........................ SUCCESS [0.223 s]
22
[INFO]
Zeppelin: Lens interpreter ......................... SUCCESS [1.030 s]
23
[INFO]
Zeppelin: Cassandra ................................ SUCCESS [2.954 s]
24
[INFO]
Zeppelin: Elasticsearch interpreter ................ SUCCESS [1.601 s]
25
[INFO]
Zeppelin: web Application .......................... SUCCESS [01:19 min]
26
[INFO]
Zeppelin: Server ................................... SUCCESS [ 54.665 s]
27
[INFO]
Zeppelin: Packaging distribution ................... SUCCESS [0.991 s]
28
[INFO]
------------------------------------------------------------------------
29
[INFO]
BUILD SUCCESS
30
[INFO]
------------------------------------------------------------------------
31
[INFO]
Total
time
:
03:12 min
32
[INFO]
Finished at: 2016-01-20T16:35:33+08:00
33
[INFO]
Final Memory: 97M/1298M
34
[INFO]
------------------------------------------------------------------------
  在编译Zeppelin的时候,会安装npm和node等,所以安装的进度有时会很慢。目前Zeppelin支持Spark 1.1到Spark 1.6和Hadoop 0.23到Hadoop 2.6等版本,我们可以分别通过下面选项指定相应的Spark和Hadoop版本:

01
-Pspark-1.6
02
-Pspark-1.5
03
-Pspark-1.4
04
-Pspark-1.3
05
-Pspark-1.2
06
-Pspark-1.1
07
-Pcassandra-spark-1.5
08
-Pcassandra-spark-1.4
09
-Pcassandra-spark-1.3
10
-Pcassandra-spark-1.2
11
-Pcassandra-spark-1.1
12
13
-Phadoop-0.23
14
-Phadoop-1
15
-Phadoop-2.2
16
-Phadoop-2.3
17
-Phadoop-2.4
18
-Phadoop-2.6
  如果你需要使用到YARN,你必须在编译Zeppelin的时候指定
-Pyarn
选项,具体可以参见本博客的《在Yarn上运行Apache
Zeppelin & Spark》 。

  如果你需要使用到PySpark,编译的时候需要使用
-Ppyspark


  编译完Zeppelin之后,我们就可以启动Zeppelin:

1
[iteblog@www.iteblog.com
~]$bin/zeppelin-daemon.sh start
停止Zeppelin可以使用:

1
[iteblog@www.iteblog.com
~]$bin/zeppelin-daemon.sh stop
所有运行的日志会输入到
logs
目录下,如果遇到错误可以到里面去查找相关的日志。

  需要注意的是,Zeppelin默认是在8080端口上启动相关的web服务的,在你服务器上,如果这个端口已经被占用了,那么会导致Zeppelin启动失败,并在日志里面抛出以下的异常:

01
WARN
[2016-01-20 16:36:44,830] ({main} AbstractLifeCycle.java[setFailed]:204) -
02
FAILED
SelectChannelConnector@0.0.0.0:8080: java.net.BindException: Address already
in

use
03
java.net.BindException:
Address already
in

use
04
at
sun.nio.ch.Net.bind0(Native Method)
05
at
sun.nio.ch.Net.bind(Net.java:444)
06
at
sun.nio.ch.Net.bind(Net.java:436)
07
at
sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
08
at
sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
09
at
org.eclipse.jetty.server.nio.SelectChannelConnector.
open
(SelectChannelConnector.java:187)
10
at
org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:316)
11
at
org.eclipse.jetty.server.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:265)
12
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
13
at
org.eclipse.jetty.server.Server.doStart(Server.java:293)
14
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
15
at
org.apache.zeppelin.server.ZeppelinServer.main(ZeppelinServer.java:114)
我们可以到
conf/zeppelin-site.xml
文件里面进行配置,并修改
zeppelin.server.port
属性的值为其他不被占用的端口,如下:

1
<
property
>
2
<
name
>zeppelin.server.port</
name
>
3
<
value
>8090</
value
>
4
<
description
>Server
port.</
description
>
5
</
property
>
然后我们需要重启Zeppelin:

1
[iteblog@www.iteblog.com
~]$bin/zeppelin-daemon restart
一切顺利的话,我们就可以在http://www.iteblog.com:8080上面看到下面页面信息:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: