天天看點

Apache Zeppelin使用入門指南:安裝

  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

[[email protected] ~]$ git clone https://github.com/apache/incubator-zeppelin.git

02

[[email protected] ~]$ 

cd

incubator-zeppelin

03

[[email protected] ~]$ 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

[[email protected] ~]$ bin/zeppelin-daemon.sh start

停止Zeppelin可以使用:

1

[[email protected] ~]$ 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 SelectChannel[email protected]: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

[[email protected] ~]$ bin/zeppelin-daemon restart

一切順利的話,我們就可以在http://www.iteblog.com:8080上面看到下面頁面資訊:

Apache Zeppelin使用入門指南:安裝

繼續閱讀