做了半年kylin,基本停留在操作Web UI的层面,当然,期间也遇到一些坑,但是大多是社区好心人帮忙解决的,尤其跟环境相关的,一出问题,很长时间都解决不了,现在项目的kylin服务已经完成并且对外提供服务了,有了一些基础,想更深入一点学习使用kylin,学习需要理论结合实践,生产环境肯定不能随便动了,那就自己动手搭一个环境吧。
三台Centos7的虚拟机,内存8G,8核CUP,200G硬盘。
10.0.86.93 master
10.0.86.94 slave1
10.0.86.95 slave2
将以上内容增加到三台机器的/etc/hosts文件中。
以下为版本信息:
我对环境基本是一无所知的,之前的环境都是同事搭的,我只大概知道,kylin依赖hive和hbase(源数据表存储在hive中,cube信息及数据存储在HBASE中),于是大概知道需要安装hadoop、hive以及HBASE,在安装过程中,发现hive依赖mysql,HBASE依赖zookeeper,这才理清所有的安装步骤。
依次安装,hadoop、mysql、hive、zookeeper、hbase、kylin。
一、Hadoop安装
本次安装参考https://www.linuxidc.com/Linux/2015-11/124800.htm
1、基础环境
在安装Hadoop之前,需要配置ssh免密码登录以及安装jdk。
1.1 ssh免密登录
hadoop需要通过ssh登录到各个节点进行操作,因此需要配置免密登录,我用的是root账户,在root账户下生成各台机器的公钥,然后再将公钥合并到authorized_keys,分发到各台机器。
(1)CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中2行的注释,每台服务器都要设置,
#RSAAuthentication yes
#PubkeyAuthentication yes
(2)输入命令,ssh-keygen -t rsa,生成key,都不输入密码,一直回车,/root就会生成.ssh文件夹,每台服务器都要设置,
(3)合并公钥到authorized_keys文件,在Master服务器,进入/root/.ssh目录,通过SSH命令合并,
cat id_rsa.pub>> authorized_keys
ssh [email protected] cat ~/.ssh/id_rsa.pub>> authorized_keys
ssh [email protected] cat ~/.ssh/id_rsa.pub>> authorized_keys
(4)把Master服务器的authorized_keys、known_hosts复制到Slave服务器的/root/.ssh目录
(5)完成,ssh [email protected]、ssh [email protected]就不需要输入密码了.
1.2 jdk安装
jdk安装也遇到了点问题,一开始安装好之后,用java -version看没有问题,以为安装成功了,但实际上出来的是openjdk的版本信息,如下图所示:
当时没有注意,导致hadoop安装好之后,提示找不到java的路径。这是因为对于centos系统,如果不是最小化安装,会默认安装openjdk,因此在安装jdk之前需要先将openjdk删除,命令为rpm -e --nodeps `rpm -qa | grep java`,centos安装jdk具体请参考https://www.cnblogs.com/panzhaohui/p/6306675.html。
2、安装Hadoop2.7.6,只在Master服务器解压,再复制到Slave服务器
(1)下载“hadoop-2.7.6.tar.gz”,放到/home/hadoop目录下
(2)解压,输入命令,tar -xzvf hadoop-2.7.6.tar.gz
(3)在/home/hadoop目录下创建数据存放的文件夹,tmp、hdfs、hdfs/data、hdfs/name
(4)配置hadoop环境变量:
vim /etc/profile,加入如下内容:
然后,source /etc/profile使配置生效。
输入hadoop,提示如下说明配置成功了。
7、配置/home/hadoop/hadoop-2.7.6/etc/hadoop目录下hadoop-env.sh、yarn-env.sh的JAVA_HOME,不设置的话,启动不了(这一点我没有验证,我觉得应该可以不配,因为设置了JAVA_HOME),
export JAVA_HOME=/home/java/jdk1.8.0_171
8、配置/home/hadoop/hadoop-2.7.6/etc/hadoop目录下的slaves,删除默认的localhost,增加2个从节点,(1)初始化,输入命令,bin/hdfs namenode -format,成功后部分消息显示如下:
(2)全部启动sbin/start-all.sh,也可以分开sbin/start-dfs.sh、sbin/start-yarn.sh二、MySQL安装
安装mysql请参考https://blog.csdn.net/jssg_tzw/article/details/68944693,步骤详细。
这里主要记录遇到的问题
1、安装完成之后,找不到安装目录,其实参考链接中写了安装目录,我当时以为那是自定义的目录,其实不是,rpm安装mysql后,默认的目录为/var/lib/mysql,有关linux rpm 安装后 mysql 默认安装目录等信息请参考https://www.cnblogs.com/nucdy/p/7727143.html。
2、在安装完成之后,在root路径下找不到.mysql_secret文件。查了很久,发现初始的密码不一定是在 .mysql_secret文件中,至少在本次实践中,不存在
.mysql_secret文件。而是在/var/log/mysqld.log中。mysql安装完成之后,在/var/log/mysqld.log文件中给root用户生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
输入密码登入后修密码
三、Hive安装
这个链接https://blog.csdn.net/jssg_tzw/article/details/72898635写的非常详细,我基本就是照着操作的。
配置文件hive-site.xml:
期间遇到几个问题:
1、schematool -initSchema -dbType mysql初始化报错:
Duplicate entry ‘1’ for key ‘PRIMARY’
原因:因为我之前手动在mysql数据库当中建立了hive数据库,主键是在同一张表中必须是唯一的,如果在进行数据插入的时候指定的主键与表中已有 的数据重复的话则会导致违反主键约束的异常。
四、Zookeeper安装
https://blog.csdn.net/pucao_cug/article/details/72228973
照着网页一步一步操作就行。
遇到问题:
五、Hbase安装
https://blog.csdn.net/pucao_cug/article/details/72229223
hbase安装很顺利,照着网页操作没有遇到问题。
六、Kylin安装
参照官网即可。