目錄
一、介紹
官網:http://zeppelin.apache.org/ apache的頂級項目
Zeppelin是什么?Zeppelin是一個大數據交互分析服務軟件,可以基於Web界面組合多個大數據分析引擎的處理能力,並內置提供了基於Web的可視化界面,可以連接幾乎所有的Apache大數據處理服務系統。
支持:Spark、Hive、Jdbc、HBase、Fink、ES等........多種,每種都有對應的攔截器。他是基於web的Zeppelin。只有打開瀏覽器,就能進行訪問。可以用它進行交互式的查詢分析。
功能:Zeppelin可以滿足你的數據接入、數據挖掘、數據分析、數據可視化及協同開發的需求。
總之:Zeppelin是一個基於web的大數據分析引擎,里面可以填寫很多的“代碼片段”的工具,對於排查錯誤來講是非常重要的。
二、安裝
包Zeppelin-0.8.1-bin-all.tgz的下載,有下面幾種方式:
1)直接下載
2)用docker下載
3)下載源碼,編譯源碼(生產上用的)[Build from source](http://zeppelin.apache.org/download.html#build-from-source)
開始進行安裝 [install](http://zeppelin.apache.org/docs/0.8.0/quickstart/install.html)。
上傳到`~/software`下,解壓到`~/app`下。看一下目錄結構。因為是一個web項目,所以是一個war包,每創建一個窗口就有一個notebook目錄:
如果下載的是源碼,可以[編譯](http://zeppelin.apache.org/docs/0.8.0/quickstart/install.html#building-zeppelin-from-source)。
啟動:
[hadoop@hadoop001 bin]$ ./zeppelin-daemon.sh start
Log dir doesn't exist, create /home/hadoop/app/zeppelin-0.8.1-bin-all/logs
Pid dir doesn't exist, create /home/hadoop/app/zeppelin-0.8.1-bin-all/run
Zeppelin start [ OK ]
啟動之后通過jps可以看到有一個對應的進程:`ZeppelinServer`。他有一個默認的配置文件:`conf/zeppelin-site.xml.template`。從默認的配置文件中可以看到,他是可以任何ip進行訪問的,提供的端口是8080:
對應的頁面,右上角綠色的點,表示連接成功:
對應的日志文件是logs目錄。在日志文件中可以看到啟動成功了:`zeppelin server started`
可以使用Spark,支持多種默認:
需要修改一個配置文件:
[hadoop@hadoop001 conf]$ cp zeppelin-env.sh.template zeppelin-env.sh
[hadoop@hadoop001 conf]$ vi zeppelin-env.shexport JAVA_HOME=/usr/java/jdk1.8.0_45
#如果Spark需要跑在Yarn上,肯定是要配置hadoop_conf_dir的
export HADOOP_CONF_DIR=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
export SPARK_SUBMIT_OPTIONS="--jars /home/hadoop/lib/mysql-connector-java-5.1.43-bin.jar"
export MASTER=local # 如果跑在yarn上就配置yarn。如果跑在local就寫local,這里暫時寫local
export SPARK_HOME=/home/hadoop/app/spark-2.4.2-bin-2.6.0-cdh5.7.0
關閉服務的方式:
[hadoop@hadoop001 bin]$ ./zeppelin-daemon.sh stop
Zeppelin stop [ OK ]
重新啟動服務:
[hadoop@hadoop001 bin]$ ./zeppelin-daemon.sh start
Zeppelin start [ OK ]
[hadoop@hadoop001 bin]$ jps
3904 NameNode
23190 Jps
4342 ResourceManager
4439 NodeManager
4137 SecondaryNameNode
23130 ZeppelinServer--------->ok
3997 DataNode
[hadoop@hadoop001 bin]$
啟動的過程需要聯網,所以可能會出現因為網絡的原因導致連接的很慢。綠燈就表示連接上了:
三、權限
Zeppelin默認使用的是shiro來控制權限,默認情況是采用anonymous,不需要權限就可以訪問的:
如果想添加權限的訪問,可以在`conf/shiro.ini.template`這個配置文件中進行控制。默認的用戶名/密碼、loginUrl、權限:
可以在shiro.ini配置文件中進行用戶名、密碼、權限的配置 。但是這種方式是寫死了。在生產上這個Zeppelin不是單獨用的,而是嵌入在數據平台上用的。如果登陸數據平台需要權限,進去之后,里面的Zeppelin還要再進行一次權限,那這個平台就太垃圾了。所以一定有一個數據平台權限和Zeppelin權限的對接。比如現在的數據平台有下面這些功能:離線、實時、可視化、zeppelin。如果登陸這個數據平台的賬號想也訪問登陸zeppelin,必須有登陸zeppelin的權限。
關於shiro登陸權限的可以參考:http://zeppelin.apache.org/docs/0.8.1/setup/security/shiro_authentication.html
關於NoteBook的權限可以參考:http://zeppelin.apache.org/docs/0.8.1/setup/security/notebook_authorization.html
四、使用/創建noteBook
創建一個noteBook:
這里有很多的攔截器,默認的就是Spark:
1、建立一個md攔截器的noteBook
可以先創建一個md的攔截器類型的:
然后就可以開始寫了:
寫完之后執行:
跑完之后的效果:
執行的結果:
之后也可以直接在這里改:
實際上就是個占位符,這就是%md的用法,先簡單了解。
也可以在前面創建:
如果想修改interpreter的東西,直接點擊這里:
比如搜索spark,就會出來一堆spark的配置:
可以直接進行修改:
比如改成local[2]:
但是這里改有點慢,可以直接去zeppelin-env.sh配置文件中改,修改了配置文件之后就重新啟動服務。但是關於配置這個,配置文件和頁面是不太一致,這是bug。
創建的notebook都在這個目錄下:
在日志文件目錄下有對應的notebooke,不同攔截器的日志:
可以在這里查看不同的攔截器的日志。
更多的信息可以去看它的文檔:http://zeppelin.apache.org/docs/0.8.1/index.html
2、建立一個Spark攔截器的noteBook
創建一個spark:
但是報錯:`java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.defaultNumHeapArena()I`
??????????????????????????還未解決
反正就是可以在這里寫Spark的測試代碼了。
更多的信息可以去看它的文檔:http://zeppelin.apache.org/docs/0.8.1/index.html
關於Spark的更多使用,參考:http://zeppelin.apache.org/docs/0.8.1/interpreter/spark.html
關於shiro登陸權限的可以參考:http://zeppelin.apache.org/docs/0.8.1/setup/security/shiro_authentication.html
關於NoteBook的權限可以參考:http://zeppelin.apache.org/docs/0.8.1/setup/security/notebook_authorization.html
3、建立一個jdbc攔截器的noteBook
也可以使用%jdbc攔截器的方式連接數據庫。比如連接的是MySQL數據庫。首先要找到jdbc攔截器並進行配置:
編輯下面的配置:
並添加MySQL的驅動的依賴:
會聯網下載相關的jar包。
現在來創建一個jdbc的notebook,可以看到運行成功的:
缺點就是每次這個窗口只能寫一條SQL語句,就連注釋的SQL語句也會算一行,這是缺點。
可以寫SQL,並且查看SQL的執行結果用表格、柱形圖等:
可以下載數據:
默認界面只能展示1000條的結果,如果想修改,就要修改JDBC攔截器的配置:
從這里可以看到這個Zeppelin是支持很多東西的:
需要我們的Linux上的對應的攔截器的服務要開啟着。這個東西就是發送並接收結果用來展示的一個工具。不管用HUE,還是用Zeppelin都是可以的。
可以對展示的結果進行修改展示,或者Link把結果圖link出去給別人用,這里發生變化的時候,別人link的地方也會發生相應的變化:
更多的信息可以去看它的文檔:http://zeppelin.apache.org/docs/0.8.1/index.html
關於Spark的更多使用,參考:http://zeppelin.apache.org/docs/0.8.1/interpreter/spark.html
關於shiro登陸權限的可以參考:http://zeppelin.apache.org/docs/0.8.1/setup/security/shiro_authentication.html
關於NoteBook的權限可以參考:http://zeppelin.apache.org/docs/0.8.1/setup/security/notebook_authorization.html