CentOS 6.5中部署Zeppelin並配置賬號密碼驗證
a)下載並安裝jdk-8u111-linux-x64.rpm
# rpm -ivh jdk-8u111-linux-x64.rpm
b)配置環境變數。在/etc/profile檔案結尾新增:
export JAVA_HOME=/usr/java/jdk1.8.0_111
export PATH=${JAVA_HOME}/bin:$PATH
c)使環境變數生效
source /etc/profile
2.獲取Zeppelin
下載地址:http://zeppelin.apache.org/download.html
選擇二進位制安裝包,這裡以zeppelin-0.7.2-bin-all.tgz為例。
3.安裝Zeppelin
安裝Zeppelin只需如下命令解壓二進位制安裝包即可:
# tar zxvf zeppelin-0.7.2-bin-all.tgz
啟動Zeppelin:
# cd /data/zeppelin-0.7.2-bin-all
(Zeppelin的安裝目錄)
第一次啟動Zeppelin,輸出如下:
這說明Zeppelin已經部署成功。
4.驗證能否正常登陸
Zeppelin預設啟動在8080埠,在瀏覽器中訪問Zeppelin主頁,訪問地址是: http://your_host_ip:8080/,你將看到類似如下的頁面。
我們在瀏覽器中輸入 http://localhost:8080/ 進入Zeppelin的主頁,不需要用任何的驗證就可以進入主頁面:
換句話說,任何人在瀏覽器輸入上面地址(本機),都可以訪問Zeppelin裡的所有內容. 在上圖中我們也可以看到我們的登陸使用者是anonymous.
5.修改登陸zeeplin驗證方式
禁止匿名訪問
Zeppelin啟動預設是匿名(anonymous)模式登入的.如果設定訪問登入許可權,需要設定conf/zeppelin-site.xml檔案下的zeppelin.anonymous.allowed選項為false(預設為true).如果你還沒有這個檔案,只需將conf/zeppelin-site.xml.template複製為conf/zeppelin-site.xml。
# cd /data/hadoop/zeppelin/zeppelin-0.7.2-bin-all/conf
# cp zeppelin-site.xml.template zeppelin-site.xml
<property>
<name>zeppelin.anonymous.allowed</name>
<value>false</value>
<description>Anonymous user allowed by default</description>
</property>
將zeppelin.anonymous.allowed設定為false,表示不允許匿名訪問.
a)開啟Shiro
在剛安裝完畢之後,預設情況下,在conf中,將找到shiro.ini.template,該檔案是一個配置示例,建議你通過執行如下命令列建立shiro.ini檔案:
cp conf/shiro.ini.template conf/shiro.ini
配置shiro.ini(即訪問zeppelin的賬號密碼)
[[email protected] conf]# cat shiro.ini
[users]
#admin = password1, admin
#user1 = password2, role1, role2
#user2 = password3, role3
#user3 = password4, role2
hadoop = hadoop, admin # 使用者名稱、密碼都是hadoop,角色為admin
[main]
"CN=admin,OU=groups,DC=SOME_GROUP,DC=COMPANY,DC=COM":"admin","CN=finance,OU=groups,DC=SOME_GROUP,DC=COMPANY,DC=COM":"finance","CN=hr,OU=groups,DC=SOME_GROUP,DC=COMPANY,DC=COM":"hr"
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
securityManager.sessionManager = $sessionManager
securityManager.sessionManager.globalSessionTimeout = 86400000
shiro.loginUrl = /api/login
[roles]
role1 = *
role2 = *
role3 = *
admin = *
[urls]
/api/version = anon
#/api/interpreter/** = authc, roles[admin]
#/api/configurations/** = authc, roles[admin]
#/api/credential/** = authc, roles[admin]
#/** = anon
/** = authc
b)重新啟動 Zeppelin
bin/zeppelin-daemon.sh restart
Zeppelin stop [ OK ]
Zeppelin start [ OK ]
啟動成功之後,可以訪問 http://ip:8080
8.驗證是否可以通過剛才配置的賬號密碼登入
最後,你可以使用剛才配置的使用者名稱/密碼組合進行登入: