Flare3D 是一款功能强大的引擎,它使得 Flash 中的 3D 内容管理变得更为简便。 它的设计宗旨是提供一个完美的开发工作流程,以便你能够获得事半功倍的效果。
Flare安装步骤
Flare的安装共包括三个软件包: bzip2-1.0.6.tar.gz、Flare.rar、zlib-1.2.7.tar.gz
准备工作:
1、安装gcc、gcc++编译器
2、root的环境变量配置C编译环境的环境变量,用64位编译
export CC="gcc -m64"
export GCC="gcc -m64"
export CXX="g++ -m64"
一、解压zlib-1.2.7.tar.g z,并安装:
二、解压bzip2-1.0.6.tar.gz,并安装
修改/bzip2-1.0.6/Makefile文件中,如下两个字段属性的值:
CC=gcc –m64
CFLAGS=-O3 -DUSE_MMAP –fPIC (一般针对64位电脑)
三、解压Flare.rar ,安装Tokyocabinet
1、 yum配置代理
vi /etc/yum.conf
添加 proxy=http://username:password@ip:port
2、 安装Tokyocabinet
若发现缺少依赖包 zlib,则:
sudo yum install zlib* make*sudo yum install bzip* make* (下载依赖包)
重新执行configure成功
四、安装boost
因为flare 安装依赖于 boost 所以需要先安装 boost。
两种方式:
1、直接利用 yum –y install boost
如果这种方式安装成功,则编译flare 的时候boost参数可以不填写。
2、另外一种如下:
五、安装flare-1.0.12
Flare 安装成功后,在/home/flare/flare-1.0.12/bin下有两个文件 flared、flarei。
这时候启动flared很可能起不来,提示找不到libtokyocabinet.so.8这个文件,由于/home下面的路径不会自动加载到动态链接库的查找路径中,因此需要手动添加,修改/etc/ld.so.conf这个文件,在其中加入/home/flare/tokyocabinet-1.4.47/lib,执行ldconfig,然后flare应该就可以正常启动了。
六、配置及调试
1、拷贝flare安装包下的etc目录到/home/flare/flare-1.0.12
2、创建data及其子目录proxy、index、master1、master2、slave
3、修改配置文件 /etc/flarei.conf ,该配置文件对应data中的index节点,如下
在/etc目录下,手工创建flarep.conf、flarem1.conf、flarem2.conf、flares.conf,并修改其data-dir、端口号、Ip等信息。
4、然后启动相应的进程,具体如下:
Index server:
索引服务器,用于控制node server的状态。Client不直接和index server进行交互。
Node server:
实际存储节点,node有3种role:master / slave / proxy.
Master 是主节点,slave是分流节点,用于同步复制master。
Proxy则将client的请求转发到当前合适的节点(包括master /slave)。
启动flare管理节点(主机):
./flarei -f /home/flarei.conf --daemonize
启动flare受管节点(主机):
./flared -f /home/flare/flare-1.0.12/etc/flarep.conf --daemonize
(对应 data中的proxy,proxy中的*.pid文件是自动生成的临时文件)
./flared -f /home/flare/flare-1.0.12/etc/flarem1.conf --daemonize
(对应data中的master1,同上)
./flared -f /home/flare/flare-1.0.12/etc/flarem2.conf --daemonize
(对应data中的master2,同上)
./ flared -f /home/flare/flare-1.0.12/etc/flares.conf --daemonize
(对应data中的slave,同上)
若没有手工创建larep.conf、flarem1.conf、flarem2.conf、flares.conf等配置文件,则Nodes可以采取下面的启动方式:
a. 启动proxy.
# ./bin/flared --daemonize --data-dir data/proxy/ --index-server-name127.0.0.1 --index-server-port 12120 --server-name 127.0.0.1 --server-port 12121 -p var/run/flared.proxy.pid
b. 启动master
# ./bin/flared --daemonize --data-dir data/master1/ --index-server-name127.0.0.1 --index-server-port 12120 --server-name 127.0.0.1 --server-port 12122 -p var/run/flared.master.pid
# ./bin/flared --daemonize --data-dir data/master2/ --index-server-name127.0.0.1 --index-server-port 12120 --server-name 127.0.0.1 --server-port 12123 -p var/run/flared.master2.pid
d. 启动slave.
# ./bin/flared --daemonize --data-dir data/slave/ --index-server-name127.0.0.1 --index-server-port 12120 --server-name 127.0.0.1 --server-port 12124 -p var/run/flared.slave.pid
进程都正常启动,如下:
5、当某个node加入时,默认是proxy role,因此需要修改这些role
telnet index server
修改node节点role
node role 127.0.0.1 12122 master 1 0
node role 127.0.0.1 12123 mater 1 1
node role 127.0.0.1 12124 slave 2 0
node role [node server name] [node server port] [role=(master|slave|proxy)] [balance] ([partition])
其中balance为0表示不使用,值越大使用频率越高,partition为分区,多个master之间可以自动由proxy将数据分区存放,master中存放的数据与其对应分区的slave中是完全一致的,slave其实相当于该分区master数据的一个备份。
修改完毕后,再执行stats nodes ,如下:
6、Telent master1,插入数据,进行测试:
telnet slave节点,查看数据是否同步。
附录一:libbz2.a,libz.so导致tokyocabinet make失败问题解决方法
缺少zlib.h这个文件
//******************************************************************************************************************************//
/usr/bin/ld: /usr/local/lib/libbz2.a(bzlib.o): relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libbz2.a: could not read symbols: Bad value
collect2: ld 返回 1
make: *** [libtokyocabinet.so.8.22.0] 错误 1
//******************************************************************************************************************************//
/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
make: *** [libtokyocabinet.so.8.22.0] 错误 1
凡是这两个问题,很重要一个原因是bzip的开发依赖包没有装好,或者没装。
首先要下载这两个安装包
1、bzip2-1.0.4.tar.gz
2、zlib-1.2.3.tar.gz
我上网找过很多解决方法。但是问题依旧,依然编译不过去。
即使用了ubuntu的apt-get install libbz2-dev。。。
网上一般都是修改bzip源码包的Makefile文件。(装个小东西,知识一定要丰富!)
网上的解决方法:
在gcc编译参数中加入-fPIC(对于该参数,我在备注中有解释,适合菜鸟级c语言用户理解)
但是问题,有时后就只刁难你,还是不怎么奏效。
我总结了一下方法:
1、注意顺序问题:(这三个东西一环扣一环,真麻烦)
如果发现 libbz2.a: could not read symbols: Bad value
就应该把/usr/local/lib中的libbz2.a删掉
进入解压缩的zlib-1.2.3目录,用make clean命令清理一下。
同样,/usr/local/lib/libz.a: could not read symbols
操作同上,删掉libz.a,把bzip2-1.0.4目录的编译文件清理一下。
如果找不到这两个文件的位置,可以在终端敲上:
find -name libbz2.a
....
2.修改zlib-1.2.3的Makefile文件
把gcc的编译参数加上 -fPIC
原文:CFLAGS=-O3 -DUSE_MMAP
修改为:CFLAGS=-O3 -DUSE_MMAP -fPIC
如果还是过不去,劝你硬来CC=gcc 直接后面跟上-fPIC让他们全部独立编译
重申:如果你之前编译过了,一定要用make clean清掉,否则还是徒劳。。
最后make 还有 make install
3.修改bzip2-1.0.4的Makefile文件
CC=gcc -fPIC 《===这个就是我发飙的结果,全部让他 -fPIC
AR=ar
RANLIB=ranlib
LDFLAGS=
BIGFILES=-D_FILE_OFFSET_BITS=64
CFLAGS=-fPIC -Wall -Winline -O2 -g $(BIGFILES) 《===当然这里也可以加上
同样,bzip2有一个Makefile-libbz2_so的文件,编译时会调用,当然你也可以单个编译:
make -f Makefile-libbz2_so
make clean <------------保守建议,还是clean一下
make
make install
具体bzip2的安装方法可以参照:
http://lamp.linux.gov.cn/Linux/LFS-6.2/chapter06/bzip2.html
最后重新安装tc
我用的是最新版本:tokyocabinet-1.4.31.tar.gz
估计应该修复了一些bug。
make clean
make
当输出:
#================================================================
# Ready to install.
#================================================================
一切ok,装吧 make install
附录二: flares.conf配置内容如下:
data-dir = /home/flare/flare-1.0.12/data/slave
index-server-name = localhost
index-server-port = 12120
log-facility = local5
max-connection = 256
mutex-slot = 32
proxy-concurrency = 2
server-name = 127.0.0.1
server-port = 12124
storage-type = tch
thread-pool-size = 16
- PC官方版
- 安卓官方手机版
- IOS官方手机版