1. Zeppelin下載及安裝
1.1 安裝環境
- Cent os 7.5
- Hadoop 3.2
- Hive-3.1.2
- Scala
- Spark-3.0.0-bin-hadoop3.2
- Flink 1.13.2
- Zeppelin 0.9.0
1.2 Zeppelin下載
Zeppelin 安裝包下載地址
http://zeppelin.apache.org/download.html 
1.3 上傳並解壓
# 解壓zeppelin安裝包
tar -zxvf zeppelin-0.9.0-bin-all.tgz -C /data/soft/
注意:如果是正式生產環境,建議部署到/usr/local/目錄下。本文以學習為主,部署在/data/Soft目錄下。
1.4 修改zeppelin配置文件
- 自定義zeppelin訪問端口
修改zeppelin-site.xml文件。由於zeppelin默認的端口號為8080(與Spark默認端口沖突),因此有必要修改zeppelin的默認端口。此處修改為8000。
<property>
<name>zeppelin.server.addr</name>
<value>192.168.21.102</value>
<description>Server binding address</description>
</property>
<property>
<name>zeppelin.server.port</name>
<value>8000</value>
<description>Server port.</description>
</property>
- 配置zeppelin-env.sh
export JAVA_HOME=/usr/local/jdk1.8
export HADOOP_CONF_DIR=/data/soft/hadoop-3.2.0/etc/hadoop
export SPARK_MASTER_IP=192.168.21.102
export SPARK_LOCAL_IP=192.168.21.102
1.5 啟動
在ZEPPELIN_HOME目錄下,進入bin目錄下,執行啟動命名
./zeppelin-daemon.sh start
如果顯示結果如下圖,則表示啟動成功。 
1.6 訪問zeppelin Web頁面。
zeppelin啟動完成后,可使用瀏覽器訪問http://ip:端口,即可看到zeppelin的web界面。
ip和端口與zeppelin-site.xml中配置保持一致。

此處顯示的登錄用戶為admin,而並非默認的annoymous,是因為博主已配置shiro相關內容。默認不配置shiro,無須登錄,顯示賬戶為annoymous.
1.7 zeppelin 權限配置
zeppelin默認運行匿名用戶訪問,即沒有用戶權限相關要求。如果想實現權限控制,則需要修改shiro配置文件。(有些博主基於0.8.0可能還需要配置修改zeppelin-site.xml中相關內容,在此一並都貼出來)。
修改 zeppelin-site.xml
<property>
<name>zeppelin.anonymous.allowed</name>
<value>false</value>
<description>Anonymous user allowed by default</description>
</property>
拷貝conf目錄下的shiro.ini.template,改為shiro.ini,修改shiro.ini中的內容
cp shiro.ini.template shiro.ini
使用vim工具修改的內容如下
[users]
# List of users with their password allowed to access Zeppelin.
# To use a different strategy (LDAP / Database / ...) check the shiro doc at http://shiro.apache.org/configuration.html#Configuration-INISections
# To enable admin user, uncomment the following line and set an appropriate password.
admin = admin, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2
注意:逗號前面是用戶名,逗號后面是登錄密碼
2. 配置Hive解釋器
2.1 前提條件(啟動HiverServer2)
要在zeppelin中使用Hive,必須啟動hiverserver2服務 以后台方式啟動hiveserver2
nohup hive --service hiveserver2 &
2.2 修改配置文件
復制hive-site.xml到zeppline中
cp /data/soft/hive-3.1.2/conf/hive-site.xml /data/soft/zeppelin-0.9.0-bin-all/conf
2.3 配置Hive解釋器
新建一個繼承jdbc的解釋器,命名為hive,如下圖所示 

| 屬性名稱 | 屬性值 |
|---|---|
| default.url | jdbc:hive2://192.168.21.102:10000 |
| default.driver | org.apache.hive.jdbc.HiveDriver |
屬性配置完成夠,將以下依賴添加到hive解釋器依賴庫中。
| Artifate | Exclude |
|---|---|
| org.apache.hive:hive-jdbc:3.1.2 | |
| org.apache.hadoop:hadoop-common:3.2.0 | |
| mysql:mysql-connector-java:5.1.38 |
測試Hive解釋器
新建筆記 

在筆記中輸入以下測試筆記
%hive
show databases;

3. 配置Spark解釋器
Zeppelin默認的spark解釋器包括%spark , %sql , %dep , %pyspark , %ipyspark , %r等子解釋器,在實際應用中根據spark集群的參數修改具體的屬性 進入解釋器配置界面,默認為local[*],Spark采用何種運行模式,參數配置信息如下。
local模式:使用local[*],[]中為線程數,*代表線程數與計算機的CPU核心數一致。
standalone模式: 使用spark://master:7077
yarn模式:使用yarn-client或yarn-cluster
mesos模式:使用mesos://zk://zk1:2181,zk2:2182,zk3:2181/mesos或mesos://host:5050

測試 運行Zeppelin自帶的Basic Feature(Spark)案例。 
import org.apache.commons.io.IOUtils
import java.net.URL
import java.nio.charset.Charset
// Zeppelin creates and injects sc (SparkContext) and sqlContext (HiveContext or SqlContext)
// So you don't need create them manually
// load bank data
val bankText = sc.parallelize(
IOUtils.toString(
new URL("https://s3.amazonaws.com/apache-zeppelin/tutorial/bank/bank.csv"),
Charset.forName("utf8")).split("\n"))
case class Bank(age: Integer, job: String, marital: String, education: String, balance: Integer)
val bank = bankText.map(s => s.split(";")).filter(s => s(0) != "\"age\"").map(
s => Bank(s(0).toInt,
s(1).replaceAll("\"", ""),
s(2).replaceAll("\"", ""),
s(3).replaceAll("\"", ""),
s(5).replaceAll("\"", "").toInt
)
).toDF()
bank.registerTempTable("bank")

4. 配置Flink解釋器
4.1 准備Flink環境
配置Flink集群。並啟動Flink服務。
# $FLINK_HOME/bin
cd /data/soft/flink-1.12.5/bin
# 啟動flink集群
./start-cluster.sh

4.2 Zeppelin中配置Flink集群
| 參數名稱 | 參數值 | 參數含義 |
|---|---|---|
| FLINK_HOME | Flink集群目錄 | |
| HADOOP_CONF_DIR | Hadoop配置文件目錄 | |
| HIVE_CONF_DIR | HIVE配置文件目錄 | |
| Flink.execution.mode | Flink執行模式,可以選擇本地、遠程和yarn | |
| Flink.execution.remote.host | 遠程模式主機host,僅適用於remote模式 | |
| Flink.execution.remote.port | 8081 | 執行JobManager端口,僅適用於remote模式 |

4.3 測試Flink解釋器
選擇Notebook -->Flink Basics文件夾 -->Flink Basics筆記。

執行第一個Batch WordCount任務。點擊運行符號,或輸入shift+enter執行任務。 
可以在Flink Web UI中看到提交過來的Job和處理的詳情 
隨后可以看到任務已執行完畢,並在筆記界面看到輸出結果展示。 Flink Web UI 顯示任務已執行完畢。 
筆記界面已顯示執行結果。 
