您的位置:首页 > 运维架构 > Linux

CDH 5.9 之 Kylin 安装 (SuSE Linux Enterprise 12 SP1)

2017-02-08 14:54 816 查看
摘要: Kylin的安装,也存在不少坑,绝对不是网站上说的那么简单。

##前言

Kylin的官网上,关于安装部分,只有寥寥数语,但是很多人在安装Kylin的时候,都遇到各种问题。那么这个到底是什么情况呢?
原因很简单:Kylin的check-env.sh,有点弱。很多时候,用户在安装kylin时候,并没有花太多时间去准备基础环境,匆匆忙忙就开始安装了,然后依赖于check-env.sh来检查环境,以为通过了就肯定没事。最后就陷入各种莫名其妙的错误,无法自拔。

##前提条件

Kylin的安装关键,并不在Kylin本身,而是在基础环境。Kylin依赖4大组件,hdfs,hive,hbase和zookeeper。Kylin能不能正常运行,和上述4大组件是否运行正常,以及是否能够在安装Kylin的主机上,以客户端方式正常访问,有着莫大的关系。

和hdfs的关系

kylin依赖于hdfs存储数据,所以kylin要有hdfs的写权限,必须有/kylin目录

和hive的关系

kylin需要在hive里建表,所以必须有hive的建表权限

和yarn的关系

kylin的作业都是map reduce作业,是通过yarn管理的。kylin会读取yarn中作业的状态,以判断作业的状态。yarn的history log如果没有配好,会导致kylin无法找到单步作业运行的正确状态,结果无法转到下一步。

##安装步骤

环境检查

#hdfs检查
#使用hadoop命令,检查集群上的配置
hadoop fs -ls /kylin #检查是否有kylin目录
hadoop fs -ls /user/history #检查是否有history目录
#hive检查
#使用hive或者beeline登录集群


应用安装

下载最新的包,这个没有问题。

cd /usr/local/bin
wget http://apache.fayea.com/kylin/apache-kylin-1.6.0/apache-kylin-1.6.0-cdh5.7-bin.tar.gz tar zxvf apache-kylin-1.6.0-cdh5.7-bin.tar.gz


执行检查程序

# /usr/local/bin/apache-kylin-1.6.0-cdh5.7-bin/bin.check-env.sh

提示permission denied的错误。原来此处要用hadoop用户,才能在hdfs上创建目录。别看你是系统管理员,一样权限不足。解决的方法是:

```
su - hdfs
/usr/local/bin/apache-kylin-1.6.0-cdh5.7-bin/bin.check-env.sh
```

这次就检查通过了。

kylin的文档,真的不怎么样,所以只能自己去找答案.

踩坑之用户管理

Kylin的用户管理,居然没有文档,只有一个很简单的faq里,很隐晦的提了一句。
Kylin采用多种方式管理用户。最简单的是自己在配置文件里管理用户。用户名是明文,密码是经过encode的密文。
具体的配置文件为:/opt/apache-kylin-2.0.0-bin/tomcat/webapps/kylin/WEB-INF/classes/kylinSecurity.xml
要修改的地方在:

<beans profile="testing">
<util:list id="adminAuthorities"
value-type="org.springframework.security.core.authority.SimpleGrantedAuthority">
<value>ROLE_ADMIN</value>
<value>ROLE_MODELER</value>
<value>ROLE_ANALYST</value>
</util:list>
<util:list id="modelerAuthorities"
value-type="org.springframework.security.core.authority.SimpleGrantedAuthority">
<value>ROLE_MODELER</value>
<value>ROLE_ANALYST</value>
</util:list>
<util:list id="analystAuthorities"
value-type="org.springframework.security.core.authority.SimpleGrantedAuthority">
<value>ROLE_ANALYST</value>
</util:list>

<bean class="org.springframework.security.core.userdetails.User" id="adminUser">
<constructor-arg value="ADMIN"/>
<constructor-arg
value="$2a$10$o3ktIWsGYxXNuUWQiYlZXOW5hWcqyNAFQsSSCSEWoC/BRVMAUjL32"/>
<constructor-arg ref="adminAuthorities"/>
</bean>
<bean class="org.springframework.security.core.userdetails.User" id="modelerUser">
<constructor-arg value="MODELER"/>
<constructor-arg
value="$2a$10$o3ktIWsGYxXNuUWQiYlZXOW5hWcqyNAFQsSSCSEWoC/BRVMAUjL32"/>
<!--
value="$2a$10$Le5ernTeGNIARwMJsY0WaOLioNQdb0QD11DwjeyNqqNRp5NaDo2FG"/>
-->
<constructor-arg ref="modelerAuthorities"/>
</bean>
<bean class="org.springframework.security.core.userdetails.User" id="analystUser">
<constructor-arg value="ANALYST"/>
<constructor-arg
value="$2a$10$o3ktIWsGYxXNuUWQiYlZXOW5hWcqyNAFQsSSCSEWoC/BRVMAUjL32"/>
<!--
value="$2a$10$s4INO3XHjPP5Vm2xH027Ce9QeXWdrfq5pvzuGr9z/lQmHqi0rsbNi"/>
-->
<constructor-arg ref="analystAuthorities"/>
</bean>

<bean id="kylinUserAuthProvider"
class="org.apache.kylin.rest.security.KylinAuthenticationProvider">
<constructor-arg>
<bean class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
<property name="userDetailsService">
<bean class="org.springframework.security.provisioning.InMemoryUserDetailsManager">
<constructor-arg>
<util:list
value-type="org.springframework.security.core.userdetails.User">
<ref bean="adminUser"></ref>
<ref bean="modelerUser"></ref>
<ref bean="analystUser"></ref>
</util:list>
</constructor-arg>
</bean>
</property>
<property name="passwordEncoder" ref="passwordEncoder"></property>
</bean>
</constructor-arg>
</bean>

<!-- user auth -->
<bean id="passwordEncoder"
class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"/>

<scr:authentication-manager alias="testingAuthenticationManager">
<!-- do user ldap auth -->
<scr:authentication-provider ref="kylinUserAuthProvider"></scr:authentication-provider>
</scr:authentication-manager>
</beans>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: