saiku的社区版本二次开发一直以来都是比较费劲的,最近saiku社区版在新版本中,引入了license的机制,于是我选了个3.8稳定版本(release-3.8),且不需要license的版本作为基础,将代码合并在一个项目中,以简化二次开发和源码研究。
作为一个普通maven项目,可以使用eclipse部署在tomcat中,debug等各种玩耍
创建新项目saiku3
在创建的项目中,分别创建resource目录:“src/main/saiku-web”,“src/main/saiku-service”,“src/main/saiku-olap-util”,并将saiku-core下的相应代码(java目录下和resources目录下的文件)分别copy到里面,
将saiku-webapp\src\main\webapp目录下的所有文件,覆盖到新建项目的webapp目录中
将编译过后的zip包中tomcat\webapps\下的ROOT目录中文件全部copy到新建项目的webapp目录中并修改/saiku3/src/main/webapp/js/saiku/Settings.js文件中的TOMCAT_WEBAPP值为“/saiku3”
将编译过后的zip包中saiku-server目录下的data和repository文件夹copy到项目的webapp目录中
修改saiku-beans.properties文件,修改所有“../../”的地方替换为“../webapps/saiku3/”;修改saiku-beans.properties文件,修改pluginpath为“../webapps/saiku3/js/saiku/plugins/”(20160614修改)
修改eclipse中tomcat的工��路径:参考如下文章
http://blog.csdn.net/gsying1474/article/details/51597995
修改 Database.java中的init方法,注释loadEarthquakes();方法的调用,以保证代码启动(此方法的代码中有部分导
MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。
MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。关于 Cluster 中这些组件的关系。
下文中没有特别指出的地方,都是两台服务器都需要执行的命令,并且由于是双管理中心配置,其实两台机器出了一些标识id和ip的配置不同外,其他参数配置都是基本一样的
其中第一个命令我不执行也可以,其他系统如果不可以,还是建议执行
yum -y remove mysql
rpm -qa | grep mysql*
rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
创建文件夹(分如下3个类来创建对应的文件夹)
存储节点:
mkdir /var/lib/mysql/data
管理节点:
mkdir /var/lib/mysql-cluster # SQL节点:可不用 文件夹授权
进程DIR:
mkdir /var/run/mysqld
使用如下的命令来变更权限保证可写入:
chmod -R 1777 /var/lib/mysql
chmod -R 1777 /var/run/mysqld
chmod -R 1777 /var/lib/mysql-cluster
首先解压MySQL-Cluster-gpl-7.4.2-1.el6.x86_64.rpm-bundle.tar
tar xvf MySQL-C
==首先要升级到CentOS7.2,有一个XFS的Bug在7.2系统被修复了。==
echo "overlay" > /etc/modules-load.d/overlay.conf
# lsmod | grep over
overlay 42451 0
reboot
创建文件夹
mkdir -p /etc/systemd/system/docker.service.d
加入参数:
cat >/etc/systemd/system/docker.service.d/override.conf <<E
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon --storage-driver=overlay -H fd://
E
重启
systemctl daemon-reload
systemctl restart docker
echo "overlay" > /etc/modules-load.d/overlay.conf
lsmod | grep over
reboot
rm -rf /var/lib/docker
vi /usr/lib/systemd/system/docker.service
修改配置:
找到如下一行
ExecStart=/usr/bin/dockerd
加入参数:
--storage-driver=overlay
重启
systemctl daemon-reload
systemctl restart docker
by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuy
早就知道docker1.12有很大的改变,仰慕也是很久了,十一期间,抽了点时间(其他时间都在玩)根据官方文档试了下,还是挺好玩的,很多功能也很实用(服务发现、自动伸缩等),下面就是我的操作步奏,大家一起来看看
TCP 2377 集群管理节点通信的端口
TCP & UDP 7946 集群节点通信的端口
TCP & UDP 4789 overlay 网络通信端口
firewall-cmd --permanent --add-port={2377/tcp,2377/udp,7946/tcp,7946/udp,4789/tcp,4789/udp}
firewall-cmd --reload
firewall-cmd --list-all
# 主节点
docker swarm init --advertise-addr 192.168.11.33
# 子节点
docker swarm join \
--token SWMTKN-1-51w1r44gg7n392k4eti1i52zrbhwjwkmmqoe2zugtur483rdyb-9yb9ucnj23xc0k49sh7cddge3 \
192.168.11.33:2377
# 创建服务
docker service create --replicas 1 --name helloworld alpine ping docker.com
# 查看服务
docker service ls
# 使用inspect查看服务
docker service inspect --pretty helloworld
# 使用inspect查看服务的详细信息
docker service inspect helloworld
# 查看服务在各个节点上运行的信息
docker service ps helloworld
# 将helloworld节点拓展到5个
docker service scale helloworld=5
# 查看服务在节点上的运行信息
docker servi
某些特殊情况下,需要将某些服务固定在一台宿主机上,K8S也适应这种方式,下面以mongo为例,来看看如何实现的:
kubectl label nodes kube-node node=kube-node
kubectl get node -a -l "node=kube-node"
pod或者rc的配置项中添加如下配置:
nodeSelector:
node: kube-node4
如mongo启动的rc文件
apiVersion: v1
kind: ReplicationController
metadata:
name: mongo
spec:
replicas: 1
template:
metadata:
labels:
run: mongo
spec:
containers:
- name: mongo
image: daocloud.io/library/mongo:3.2.4
ports:
- containerPort: 27017
volumeMounts:
- mountPath: /data/db
name: mongo
volumes: [{"name":"mongo","hostPath":{"path":"/root/volumes/mongo"}}]
nodeSelector:
node: kube-node4
by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(==防止爬虫==):http://blog.liuyingguang.cn