¸ÅÊö
OceanBaseÊÇ Ò»¸ö¸ßÐÔÄܵķֲ¼Ê½±í¸ñϵͳ£¬ÌṩÀàËÆBigTableµÄÐÔÄܺÍÀ©Õ¹ÐÔ£¬µ«±í¸ñÖб£´æµÄÊÇÇ¿ÀàÐ͵ÄÊý¾Ý£¬±ÈÈçinteger,string£¬datetimeµÈ¡£
ËüʹÓÃC++±àд£¬ÔËÐÐÓÚ64λLinux»·¾³Ï¡£Éú²ú»·¾³ÏÂÐèҪʹÓöą̀»úÆ÷´î½¨OceanBase¼¯ÈºÒÔÌṩ¸ß¿ÉÓú͸ßÐÔÄÜ£¬µ«ÊÇÄãÒ²ÍêÈ«¿ÉÒÔʹÓÃÒ»
̨»úÆ÷ÔËÐÐOceanBase¡£
±¾Õ½ڽ²½âÈçºÎѸËٴһ¸ö¿ÉÓõÄ×îСOceanBase»·¾³£¬ÔÚÕâ֮ǰÇëÈ·±£ÄãÄÜÌṩÒÔϵÄÌõ¼þ:
64λµÄLinux·þÎñÆ÷һ̨, ÄÚ´æÖÁÉÙ1G¡£
×ã¹»µÄ´ÅÅ̿ռ䣬×îÉÙ100MB¡£
ÓµÓÐrootȨÏÞ»òÄÜͨ¹ýsudoÌáÉýÖÁrootȨÏÞ¡£
Èç¹ûÄãÂú×ãÒªÇ󣬹§Ï²Äã¡£¿ÉÒÔ¼ÌÐø°²×°OceanBaseµÄ¹ý³ÌÁË¡£Õâ´ó¸Å·ÖΪÈçϼ¸¸ö²½Öè:
´ÓÔ´Âë±àÒë°²×°OceanBase¼°ÆäÒÀÀµµÄ¿â
Æô¶¯OceanBase
ʹÓÃOceanBase
×îºó£¬ÎÒÃÇ»á¶ÔOceanBaseÖеÄÅäÖÃ×öÒ»¸ö´ÖÂԵĽâÊÍÒÔ°ïÖúÄã½â¾öÆô¶¯Ê±Óöµ½µÄÎÊÌâ¡£
´ÓÔ´Âë±àÒë°²×°OceanBase¼°ÆäÒÀÀµµÄ¿â
ÔÚ°²×°OceanBase֮ǰ£¬Çë¼ì²égccµÄ°æ±¾:
×îºÃÓÃgcc 4.1.2±àÒ룬Èç¹û°æ±¾²»Æ¥Å䣬²»Ò»¶¨¿ÉÒÔ±àÒë³É¹¦£¬»¶Ó´ó¼Ò²âÊÔ²»Í¬°æ±¾µÄ±àÒëÆ÷£¬Í¬Ê±»¶Ó´ó¼ÒÌṩpatchÈÃOceanBaseÄÜÔÚ¸ü¶à°æ±¾µÄ±àÒëÆ÷ϱàÒëͨ¹ý¡£
OceanbaseÔÚÔËÐÐʱÐèÒªÓõ½Ò»Ð©¶¯Ì¬¿â£¬½¨ÒéÔÚbashrcÖн«LD_LIBRARY_PATHÉèÖúãº
echo "export TBLIB_ROOT=$HOME/ob-install-dir" >> ~/.bashrc echo "export LD_LIBRARY_PATH=/usr/lib/:/usr/local/lib:\$TBLIB_ROOT
/lib:\$HOME/ob-install-dir/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc source ~/.bashrc |
°²×°ÒÀÀµµÄ¿â:[libtoolize]
±àÒë½Å±¾ÖÐÓõ½ÁËaclocal, autoconf, automakeµÈ¹¤¾ß£¬Ò»°ã»úÆ÷ÉÏ»á×Ô´ø¡£Èç¹û»úÆ÷ÉÏûÓа²×°£¬ÇëÏȰ²×°£º
sudo yum install libtool.x86_64 |
liblzo2
liblzo2ÊÇÒ»¸öѹËõ¿â£¬OceanBaseÐèÒªÓÃËüÀ´Ñ¹Ëõ¾²Ì¬Êý¾Ý.
ÀûÓÃyum¿ìËÙ°²×°
sudo yum install LZO.x86_64 |
Èç¹ûyumÕÒ²»µ½Õâ¸ö°ü£¬¿ÉÒÔÑ¡ÔñÊÖ¶¯°²×°£º
wget -c http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz tar zxf lzo-* (cd lzo-2.03; ./configure --enable-shared --prefix=/usr/ && make && sudo make install) |
°²×°Íê³ÉºóÄã¿ÉÒÔ±àÒëÒ»¸öC³ÌÐò¿´¿´±àÒëÆ÷ÄÜ·ñÕÒµ½Ëü:
echo "int main(){ return 0;}" > /tmp/a.c && gcc /tmp/a.c -llzo2 -o /tmp/a.out /tmp/a.out |
Èç¹ûû±¨´í¾Í˵Ã÷°²×°³É¹¦ÁË¡£Èç¹ûÏÔʾÏÂÃæµÄÏûÏ¢Ôò˵Ã÷$LD_LIBRARY_PATH±äÁ¿Ã»ÓÐÅäÖÃÕýÈ·£¬ÇëÈ·¶¨liblzo2.so.2ËùÔÚĿ¼²¢¼ÓÈëµ½$LD_LIBRARY_PATHÖС£
./a.out: error while loading shared libraries: liblzo2.so.2: cannot open shared object file: No such file or directory |
Snappy
SnappyÊÇGoogle³öÆ·µÄѹËõ¿â£¬OceanBaseÓÃËüÀ´Ñ¹Ëõ¾²Ì¬Êý¾Ý[¿ÉÑ¡].
×¢Ò⣺SnappyÒÀÀµÓÚlzo¿â£¬ÇëÏÈ×°lzo¿âÔÙ×°Snappy¡£ÀûÓÃyum¿ìËÙ°²×°
sudo yum install Snappy.x86_64 |
Èç¹ûyumÕÒ²»µ½Õâ¸ö°ü£¬¿ÉÒÔÑ¡ÔñÊÖ¶¯°²×°£º
cd ~ wget -c http://snappy.googlecode.com/files/snappy-1.0.3.tar.gz tar zxf snappy-* (cd snappy-1.0.3; ./configure --prefix=/usr/ && make && sudo make install) |
°²×°Íê³ÉºóÄã¿ÉÒÔ±àÒëÒ»¸öC³ÌÐò¿´¿´±àÒëÆ÷ÄÜ·ñÕÒµ½Ëü:
echo "int main(){ return 0;}" > /tmp/a.c && gcc /tmp/a.c -o /tmp/a.out -lsnappy /tmp/a.out |
Èç¹ûû±¨´í¾Í˵Ã÷°²×°³É¹¦ÁË¡£Èç¹ûÏÔʾÏÂÃæµÄÏûÏ¢Ôò˵Ã÷$LD_LIBRARY_PATH±äÁ¿Ã»ÓÐÅäÖÃÕýÈ·£¬ÇëÈ·¶¨liblzo2.so.2ËùÔÚĿ¼²¢¼ÓÈëµ½$LD_LIBRARY_PATHÖС£
./a.out: error while loading shared libraries: libsnappy.so.1: cannot open shared object file: No such file or directory |
libnuma
OceanbaseÖÐÓõ½ÁËNUMAÖ§³Ö£¬ÐèÒªlibnumaµÄÖ§³Ö¡£ÏÂÃæÍ¨¹ýyum°²×°numactlÀ´Ìí¼ÓnumaÏà¹ØµÄÍ·ÎļþºÍ¿â¡£
sudo yum install numactl-devel.x86_64 |
Èç¹ûyumÕÒ²»µ½Õâ¸ö°ü£¬¿ÉÒÔÑ¡ÔñÊÖ¶¯°²×°£º
cd ~ wget -c http://freshmeat.net/urls/5994b4dd6cf45abcf4c4ed8c16a75f24
# Èç¹û¸ÃµØÖ·Ê§Ð§£¬Çëµ½http://freshmeat.net/projects/numactl/ÊÖ¹¤ÏÂÔØ tar zxf numactl-* (cd numactl-2.0.7; make && sudo make install) |
libaio
OceanbaseÖÐÓõ½ÁËAIO£¬ÐèÒªlibaioµÄÖ§³Ö¡£ÏÂÃæÍ¨¹ýyum°²×°libaioÀ´Ìí¼ÓnumaÏà¹ØµÄÍ·ÎļþºÍ¿â¡£
sudo yum install libaio-devel.x86_64 |
Èç¹ûyumÕÒ²»µ½Õâ¸ö°ü£¬¿ÉÒÔÑ¡ÔñÊÖ¶¯°²×°£º
cd ~ wget -c http://libaio.sourcearchive.com/downloads/0.3.107-7/libaio_0.3.107.orig.tar.gz
# Èç¹û¸ÃµØÖ·Ê§Ð§£¬Çëµ½http://libaio.sourcearchive.com/ÊÖ¹¤ÏÂÔØ tar zxf libaio* (cd libaio-0.3.107; make && sudo make install) |
tbsysÊǶԲÙ×÷ϵͳ·þÎñµÄ·â×°£¬tbnetÔòÌṩÁËÍøÂç¿ò¼Ü£¬OceanBaseÒÀÀµÓÚÕâÁ½¸ö¿â¡£
tbnetºÍtbsys±»×÷Ϊtb-common-utils±»¿ªÔ´ÁË£¬ ¿ÉÒÔ·ÃÎÊ http://code.taobao.org/trac/tb-common-utils/wiki/ZhWikiStart
ÒÔÁ˽â¸ü¶àÇé¿ö¡£ ×¢Ò⣬°²×°ºÍʹÓÃtbnetºÍtbsys֮ǰ£¬ÒªÉèÖúà TBLIB_ROOT Õâ¸ö»·¾³±äÁ¿£¬Õâ¸ö»·¾³±äÁ¿Ö¸Ê¾Á˰²×°tbnetºÍtbsys¿âµÄ·¾¶.
ÓÃÈçÏÂÃüÁîÏÂÔØÔ´Âë²¢±àÒë°²×°:
cd ~ export TBLIB_ROOT=$HOME/ob-install-dir svn checkout http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils (cd tb-common-utils; sh build.sh) |
°²×°³É¹¦ºó, TBLIB_ROOT ËùָʾµÄĿ¼Ï»áÓÐincludeºÍlibÁ½¸öĿ¼£¬¿ÉÓÃÈçϵÄÃüÁîÑéÖ¤±àÒëÆ÷ÄÜ·ñÕÒµ½¿â:
echo "int main(){ return 0;}" > /tmp/a.c && gcc /tmp/a.c -o /tmp/a.out -L$TBLIB_ROOT/lib -ltbnet -ltbsys /tmp/a.out |
Èç¹û±¨´í£¬¼ì²é TBLIB_ROOT ÊÇ·ñÉèÖÃÕýÈ·ÁË
gtest
¿ÉÑ¡¡£Èç¹ûÄãÖ´ÐÐ./configure ¨Cwithout-test-case²»±àÒëOBµÄtest£¬ÄÇôÕâÒ»½Ú¿ÉÒÔºöÂÔ¡£Èç¹ûÄãÒª±àÒëtest£¬±¾½ÚÄÚÈݽö¹©²Î¿¼£ºÐ°ægtestÊDz»ÔÊÐí°²
×°µÄ£¬gtestÉϵÄwikiÓÐ˵µ½¡£½¨Òé./configure && makeÖ®ºó£¬Ö±½Ó:
cp -r gtest-build-dir/include/gtest ob-src-dir/include cp -r gtest-build-dir/lib/.libs ob-src-dir/lib |
±àÒë°²×°OceanBase
¼ì³öOB·ÖÖ§Ô´´úÂ룺
cd ~ #¿ªÔ´ºósvnµØÖ· svn co http://code.taobao.org/svn/oceanbase/trunk/ ob-src-dir svn co http://svn.app.taobao.net/repos/oceanbase/branches/rm/oceanbase/ ob-src-dir |
±àÒë°²×°
(cd ob-src-dir; ./build.sh init && ./configure --prefix=$HOME/ob-install-dir
--with-release --without-test-case && make -j2 && make install)
|
×¢Òâ ¨Cwithout-test-case±íʾ²»±àÒë²âÊÔÓÃÀý£¬ÒòΪOceanBaseʹÓÃgoogletest×÷Ϊ²âÊÔ¿ò¼Ü£¬Èç¹ûÄãÏëÅܵ¥Ôª²âÊÔ£¬ÐèÒª°ÑgoogletestµÄÍ·ÎļþºÍ¿â·ÅÈëµ½oceanbaseÔ´Âë¶¥²ãĿ¼µÄincludeºÍlibĿ¼¡£
°²×°Íê³ÉºóÐèÒª½øÐÐÒ»´Î³õʼ»¯£¬¸ù¾Ýµ±Ç°»úÆ÷ÅäÖÃÉú³É±ØÒªµÄ³õʼ»¯Îļþ¡£Ö´ÐÐsingle-machine-bootstrap½Å±¾¾Í¿ÉÒÔÍê³ÉÈ«²¿³õʼ»¯¹¤×÷¡£
cd $HOME/ob-install-dir ./single-machine-bootstrap init# ´´½¨±ØÒªµÄĿ¼£¬Éú³ÉÅäÖÃÎļþ |
Ò»Çгõʼ»¯Íê³ÉºóϵͳĿ¼ÈçÏÂͼËùʾ£º
/ |--/usr/lib/ | |-- liblzo*.so.* | |-- libsnappy*.so.* | `-- ... | |--$HOME |-- tb-common-utils |-- ob-src-dir | `- ... | `-- ob-install-dir |-- single-machine-bootstrap |-- include |-- lib |-- bin |-- @etc | |-- rootserver.conf | |-- mergeserver.conf | |-- chunkserver.conf | |-- updateserver.conf | `-- schema.ini | `-- @data |-- ups_commitlog |-- rs_commitlog |-- ups_data |-- log |-- cs `-- rs |
Æô¶¯OceanBase
ÔÚÕû¸öOceanBase¼¯ÈºÖÐÒ»¹²ÓÐËÄÖÖ½ÇÉ«£ºRootServer?,UpdateServer?,ChunkServer?ºÍMergeServer:
RootServerÊǼ¯ÈºµÄÖÐÐÄ¿ØÖƽáµã
UpdateServerÊǼ¯ÈºµÄ¸üзþÎñ½áµã
ChunkServerÊǼ¯Èº¾²Ì¬Êý¾Ý´æ´¢½áµã
MergeServerΪ²éѯ·þÎñ½áµã¡£
Ó¦ÓóÌÐòʹÓÃOceanBase£¬ÐèҪͨ¹ý¿Í»§¶Ë¿â£¬¿Í»§¶ËÖ»ÐèÒªÖªµÀRootServerµÄµØÖ·¼´¿É¡£
ÔÚ×î¼òµ¥µÄÇé¿öÏ£¬OceanBaseÓÉÒ»¸öRootServer, Ò»¸öUpdateServer,
Ò»¸öChunkServerºÍÒ»¸öMergeServer×é³É£¬ÕâËĸöServer¶¼ÔËÐÐÔÚͬһ̨ÎïÀí»úÉÏ¡£¿ÉÒÔÓÃÈçϵÄÃüÁîÆô¶¯ËĸöServer:
cd $HOME/ob-install-dir bin/rootserver -f etc/rootserver.conf bin/updateserver -f etc/updateserver.conf bin/mergeserver -f etc/mergeserver.conf bin/chunkserver -f etc/chunkserver.conf |
µ±È»£¬OceanBase²¢²»Ç¿ÖÆÒªÇóËĸöServerµÄÆô¶¯Ë³Ðò¡£
Server¶¼×÷ΪdaemonÔËÐУ¬¿ÉÒÔÓÃÈçÏÂÃüÁî²é¿´¶ÔÓ¦µÄlog£º
cd $HOME/ob-install-dir tail -f data/log/rootserver.log tail -f data/log/updateserver.log tail -f data/log/mergeserver.log tail -f data/log/chunkserver.log |
Ôڳɹ¦Æô¶¯OceanBaseºó£¬°´ÕÕĬÈϵÄÅäÖÃÈÏÉú³ÉÁËÒ»¸öÃûΪtestµÄ±í¡£Õâ¸ö±íÊǵäÐ͵ÄkvÊý¾Ý±í£¬¿ÉÒÔʹÓÃOceanBaseÌṩµÄAPI¶ÁдÕâ¸ö±í¡£
ÈçÓÐÔËÐÐÓÐÎÊÌ⣬¿ÉÒԲο¼ºóÃæ¹ØÓÚÅäÖõĸü¼ÓÏêϸµÄ½âÊÍ¡£
ʹÓÃOceanBase
TODO
ÅäÖÃÎļþ˵Ã÷
OceanBaseÌṩ±í¸ñ´æ´¢·þÎñ£¬ËùÒÔÊ×ÏÈÒªÓÐÒ»¸öschemaÎļþÃèÊö±í¸ñ£¬Æä´ÎRootServer,
UpdateServer?, ChunkServer?ºÍMergeServer¶¼ÓÐ×Ô¼ºµÄÅäÖÃÎļþ¡£ ËĸöServerµÄÅäÖÃÎļþÊÇÔÚÆô¶¯Serverʱͨ¹ýÃüÁîÐвÎÊýÖ¸¶¨µÄ£¬schemaÎļþµÄ·¾¶ÊÇÔÚRootServerµÄÅäÖÃÎļþÖÐÖ¸¶¨µÄ¡£
ÐÞ¸ÄÊý¾Ý¿âschemaÅäÖÃÎļþ
Ò»¸öschemaÅäÖÃÎļþÃèÊöÒ»¸öÓ¦Óã¬Ò»¸öÓ¦ÓÿÉÒÔÓжà¸ö±í¸ñ£¬ÅäÖÃÎļþÖÐÒªÖ¸¶¨Ó¦ÓõÄÃû×Ö£¬¼°Ã¿¸ö±íµÄÃû×Ö£¬Ã¿Ò»ÁеÄÃû×Ö£¬ÀàÐ͵ÈÐÅÏ¢¡£
ÏêϸµÄÃèÊö²Î¼ûÔ´Âë°üµÄÎĵµ: doc/OceanBaseµÄschema.docx
[app_name] name = Êý¾Ý¿âÓ¦ÓÃÃû³Æ max_table_id = Ó¦ÓõÄ×î´óÊý¾Ý±íID
[Êý¾Ý±í1Ãû³Æ]
table_id = Êý¾Ý±í1µÄID
...ÆäËû×ֶκ¬ÒåÒª²Î¿¼OBÎĵµ...
compress_func_name=lzo_1.0
column_info=1,2,info_user_nick,varchar,128
....
[Êý¾Ý±í2Ãû³Æ]
table_id = Êý¾Ý±í2µÄID
compress_func_name=lzo_1.0
... |
ÐÞ¸Ä rootserver.conf
RootServer?µÄÅäÖÃÖ÷ÒªÖ¸¶¨×Ô¼ºµÄµØÖ·¼°UpdateServerµÄµØÖ·£¬SchemaÎļþµÄ·¾¶µÈ¡£
ÐÞ¸Ä updateserver.conf
UpdateServer?µÄÅäÖÃÖ÷ÒªÖ¸¶¨×Ô¼ºµÄµØÖ·¼°RootServerµÄµØÖ·£¬
Êý¾ÝµÄ´æ´¢Ä¿Â¼µÈÐÅÏ¢¡£
[root_server] pid_file = rootserverµÄpidÎļþ·¾¶ log_file = rootserverµÄÔËÐÐÈÕÖ¾Îļþ·¾¶ data_dir = rootserverµÄ³Ö¾Ã»¯Êý¾ÝĿ¼
log_level = rootserverµÄÈÕÖ¾¼¶±ð
dev_name = rootserver¼àÌýµÄÍø¿¨Ãû³Æ£¬Èçeth0
vip = rootserverµÄVIPÉ豸µØÖ·£¬ÓÃÀ´ÊµÏÖÈȱ¸£¬¿ª·¢»·¾³ÖÐÖ»ÐèÒªµ¥rootserver£¬ÕâÀïÖ¸¶¨ÎªrootserverµØÖ·¼´¿É
port = rootserverµÄ¼àÌý¶Ë¿Ú
__create_table_in_init=1 # ÔÚϵͳ³õʼ»¯Ê±½¨Á¢±í
__safe_copy_count_in_init=1 # ·ÀÖ¹ÔÚÖ»ÓÐ1¸öchunkserverʱ²úÉúwarnÐÅÏ¢
__safe_copy_count_in_merge=1 #
[update_server]
vip = updateserverµÄVIPÉ豸µØÖ·£¬ÓÃÀ´ÊµÏÖÈȱ¸£¬ÒòΪrootserverÊÇÖ÷¶¯Á¬½ÓupdateserverµÄ¡£¿ª·¢»·¾³ÖÐÖ»ÐèÒªµ¥updateserver£¬ÕâÀïÖ¸¶¨ÎªupdateserverµØÖ·¼´¿É
port = updateserverµÄ¼àÌý¶Ë¿Ú£¬ÒÔ±ãrootserverÁ¬½Ó
ups_inner_port=updateserverµÄµÍÓÅÏȼ¶¼àÌý¶Ë¿Ú£¬ÒÔÓÃÓÚÿÈպϲ¢
[schema]
file_name = Êý¾Ý¿âschemaÅäÖÃÎļþ·¾¶ |
¹ØÓÚUpdateServerµÄÊý¾ÝĿ¼½á¹¹
store_root, raid_regexºÍdir_regex ¹²Í¬Ö¸¶¨ÁËUpdateServerµÄÊý¾ÝĿ¼£¬UpdateServer?ÒÔ
sstableµÄ·½Ê½±£´æÊý¾Ý¡£ÔÚ store_root ÏîÖ¸¶¨µÄĿ¼Ï½¨Á¢¶à¸öÓë raid_regex
ÅäÖÃÏîÆ¥ÅäµÄĿ¼£¬ ĿǰĬÈϵÄĿ¼ÃûÊÇÕâÑùµÄraid1 raid2 raid3 ¡.£¬Í¬Ò»¸össtableÎļþ»áÔÚÒ»¸öraidĿ¼²úÉú¶à·Ý¿½±´£¬ÔÚÉÏÊöÿ¸öraidĿ¼Ï½¨Á¢¶à¸öÓë
dir_regex ÅäÖÃÏîÆ¥ÅäµÄÈíÁ´½Ó£¬Ä¿Ç°Ä¬ÈϵÄĿ¼ÃûÊÇÕâÑùµÄstore1 store2 store3¡
·Ö±ðÖ¸Ïò²»Í¬É豸¹ÒÔØµãϵÄĿ¼(Èç /data/1-1/ups_store /data/1-2/ups_store¡
), ÔÚ²âÊÔʱÎÒÃÇ¿ÉÒÔʹÓÃÆÕͨµÄĿ¼´úÌæ¹ÒÔØµã¡£
Òò´Ë½¨Á¢ºÃµÄ»·¾³ÓÃtreeÃüÁî¿´ÊÇÕâÑùµÄ£º
data |-- raid1 | |-- store1 -> /data/1-1/ups_store/ | |-- store2 -> /data/1-2/ups_store/ | |-- store3 -> /data/1-3/ups_store/ | |-- store4 -> /data/1-4/ups_store/ | `-- store5 -> /data/1-5/ups_store/ `-- raid2 |-- store1 -> /data/2-1/ups_store/ |-- store2 -> /data/2-2/ups_store/ |-- store3 -> /data/2-3/ups_store/ |-- store4 -> /data/2-4/ups_store/ `-- store5 -> /data/2-5/ups_store/ |
¿ÉÓÃÈçϵÄÃüÁÁ¢Ä¿Â¼ºÍÁ´½Ó
mkdir -p /data/{raid{1..2},{1..2}-{1..5}/ups_store} for i in {1..2}; do for j in {1..5}; do ln -s /data/$i-$j/ups_store /data/raid$i/store$j; # ×¢ÒâÕâÀィÁ¢ÈíÁ´½Óʱ×îºÃʹÓþø¶Ô·¾¶ done done |
ÐÞ¸Ä mergeserver.conf
MergerServer?µÄÅäÖÃÖ÷ÒªÖ¸¶¨RootServerµÄµØÖ·µÈ¡£
[merge_server] port = mergeserver¼àÌý¶Ë¿Ú dev_name = mergeserver¼àÌýÍø¿¨Ãû³Æ£¬Èçeth0 log_file = mergeserverµÄÔËÐÐÈÕÖ¾Îļþ·¾¶ pid_file = mergeseverµÄpidÎļþ·¾¶ log_level = mergeserverµÄÈÕÖ¾¼¶±ð
[root_server]
vip = rootserverµÄVIPÉ豸µØÖ·£¬¿ª·¢»·¾³ÖÐÖ»ÒªÖ¸¶¨ÎªrootserverµØÖ·¼´¿É
port = rootserverµÄ¼àÌý¶Ë¿Ú |
ÐÞ¸Ä chunkserver.conf
ChunkServer?µÄÅäÖÃÖ÷ÒªÖ¸¶¨RootServerµÄµØÖ·, Êý¾Ý´æ´¢Ä¿Â¼µÈ¡£
[public] pid_fie = chunkserverµÄÔËÐÐÈÕÖ¾Îļþ·¾¶ log_file = chunkserverµÄpidÎļþ·¾¶ log_level = chunkserverµÄÈÕÖ¾¼¶±ð
[chunkserver]
dev_name = chunkserverµÄ¼àÌýÍø¿¨Ãû³Æ£¬Èçeth0
port = chunkserverµÄ¼àÌý¶Ë¿Ú
datadir_path = chunkserverÊý¾Ý³Ö¾Ã»¯Ä¿Â¼µÄ·¾¶
application_name = Êý¾Ý¿âÓ¦ÓÃÃû³Æ
[root_server]
vip = rootserverµÄVIPÉ豸µØÖ·£¬¿ª·¢»·¾³ÖÐÖ»ÒªÖ¸¶¨ÎªrootserverµØÖ·¼´¿É
port = rootserver¼àÌý¶Ë¿Ú |
chunkserverµÄÊý¾Ý·ÅÔÚ /datadir_path/$i/application_name/sstable
ÏÂ, ²¢ÇÒÓÉÓÚ¸ÃĿ¼²¢²»´æÔÚÒò´ËÐèÒª½¨Á¢¶ÔÓ¦µÄĿ¼
mkdir -p /datadir_path/{1..10}/application_name/sstable |
|