【写在前面】本文是基于前文单机部署的基础上,扩展到kylin的集群部署模式。大数据平台使用的是金山云的大数据平台环境,本质也是CDH。如果想进行kylin的集群部署,需要先完成前文kylin多维数据分析(二)教程中的步骤噢。
start
01
Kylin集群部署
一、修改配置文件
在完成前文的单机部署以后,就可以进行集群模式的在线扩展了。扩展前,需要明确即将安装的几台机器,哪个为主节点,哪几个为从节点。只有一台节点是all模式(可提交job也可以当做查询节点,提交构建cube命令的节点),其余节点必须是query模式(只能进行查询)。下文的集群部署为一台all主节点,两台query节点。
1)修改主节点的kylin.properties(kylin安装用户)
## 进入目录
cd /home/etl/kylin/bin
## 如果之前运行过请先关闭,否则跳过此步骤
./kylin.sh stop
## 进入kylin的配置文件目录
cd /home/etl/kylin/conf
## 打开kylin.properties
vi kylin.properties
## 修改如下三条属性,将IP替换成自己节点的IP
kylin.server.mode=all
kylin.server.cluster-servers=172.19.131.xxx:7070,172.19.131.xx:7070,172.19.131.xx:7070
kylin.web.timezone=GMT+8
## 保存退出
:wq
## 进入目录
cd /home/etl/kylin/bin
## 如果之前运行过请先关闭,否则跳过此步骤
./kylin.sh stop
## 进入kylin的配置文件目录
cd /home/etl/kylin/conf
## 打开kylin.properties
vi kylin.properties
## 修改如下三条属性,将IP替换成自己节点的IP
kylin.server.mode=all
kylin.server.cluster-servers=172.19.131.xxx:7070,172.19.131.xx:7070,172.19.131.xx:7070
kylin.web.timezone=GMT+8
## 保存退出
:wq
2)修改其他两台从节点的kylin.properties前必须执行前文同样的环境检查。
2.1)检查安装kylin的机器是否开启时钟同步(root用户)
## 查看状态
systemctl status ntpd
## 如果状态是active,则跳过后面的步骤,执行检查 2)
## 状态为inactive,执行如下步骤,先启动
systemctl start ntpd
## 设置开机自启动ntp服务
systemctl enable ntpd
## 再次检查
systemctl status ntpd
## 如果状态是ntpd.service没找到,则需要安装再启动
su root
sudo yum install ntp
## 查看状态
systemctl status ntpd
## 如果状态是active,则跳过后面的步骤,执行检查 2)
## 状态为inactive,执行如下步骤,先启动
systemctl start ntpd
## 设置开机自启动ntp服务
systemctl enable ntpd
## 再次检查
systemctl status ntpd
## 如果状态是ntpd.service没找到,则需要安装再启动
su root
sudo yum install ntp
2.2)安装net-tools(root用户)
## 安装net-tools,否则后面执行kylin环境检查./check-env.sh会报错
yum install -y net-tools
## 安装net-tools,否则后面执行kylin环境检查./check-env.sh会报错
yum install -y net-tools
2.3)检查hive是否可用(用kylin的安装用户去检查)
## 进入habse,如果需要输入密码,请配置成免密登录
hbase shell
## 进入后使用list命令
list
## 查看desc命令是否可用
desc '[namespacename:]tablename'
## 进入habse,如果需要输入密码,请配置成免密登录
hbase shell
## 进入后使用list命令
list
## 查看desc命令是否可用
desc '[namespacename:]tablename'
有时候会出现scan或者desc命令不能使用,考虑权限不够,需要修改权限。
2.4)检查hbase是否可用(用kylin的安装用户去检查)
## 进入hive,如果需要输入密码,请配置成免密登录
hive
## 进入后使用show databases命令
show databases
## 检查hive的default库有没有增删改查权限
## 进入hive,如果需要输入密码,请配置成免密登录
hive
## 进入后使用show databases命令
show databases
## 检查hive的default库有没有增删改查权限
2.5)检查hive的hive-site.xml是否配置了如下属性,如果没有,请配置
<property>
<name>hive.security.authorization.sqlstd.confwhitelist.appendname>
<value>mapred.*|hive.*|mapreduce.*|spark.*value>
property>
<property>
<name>hive.security.authorization.sqlstd.confwhitelistname>
<value>mapred.*|hive.*|mapreduce.*|spark.*value>
property>
<property>
<name>hive.server2.builtin.udf.blacklistname>
<value>emptyvalue>
property>
注意:如果使用的是KDE金山云,修改需要在KDE界面上添加,直接去服务器上的配置文件修改的话,重启后会被删除,导致无法生效!
3)完成环境检查后,同理修改其他两台从节点的kylin.properties(kylin安装用户)
## 注意!其他两台从节点的mode为query模式
kylin.server.mode=query
## 注意!其他两台从节点的mode为query模式
kylin.server.mode=query
4)接着记得设置这两台节点的用户环境变量
## 编辑用户的环境变量,添加如下两个环境变量
vim ~/.bashrc
export KYLIN_HOME=/home/etl/kylin
## 编辑用户的环境变量,添加如下两个环境变量
vim ~/.bashrc
export KYLIN_HOME=/home/etl/kylin
5)还要在server.xml中注释掉一段代码
## 进入配置文件目录
cd /home/etl/kylin/tomcat/conf
## 进入server.xml编辑
vi server.xml
## 进入配置文件目录
cd /home/etl/kylin/tomcat/conf
## 进入server.xml编辑
vi server.xml
注释掉的代码如下:
6)检查tomcat的lib文件夹下是否有如下jar包,如果没有可以百度下载一下,然后上传到该目录下。
二、启动并测试
## 进入目录启动
cd /home/etl/kylin/bin
./kylin.sh start
## 进入目录启动
cd /home/etl/kylin/bin
./kylin.sh start
启动后,进行web页面做简单的测试。
02
Nginx安装
一、安装
安装负载均衡器。为了将查询请求发送给集群而非单个节点,可以部署一个负载均衡器,如Nginx,F5 或cloudlb等,使得客户端和负载均衡器通信代替和特定的Kylin实例通信。关于使用到zxvf pcre-8.35.tar.gz,nginx-1.6.2.tar.gz可以提前下载,也可在线安装。
1) 安装编译工具及库文件(切换到主节点的root用户)
## 先安装一些必要工具
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
## 先安装一些必要工具
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2) 接着安装PCRE
## 进入想要安装的目录
cd /usr/local/src/
## 在线下载安装包
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
## 解压
tar zxvf pcre-8.35.tar.gz
## 进入目录
cd pcre-8.35
## 配置和编译
./configure
make && make install
## 查看安装版本
pcre-config --version
## 进入想要安装的目录
cd /usr/local/src/
## 在线下载安装包
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
## 解压
tar zxvf pcre-8.35.tar.gz
## 进入目录
cd pcre-8.35
## 配置和编译
./configure
make && make install
## 查看安装版本
pcre-config --version
3) 安装Nginx
## 步骤1:进入目录
cd /usr/local/src/
## 步骤2:下载
wget http://nginx.org/download/nginx-1.6.2.tar.gz
## 步骤3:解压
tar zxvf nginx-1.6.2.tar.gz
## 步骤4:进入目录
cd nginx-1.6.2
## 步骤5:设置
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
## 步骤6:编译
make
## 步骤7:安装
make install
## 步骤8:查看版本
/usr/local/webserver/nginx/sbin/nginx -v
## 步骤9:创建运行nginx的组
/usr/sbin/groupadd www
## 步骤10:创建账户
/usr/sbin/useradd -g www www
## 步骤11:配置nginx.conf
cd /usr/local/webserver/nginx/conf/
## 步骤12:将原来的conf备份
mv nginx.conf nginx.conf.bak
## 步骤13:新建nginx.conf
vi nginx.conf
## 步骤1:进入目录
cd /usr/local/src/
## 步骤2:下载
wget http://nginx.org/download/nginx-1.6.2.tar.gz
## 步骤3:解压
tar zxvf nginx-1.6.2.tar.gz
## 步骤4:进入目录
cd nginx-1.6.2
## 步骤5:设置
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
## 步骤6:编译
make
## 步骤7:安装
make install
## 步骤8:查看版本
/usr/local/webserver/nginx/sbin/nginx -v
## 步骤9:创建运行nginx的组
/usr/sbin/groupadd www
## 步骤10:创建账户
/usr/sbin/useradd -g www www
## 步骤11:配置nginx.conf
cd /usr/local/webserver/nginx/conf/
## 步骤12:将原来的conf备份
mv nginx.conf nginx.conf.bak
## 步骤13:新建nginx.conf
vi nginx.conf
复制的如下的文件内容到nginx的配置文件中:
user www www;
worker_processes auto;
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
#charset gb2312;
access_log /usr/local/webserver/nginx/logs/access.log;
#下面是server虚拟主机的配置
server
{
#监听端口
listen 18080;
#域名,此处好像不影响nginx,可根据实际IP修改
server_name 172.19.131.*;
index index.html index.htm index.php;
#站点目录 #站点目录
root /usr/local/webserver/nginx/html;
location /
{
proxy_pass http://kylin.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
upstream kylin.com {
ip_hash;
server 172.19.131.xxx:7070 weight=3; #注意替换成自己的IP
server 172.19.131.xx:7070; #注意替换成自己的IP
server 172.19.131.xx:7070; #注意替换成自己的IP
}
}
##如果三台机器性能一样可以不添加weight=3。
user www www;
worker_processes auto;
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
#charset gb2312;
access_log /usr/local/webserver/nginx/logs/access.log;
#下面是server虚拟主机的配置
server
{
#监听端口
listen 18080;
#域名,此处好像不影响nginx,可根据实际IP修改
server_name 172.19.131.*;
index index.html index.htm index.php;
#站点目录 #站点目录
root /usr/local/webserver/nginx/html;
location /
{
proxy_pass http://kylin.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
upstream kylin.com {
ip_hash;
server 172.19.131.xxx:7070 weight=3; #注意替换成自己的IP
server 172.19.131.xx:7070; #注意替换成自己的IP
server 172.19.131.xx:7070; #注意替换成自己的IP
}
}
##如果三台机器性能一样可以不添加weight=3。
4) 检查和启动Nginx
## 步骤15:检查配置文件nginx.conf的正确性
/usr/local/webserver/nginx/sbin/nginx -t
## 步骤16:启动
/usr/local/webserver/nginx/sbin/nginx
## 步骤14:查看是否启动成功
ps -ef | grep nginx
## 步骤15:检查配置文件nginx.conf的正确性
/usr/local/webserver/nginx/sbin/nginx -t
## 步骤16:启动
/usr/local/webserver/nginx/sbin/nginx
## 步骤14:查看是否启动成功
ps -ef | grep nginx
配置完成以后输入http://172.19.131.xxx:18080/kylin/(所部署的nginx节点的IP)输入用户ADMIN和密码KYLIN,看到kylin正常的页面即成功(确定三台节点kylin都已经启动)
Tips:其他的Nginx命令
## 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reload
## 重启
/usr/local/webserver/nginx/sbin/nginx -s reopen
## Nginx
Nginx/usr/local/webserver/nginx/sbin/nginx -s stop
## 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reload
## 重启
/usr/local/webserver/nginx/sbin/nginx -s reopen
## Nginx
Nginx/usr/local/webserver/nginx/sbin/nginx -s stop
本文的介绍到此结束,下一篇文章记录对kylin的model和cube基础知识点~
end