阿里数据库中间件Cobar环境搭建

装了CentOS7,结果死活连不上网,一直提示没有可用的网络设备,没工夫处理,以后再说,先用之前装好的CentOS6.4,Mysql安装包又下不下来,只好翻出了之前玩Storm装的Archlinux,总共有Alpha、Beta、Delta三台虚机,里头安装了JDK、MariaDB等等。

准备

测试中有一个schema,两张表tb1、tb2,其中tb1在一个库,tb2分为两个库。

几个Cobar的release包都先下载好。

数据准备,三个数据库表都建好:

#创建dbtest1
drop database if exists dbtest1;
create database dbtest1;
use dbtest1;
#在dbtest1上创建tb1
create table tb1(
id int not null,
gmt datetime);
#创建dbtest2
drop database if exists dbtest2;
create database dbtest2;
use dbtest2;
#在dbtest2上创建tb2
create table tb2(
id int not null,
val varchar(256));
#创建dbtest3
drop database if exists dbtest3;
create database dbtest3;
use dbtest3;
#在dbtest3上创建tb2
create table tb2(
id int not null,
val varchar(256));

注意系统的JAVA_HOME要配置好

配置

Cober的server目录下的conf中的是配置文件

schema.xml中需要修改三个数据库的ip和端口,账号和密码。

server.xml中需要修改Cobar的账号和密码。

启动

通过运行bin目录下的startup.bat来启动Cobar服务,

第一遍没起来,打开startup.bat,其中的APP_VERSION版本和release中的server版本不匹配,log4j的版本也不匹配,修改之后才能正确运行。

logs目录下有Cobar运行的log文件,stdout.log是服务运行的日志,正确运行时是这样:

23:13:00,876 INFO  ===============================================
23:13:00,876 INFO  Cobar is ready to startup ...
23:13:00,876 INFO  Startup processors ...
23:13:00,969 INFO  Startup connector ...
23:13:00,969 INFO  Initialize dataNodes ...
23:13:01,047 INFO  dnTest1:0 init success
23:13:01,063 INFO  dnTest3:0 init success
23:13:01,063 INFO  dnTest2:0 init success
23:13:01,063 INFO  CobarManager is started and listening on 9066
23:13:01,079 INFO  CobarServer is started and listening on 8066
23:13:01,079 INFO  ===============================================

测试

访问Cobar可以和访问Mysql一样的方式:

>mysql -utest -ptest -P8066 -Ddbtest

三个库看起来是在一个库,成功~

再实验在Arch下跑Cobar

  大部分步骤和Windows下一样,不同的是startup的启动,Linux下运行的是startup.sh。
  先是报错:JAVA_HOME environment variable is not set.,但是我的JAVA_HOME已经设定了,虽然用的是openJDK,再查看到有人说JAVA_HOME不应该指向jre,但是openJDK下的java就是软链到jre的,所以把启动脚本中的if [ ! -e "$JAVA_HOME/bin/java" ] 注释了。

  运行后又失败,没有报错,查看../logs/console.log

  1 OpenJDK Server VM warning: INFO: os::commit_memory(0x7b000000, 805306368, 0) failed; error='Cannot allocate memory' (errno=12)
  2 #
  3 # There is insufficient memory for the Java Runtime Environment to continue.
  4 # Native memory allocation (malloc) failed to allocate 805306368 bytes for committing reserved memory.
  5 # An error report file with more information is saved as:
  6 # /home/software/cobar-server-1.2.7/hs_err_pid623.log

原来是虚拟机内存不够分配,因为装Arch的时候为了多运行几个,每个只分配了256M内存,而startup.sh中配置如下:

JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xmn256m -Xss256k"

堆内存分了1G,新生代占了整个Arch内存大小,线程栈256k。将参数修改后可以运行。

原文地址:https://www.cnblogs.com/hyace/p/4135150.html