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官方手機版