1.安装Java
Zeppelin支持的操作系统如下图所示。在安装Zeppelin之前,你需要在部署的服务器上安装Oracle JDK 1.7或以上版本, 并配置好相应的JAVA_HOME环境变量。
以CentOS为例,具体操作过程如下:
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
下载地址:
选择二进制安装包,这里以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,输出如下:
# bin/zeppelin-daemon.sh start
Log dir doesn't exist, create /data/Hadoop/zeppelin/zeppelin-0.7.2-bin-all/logs
Pid dir doesn't exist, create /data/hadoop/zeppelin/zeppelin-0.7.2-bin-all/run
Zeppelin start [ OK ]
这说明Zeppelin已经部署成功。
4.验证能否正常登陆
Zeppelin默认启动在8080端口,在浏览器中访问Zeppelin主页,访问地址是: :8080/,你将看到类似如下的页面。
我们在浏览器中输入 :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的账号密码)
[root@u04rdp01 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 ]
启动成功之后,可以访问 :8080
8.验证是否可以通过刚才配置的账号密码登录
最后,你可以使用刚才配置的用户名/密码组合进行登录: