CentOS 6.5中部署Zeppelin并配置账号密码验证

AlvinPanda 2018-11-24

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
下载地址: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,输出如下:

# 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主页,访问地址是: http://your_host_ip:8080/,你将看到类似如下的页面。

我们在浏览器中输入 http://localhost:8080/ 进入Zeppelin的主页,不需要用任何的验证就可以进入主页面:

换句话说,任何人在浏览器输入上面地址(本机),都可以访问Zeppelin里的所有内容. 在上图中我们也可以看到我们的登陆用户是anonymous.

CentOS 6.5中部署Zeppelin并配置账号密码验证

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,表示不允许匿名访问.

CentOS 6.5中部署Zeppelin并配置账号密码验证

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 ]

启动成功之后,可以访问 http://ip:8080

8.验证是否可以通过刚才配置的账号密码登录
最后,你可以使用刚才配置的用户名/密码组合进行登录:

CentOS 6.5中部署Zeppelin并配置账号密码验证

相关推荐