OpenBI saiku 二次开发    2017-03-26 21:54:22    727

总览

saiku的社区版本二次开发一直以来都是比较费劲的,最近saiku社区版在新版本中,引入了license的机制,于是我选了个3.8稳定版本(release-3.8),且不需要license的版本作为基础,将代码合并在一个项目中,以简化二次开发和源码研究。

完成以下步骤后的结果是:

作为一个普通maven项目,可以使用eclipse部署在tomcat中,debug等各种玩耍

操作步奏

  1. 创建新项目saiku3image

  2. 在创建的项目中,分别创建resource目录:“src/main/saiku-web”,“src/main/saiku-service”,“src/main/saiku-olap-util”,并将saiku-core下的相应代码(java目录下和resources目录下的文件)分别copy到里面,

  3. 将saiku-webapp\src\main\webapp目录下的所有文件,覆盖到新建项目的webapp目录中

  4. 将编译过后的zip包中tomcat\webapps\下的ROOT目录中文件全部copy到新建项目的webapp目录中并修改/saiku3/src/main/webapp/js/saiku/Settings.js文件中的TOMCAT_WEBAPP值为“/saiku3”

  5. 将编译过后的zip包中saiku-server目录下的data和repository文件夹copy到项目的webapp目录中

  6. 修改saiku-beans.properties文件,修改所有“../../”的地方替换为“../webapps/saiku3/”;修改saiku-beans.properties文件,修改pluginpath为“../webapps/saiku3/js/saiku/plugins/”(20160614修改)

  7. 修改eclipse中tomcat的工��路径:参考如下文章
    http://blog.csdn.net/gsying1474/article/details/51597995

  8. 修改 Database.java中的init方法,注释loadEarthquakes();方法的调用,以保证代码启动(此方法的代码中有部分导

CentOS6.5 mysql HA DB    2017-03-26 21:51:42    987

简介:

MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。关于 Cluster 中这些组件的关系。

下文中没有特别指出的地方,都是两台服务器都需要执行的命令,并且由于是双管理中心配置,其实两台机器出了一些标识id和ip的配置不同外,其他参数配置都是基本一样的

下载mysql-cluster 7.3.7

http://dev.mysql.com/downloads/cluster/

环境清理及安装

1. 清理CentOS6.5自带的mysql服务

其中第一个命令我不执行也可以,其他系统如果不可以,还是建议执行

  1. yum -y remove mysql
  2. rpm -qa | grep mysql*
  3. rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64

2. 环境准备

创建文件夹(分如下3个类来创建对应的文件夹)

存储节点:

  1. mkdir /var/lib/mysql/data

管理节点:

  1. mkdir /var/lib/mysql-cluster # SQL节点:可不用 文件夹授权

进程DIR:

  1. mkdir /var/run/mysqld

使用如下的命令来变更权限保证可写入:

  1. chmod -R 1777 /var/lib/mysql
  2. chmod -R 1777 /var/run/mysqld
  3. chmod -R 1777 /var/lib/mysql-cluster

3. 安装mysql-cluster

首先解压MySQL-Cluster-gpl-7.4.2-1.el6.x86_64.rpm-bundle.tar

  1. tar xvf MySQL-C
Docker overlay CentOS7 容器    2017-03-26 21:25:25    941

==首先要升级到CentOS7.2,有一个XFS的Bug在7.2系统被修复了。==

docker 1.11

将OverlayFS加到module目录下

  1. echo "overlay" > /etc/modules-load.d/overlay.conf
  2. # lsmod | grep over
  3. overlay 42451 0
  4. reboot

配置Docker Daemon用OverlayFS启动:

创建文件夹

  1. mkdir -p /etc/systemd/system/docker.service.d

加入参数:

  1. cat >/etc/systemd/system/docker.service.d/override.conf <<E
  2. [Service]
  3. ExecStart=
  4. ExecStart=/usr/bin/docker daemon --storage-driver=overlay -H fd://
  5. E

重启

  1. systemctl daemon-reload
  2. systemctl restart docker

docker 1.12

将OverlayFS加到module目录下

  1. echo "overlay" > /etc/modules-load.d/overlay.conf
  2. lsmod | grep over
  3. reboot

停止docker服务

  1. rm -rf /var/lib/docker

修改docker的配置文件

  1. vi /usr/lib/systemd/system/docker.service

修改配置:
找到如下一行

  1. ExecStart=/usr/bin/dockerd

加入参数:

  1. --storage-driver=overlay

重启

  1. systemctl daemon-reload
  2. systemctl restart docker

by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuy

Docker swarm 容器    2017-03-26 21:24:06    804

早就知道docker1.12有很大的改变,仰慕也是很久了,十一期间,抽了点时间(其他时间都在玩)根据官方文档试了下,还是挺好玩的,很多功能也很实用(服务发现、自动伸缩等),下面就是我的操作步奏,大家一起来看看

首先,开放如下端口:

TCP 2377 集群管理节点通信的端口

TCP & UDP 7946 集群节点通信的端口

TCP & UDP 4789 overlay 网络通信端口

  1. firewall-cmd --permanent --add-port={2377/tcp,2377/udp,7946/tcp,7946/udp,4789/tcp,4789/udp}
  2. firewall-cmd --reload
  3. firewall-cmd --list-all

启动集群

  1. # 主节点
  2. docker swarm init --advertise-addr 192.168.11.33
  3. # 子节点
  4. docker swarm join \
  5. --token SWMTKN-1-51w1r44gg7n392k4eti1i52zrbhwjwkmmqoe2zugtur483rdyb-9yb9ucnj23xc0k49sh7cddge3 \
  6. 192.168.11.33:2377

在swarm中部署一个服务

  1. # 创建服务
  2. docker service create --replicas 1 --name helloworld alpine ping docker.com
  3. # 查看服务
  4. docker service ls
  5. # 使用inspect查看服务
  6. docker service inspect --pretty helloworld
  7. # 使用inspect查看服务的详细信息
  8. docker service inspect helloworld
  9. # 查看服务在各个节点上运行的信息
  10. docker service ps helloworld

在swarm中均衡服务

  1. # 将helloworld节点拓展到5个
  2. docker service scale helloworld=5
  3. # 查看服务在节点上的运行信息
  4. docker servi
Docker k8s kubernetes mongo 容器    2017-03-26 21:20:51    1162

某些特殊情况下,需要将某些服务固定在一台宿主机上,K8S也适应这种方式,下面以mongo为例,来看看如何实现的:

  1. kubectl label nodes kube-node node=kube-node
  2. kubectl get node -a -l "node=kube-node"

pod或者rc的配置项中添加如下配置:

  1. nodeSelector:
  2. node: kube-node4

如mongo启动的rc文件

  1. apiVersion: v1
  2. kind: ReplicationController
  3. metadata:
  4. name: mongo
  5. spec:
  6. replicas: 1
  7. template:
  8. metadata:
  9. labels:
  10. run: mongo
  11. spec:
  12. containers:
  13. - name: mongo
  14. image: daocloud.io/library/mongo:3.2.4
  15. ports:
  16. - containerPort: 27017
  17. volumeMounts:
  18. - mountPath: /data/db
  19. name: mongo
  20. volumes: [{"name":"mongo","hostPath":{"path":"/root/volumes/mongo"}}]
  21. nodeSelector:
  22. node: kube-node4

by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(==防止爬虫==):http://blog.liuyingguang.cn

45/48