Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ElasticSearchËÑË÷ÒýÇæÊ¹ÓÃ-´Ó0µ½1
 
  2992  次浏览      27
 2018-1-29  
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚÍõÇåÅà,ÏÖÔÚÔ½À´Ô½¶àµÄ·Ö²¼Ê½ÏµÍ³¶¼ÐèÒªÓõ½ElasticSearchÀ´½â¾öÎÊÌâ,ÓÐʲôÀíÓɲ»È¥Ñ§Ï°ºÍʹÓÃËüÀ´Ìá¸ßϵͳµÄÕûÌå·þÎñˮƽ?±¾ÆªÎÄÕÂÊÇ×÷ÕßѧϰʱµÄ¾­Ñé×ܽᡣ

1.±³¾°

Á½ÄêǰÓлú»á½Ó´¥¹ýelasticsearch£¬µ«ÊÇδ×öÉîÈëѧϰ£¬Ö»Êǹ¤×÷ÖÐÓõ½ÁË¡£Ô½À´Ô½·¢ÏÖesÊǸö²»´íµÄºÃ¶«Î÷£¬ËùÒÔ»¨Á˵ãʱ¼äºÃºÃѧϰÁËÏ¡£ÔÚѧϰ¹ý³ÌÖÐÒ²·¢ÏÖÁËһЩÎÊÌâ£¬ÍøÉÏ´ó¶à×ÊÁ϶¼ºÜÁãÉ¢£¬´ó²¿·Ö¶¼ÊÇʵÑéÐÔµÄdemo£¬ºÜ¶àÎÊÌⲢûÓн²Çå³þÒ²²¢Ã»ÓÐϵͳµÄ½²ÍêÕûÒ»ÕûÌ×·½°¸£¬ËùÒÔÄÍÐĵÄÃþË÷ºÍ×ܽáÁËһЩ¶«Î÷·ÖÏí³öÀ´¡£

±Ï¾¹µ±ÄãÓÃÉú²úʹÓõıê×¼À´Ê¹ÓÃesʱ»áÓкܶàÎÊÌ⣬Õâ¶ÔÄãµÄѧϰÌá³öÀ´ÁËеıê×¼¡£

±ÈÈ磬ʹÓÃelasticsearch servicewrapper½øÐÐ×ÔÆô¶¯µÄʱºòÄѵÀ¾Íû·¢ÏÖËüµÄÅäÖÃÖÐÓÐÒ»¸öСbugµ¼ÖÂload²»ÁËelasticsearch jar°üÖеÄclassÂð¡£

»¹ÓÐes²»Í¬°æ±¾Ö®¼äµÄ²îÒì¾Þ´ó£¬±ÈÈ磬1.0Öеķֲ¼Ê½routingÔÚ2.0ÖнøÐÐÁ˾޴ó²îÒìµÄÐ޸ġ£Ô­±¾routingÊǸú×ÅmappingÒ»ÆðÅäÖõ쬵½ÁË2.0È´¸ú×Åindex¶¯Ì¬×ßÁË¡£Õâ¸öµ÷ÕûµÄ±¾ÖÊÄ¿µÄÊǺõģ¬ÈÃͬһ¸öindexµÄ²»Í¬type¶¼Óлú»áÑ¡ÔñshardµÄƬ¼ü¡£Èç¹ûÊǸú×Åmapping×ߵϰ¾ÍÖ»ÄÜÏÞ¶¨ÓÚµ±Ç°indexµÄËùÓÐtype¡£

esÊǸöºÃ¶«Î÷£¬ÏÖÔÚÔ½À´Ô½¶àµÄ·Ö²¼Ê½ÏµÍ³¶¼ÐèÒªÓõ½ËüÀ´½â¾öÎÊÌâ¡£´ÓELKÕâÖÖϵͳ²ãµÄ¹¤¾ßµ½µçÉÌÆ½Ì¨µÄºËÐÄÒµÎñ½»Ò×ϵͳµÄÉè¼Æ¶¼ÐèÒªËüÀ´Ö§³Åʵʱ´óÊý¾ÝËÑË÷·ÖÎö¡£±ÈÈ磬ÉÌÆ·ÖÐÐĵÄÉÏǧÍòµÄskuÐèҪʵʱËÑË÷£¬ÔÙµ½º£Á¿µÄÔÚÏß¶©µ¥ÊµÊ±²éѯ¶¼ÐèÒªÓõ½ËÑË÷¡£

ÔÚһЩDevOpsµÄ¹¤¾ßÖж¼ÐèÒªesÀ´Ìṩǿ´óµÄʵʱËÑË÷¹¦ÄÜ¡£ÖµµÃ»¨µãʱ¼äºÃºÃÑо¿Ñ§Ï°Ï¡£

×÷ΪµçÉ̼ܹ¹Ê¦£¬ËùÒÔûÓÐʲôÀíÓɲ»È¥Ñ§Ï°ºÍʹÓÃËüÀ´Ìá¸ßϵͳµÄÕûÌå·þÎñˮƽ¡£±¾ÆªÎÄÕ½«×Ô¼ºÕâ¶Îʱ¼äѧϰµÄ¾­Ñé×ܽá³öÀ´·ÖÏí¸ø´ó¼Ò¡£

2.°²×°

Ê×ÏÈÄãÐèÒª¼¸Ì¨linux»úÆ÷£¬ÄãÅÜÐé»úÒ²ÐС£Äã¿ÉÒÔÔÚһ̨ÐéÄâ»úÉÏÍê³É°²×°ºÍÅäÖã¬È»ºó½«µ±Ç°ÐéÄâ»úclone³ö¶à·ÝÐÞ¸ÄÏÂIP¡¢HWaddr¡¢UUID¼´Óã¬ÕâÑù·½±ãÄãʹÓ㬶ø²»ÐèÒªÔÙÖØ¸´µÄ°²×°ÅäÖá£

1.ÎÒ±¾µØÊÇÈý̨Linux centos6.5£¬IP·Ö±ðÊÇ£¬192.168.0.10¡¢192.168.0.20¡¢192.168.0.30¡£

(ÎÒÃÇÏÈÔÚ192.168.0.10ÉÏÖ´Ðа²×°ÅäÖã¬È»ºóÒ»ÇоÍÐ÷Ö®ºóÎÒÃǽ«Õâ¸ö½Úµãclone³öÀ´ÐÞ¸ÄÅäÖã¬È»ºóÔÙÅäÖü¯Èº²ÎÊý£¬×îºóÐγɿÉÒÔ¹¤×÷µÄÒÔÈý¸önode×é³ÉµÄ¼¯ÈºÊµÀý¡££©

2.ÓÉÓÚElasticSearchÊÇjavaÓïÑÔ¿ª·¢µÄ£¬ËùÒÔÎÒÃÇÐèÒªÔ¤ÏȰ²×°ºÃjavaÏà¹Ø»·¾³¡£ÎÒʹÓõÄÊÇJDK8£¬Ö±½ÓʹÓÃyum°²×°¼´¿É£¬yum²Ö¿âÓÐ×îеÄÔ´¡£

ÏȲ鿴Ä㵱ǰ»úÆ÷ÊÇ·ñ°²×°ÁËjava»·¾³£º

yum info installed |grep java*

Èç¹ûÒѾ­´æÔÚjava»·¾³ÇÒÕâ¸ö»·¾³²»ÊÇÄãÏëÒªµÄ£¬Äã¿ÉÒÔÐ¶ÔØÈ»ºóÖØÐ°²×°ÄãÏëÒªµÄ°æ±¾¡£(yum ¨Cy remove xxx)Èç¹ûÐ¶ÔØ²»¸É¾»£¬Äã¿ÉÒÔÖ±½Ófind ²éÕÒÏà¹ØÎļþ£¬È»ºóÖ±½ÓÎïÀíɾ³ý¡£linuxµÄϵͳ¶¼ÊÇ»ùÓÚÎļþµÄ£¬Ö»ÒªÄÜÕÒµ½»ù±¾É϶¼¿ÉÒÔɾ³ý¡£

ÏÈ¿´ÏÂÓÐÄÄЩ°æ±¾£º

yum search java

java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment£¨ÕÒµ½Õâ¸öÔ´£©

È»ºóÖ´Ðа²×°£º

yum ¨Cy install java-1.8.0-openjdk.x86_64

°²×°ºÃÖ®ºó²é¿´java Ïà¹Ø²ÎÊý£º

java ¨Cversion

Ô¤±¸¹¤×÷ÎÒÃÇÒѾ­×öºÃ£¬½ÓÏÂÀ´ÎÒÃǽ«Ö´ÐÐElasticSearchµÄ»·¾³°²×°ºÍÅäÖá£

2.1.²éÕÒ¡¢ÏÂÔØrpm°ü¡¢Ö´ÐÐrpm°ü°²×°

Äã¿ÉÒÔÓм¸ÖÖ·½Ê½°²×°¡£Ê¹ÓÃyum repositoryÊÇ×î¿ì×î±ã½ÝµÄ£¬µ«ÊÇÒ»°ãÕâÀïÃæµÄ°æ±¾Ó¦¸ÃÊDZȽÏÖͺóµÄ¡£ËùÒÔÎÒÊÇÖ±½Óµ½¹ÙÍøÏÂÔØrpm°ü°²×°µÄ¡£

elasticsearch¹Ù·½ÏÂÔØµØÖ·£º https://www.elastic.co/downloads/elasticsearch

ÕÒµ½Äã¶ÔÓ¦µÄϵͳÀàÐÍÎļþ£¬µ±È»Èç¹ûÄãÊÇwindowsϵͳÄǾÍÖ±½ÓÏÂÔØzip°üʹÓþÍÐÐÁË¡£ÕâÀïÎÒÐèÒªrpmÎļþ¡£

ÄãÒ²¿ÉÒÔ°²×°±¾µØyum Ô´£¬È»ºó»¹ÊÇʹÓÃyumÃüÁî°²×°¡£

ÎÒÊÇʹÓÃwget ¹¤¾ßÖ±½ÓÏÂÔØRPMÎļþµ½±¾µØµÄ¡££¨Èç¹ûÄãµÄ°üÓÐÒÀÀµ½¨Ò黹ÊÇyum·½Ê½°²×°¡££©

£¨Èç¹ûÄãµÄwgetÃüÁî²»Æð×÷Ó㬼ǵÃÏȰ²×°£ºyum -y install wget£©

wget https://download.elastic.co /elasticsearch/release/org /elasticsearch/distribution/rpm/elasticsearch/ 2.4.0/elasticsearch-2.4.0.rpm

È»ºóµÈ´ýÏÂÔØÍê³É¡£

ÕâÀïÓиö¶«Î÷ÐèÒªÌáÐÑÏ£¬¾ÍÊÇÄãÊÇ·ñÒª°²×°×îа汾µÄelasticsearch£¬¸öÈ˽¨Ò黹Êǰ²×°ÉÔ΢µÍÒ»¸ö°æ±¾µÄ£¬ÎÒ±¾µØ°²×°µÄÊÇ2.3.4µÄ°æ±¾¡£ÎªÊ²Ã´ÒªÕâÑùÇ¿µ÷ÄᣬÒòΪµ±Äã°²×°Á˺ܸߵİ汾֮ºóÓÐÒ»¸öºÜ´óµÄÎÊÌâ¾ÍÊÇÖÐÎÄ·Ö´ÊÆ÷ÄÜ·ñÖ§³Öµ½Õâ¸ö°æ±¾¡£´Ó2.3.5Ö®ºó¾ÍÖ±½Óµ½2.4.0µÄ°æ±¾ÁË£¬ÎÒµ±Ê±°²×°µÄÊÇ2.3.5µÄ°æ±¾ºóÀ´·¢ÏÖÒ»¸öÎÊÌâ¾ÍÊÇikÖÐÎÄ·Ö´ÊÆ÷ÎÒµÃgit cloneÏÂÀ´±àÒëºó²ÅÄÜÓÐÊä³ö²¿ÊðÎļþ¡£ËùÒÔ½¨Òé´ó¼Ò°²×°2.3.4µÄ°æ±¾£¬2.3.4µÄ°æ±¾ÖÐÎÄ·Ö´ÊÆ÷¾Í¿ÉÒÔÖ±½ÓÔÚlinux·þÎñÆ÷ÀïÏÂÔØ²¿Ê𣬺ܷ½±ã¡£

Ö´Ðа²×°£º

rpm -iv elasticsearch-2.3.4.rpm

È»ºóµÈ´ý°²×°Íê³É¡£

²»³öʲôÒâÍ⣬°²×°¾ÍÓ¦¸ÃÍê³ÉÁË¡£ÎÒÃǽøÐÐÏ»ù±¾µÄ°²×°ÐÅÏ¢²é¿´£¬ÊÇ·ñ°²×°Ö®ºóȱÉÙʲôÎļþ¡£ÒòΪÓÐЩ°üÀïÃæ»áȱÉÙһЩconfigÅäÖá£Èç¹ûȱÉÙÎÒÃÇ»¹µÃ²¹³äÍêÕû¡£

ΪÁË·½±ã²é¿´°²×°Éæ¼°µ½µÄÎļþ£¬Äã¿ÉÒÔµ¼º½µ½¸ùĿ¼Ï find¡£

cd /
find . ¨Cname elasticsearch
./var/lib/elasticsearch
./var/log/elasticsearch
./var/run/elasticsearch
./etc/rc.d/init.d/elasticsearch
./etc/sysconfig/elasticsearch
./etc/elasticsearch
./usr/share/elasticsearch
./usr/share/elasticsearch/bin/elasticsearch

»ù±¾Éϲ¶àÁË£¬Ä㻹µÃ¿´ÏÂÊÇ·ñȱÉÙconfig£¬ÒòΪÎÒ°²×°µÄʱºòÊÇȱÉٵġ£

cd /usr/share/elasticsearch/
ll
drwxr-xr-x. 2 root root 4096 9ÔÂ 4 01:10 bin
drwxr-xr-x. 2 root root 4096 9ÔÂ 4 01:10 lib
-rw-r--r--. 1 root root 11358 6ÔÂ 30 19:22 LICENSE.txt
drwxr-xr-x. 5 root root 4096 9ÔÂ 4 01:10 modules
-rw-r--r--. 1 root root 150 6ÔÂ 30 19:22 NOTICE.txt
drwxr-xr-x. 2 elasticsearch elasticsearch 4096 6ÔÂ 30 19:32 plugins
-rw-r--r--. 1 root root 8700 6ÔÂ 30 19:22 README.textile

´ó¸Å¿´ÏÂÄãÓ¦¸ÃÒ²ÊÇȱÉÙconfigÎļþ¼ÐµÄ¡£ÎÒÃÇ»¹µÃ°ÑÕâ¸öÎļþ¼Ð½¨ºÃ£¬Í¬Ê±»¹ÐèÒªÒ»¸öelasticsearch.ymlÅäÖÃÎļþ¡£Òª²»È»Æô¶¯µÄʱºò¿Ï¶¨ÊDZ¨´íµÄ¡£

mkdir config
cd config
vim elasticsearch.yml

ÕÒÒ»ÏÂelasticsearch.ymlÅäÖÃÌùÉÏÈ¥£¬»òÕßÄãÓÃÎļþµÄ·½Ê½´«ËÍÒ²ÐС£ÕâЩÅäÖö¼ÊÇ»ù±¾µÄ£¬»ØÍ·»¹ÐèÒª¸ù¾ÝÇé¿öµ÷ÕûÅäÖõġ£ÓÐЩÅäÖÃÔÚÅäÖÃÎļþÖÐÊÇûÓе쬻¹ÐèÒªµ½¹Ù·½ÉÏÈ¥²éÕҵġ£ËùÒÔÕâÀïÎÞËùνÅäÖÃÎļþµÄÈ«»òÕß²»È«¡£¹ØÓÚÅäÖÃÏîÍøÉÏÓкܶà×ÊÁÏ£¬ËùÒÔÕâ¸öÎÞËùνµÄ¡£

±£´æÏÂelasticsearch.ymlÎļþ¡£

Ä㻹ÐèÒªÒ»¸ölogging.ymlÈÕÖ¾ÅäÖÃÎļþ¡£es×÷Ϊ·þÎñÆ÷ºǫ́ÔËÐеķþÎñÊǿ϶¨ÐèÒªÈÕÖ¾ÎļþµÄ¡£Õⲿ·ÖÈÕÖ¾»á±»ÄãµÄÈÕ־ƽ̨ÊÕ¼¯ºÍ¼à¿Ø£¬ÓÃÀ´×öΪÔËά½¡¿µ¼ì²é¡£logging.yml±¾ÖÊÉÏÊÇÒ»¸ölog4jµÄÅäÖÃÎļþ£¬Õâ¸öÓ¦¸Ã´ó¼Ò¶¼±È½ÏÊìϤÁË¡£¸úelasticsearch.ymlÀàËÆ£¬ÒªÃ´¸´ÖÆÕ³ÌùҪôÎļþ´«ËÍ¡£

ÈÕÖ¾µÄÊä³öÔÚlogsĿ¼Ï£¬Õâ¸öĿ¼»á±»×Ô¶¯´´½¨¡£µ«ÊÇÎÒ»¹ÊÇϲ»¶´´½¨ºÃ£¬²»Ï²»¶Óв»È·¶¨ÒòËØ£¬Ò²ÐíËü¾Í²»»á×Ô¶¯´´½¨¡£

mkdir logs

×îºóÐèÒªÉèÖÃϸղÅÎÒÃÇÌí¼ÓµÄÎļþµÄÖ´ÐÐȨÏÞ¡£Òª²»È»ÄãµÄÎļþÃû×ÖÓ¦¸ÃÊǰ×É«µÄ£¬ÊDz»ÔÊÐí±»Ö´ÐС£

cd ..

chmod ¨CR u+x config/

ÏÖÔÚ»ù±¾Éϰ²×°ËãÊÇÍê³ÉÁË£¬ÊÔ×Åcdµ½ÎļþµÄÆô¶¯Ä¿Â¼ÏÂÆô¶¯es£¬À´¼ì²éÏÂÊÇ·ñÄÜÕý³£Æô¶¯¡£

²»³öÒâÍâÄã»áÊÕµ½Ò»¸ö ¡°java.lang.RuntimeException: don't run elasticsearch as root¡±Òì³£¡£Õâ˵Ã÷ÎÒÃÇÍê³ÉÁ˵ÚÒ»²½°²×°¹ý³Ì£¬Ï½ÚÎÒÃÇÀ´¿´ÓÐ¹ØÆô¶¯ÕË»§µÄÎÊÌâ¡£

2.2.ÅäÖÃelasticsearchרÊôÕË»§ºÍ×é

ĬÈÏÇé¿öÏÂesÊDz»ÔÊÐírootÕË»§Æô¶¯µÄ£¬ÕâÊÇΪÁ˰²È«Æð¼û¡£esĬÈÏÄÚǶÁËgroovy½Å±¾ÒýÇæµÄ¹¦ÄÜ£¬»¹Óкܶàplugin½Å±¾ÒýÇæ²å¼þ£¬È·Êµ²»Ì«°²È«¡£es¸Õ³öÀ´µÄʱºò»¹ÓÐgroovy©¶´£¬ËùÒÔ½¨ÒéÔÚ²úÏßµÄes instance ¹ØµôÕâ¸ö½Å±¾¹¦ÄÜ¡£ËäȻĬÈϲ»ÊÇ¿ªÆôµÄ£¬°²È«Æð¼û»¹ÊǼì²éÒ»ÏÂÄãµÄÅäÖá£

ËùÒÔÎÒÃÇÐèҪΪesÅäÖöÀÁ¢µÄÕË»§ºÍ×é¡£ÔÚ´´½¨esרÓÃÕË»§Ö®Ç°ÏȲ鿴ÏÂϵͳÀïÃæÊÇ·ñÒѾ­ÓÐÁËesרÓÃÕË»§¡£ÒòΪÔÚÎÒÃÇÇ°Ãærpm°²×°µÄʱºò»á×Ô¶¯°²×°elasticsearch×éºÍÓû§¡£ÏȲ鿴Ï£¬Èç¹ûÄãµÄ°²×°Ã»ÓдøÉÏרÓÃ×éºÍÓû§È»ºóÄãÔÚ´´½¨¡£ÕâÑùÒÔÃâÄã×Ô¼ºÔö¼ÓµÄºÍϵͳ´´½¨µÄ¸ã»ìÏý¡£

²é¿´ÏÂ×é:

cat /etc/group

 

²é¿´ÏÂÓû§£º

cat /etc/passwd

»ù±¾É϶¼´´½¨ºÃÁË¡£499µÄgroupÔÚpasswdÖÐÒ²´´½¨Á˶ÔÓ¦µÄelasticsearchÕ˺š£

Èç¹ûÄãϵͳÀïûÓÐ×Ô¶¯´´½¨¶ÔÓ¦µÄ×éºÍÕ˺ţ¬Äã¾Í¶¯ÊÖ×Ô¼º´´½¨£¬ÈçÏ£º

´´½¨×飺

groupadd elasticsearch_group

´´½¨Óû§£º

useradd elasticsearch_user -g elasticsearch_group -s /sbin/nologin

×¢Ò⣺´ËÕË»§ÊDz»¾ßÓеǼȨÏ޵ġ£ËüµÄshellÊÇÔÚ/sbin/nologin¡£

ΪÁËÑÝʾ£¬ÔÚÎҵĵçÄÔÉÏÓÐÁ½×éelasticsearchרÓÃÕË»§£¬ÎÒ½«É¾³ý¡°_group¡±ºÍ¡°_user¡±½áβµÄÕ˺ţ¬ÒÔrpm×Ô¶¯°²×°µÄΪesµÄÆô¶¯Õ˺ţ¨elasticsearch£©¡£

2.3.ÉèÖÃelasticsearchÎļþËùÓÐÕß

½ÓÏÂÀ´ÎÒÃÇÐèÒª×öµÄ¾ÍÊǹØÁªesÎļþºÍelasticsearchÕ˺ţ¬½«esÏà¹ØµÄÎļþÉèÖóÉelasticsearchÓû§ÎªËùÓÐÕߣ¬ÕâÑùelasticsearchÓû§¾Í¿ÉÒÔûÓÐÈκÎȨÏÞÏÞÖÆµÄʹÓÃesËùÓÐÎļþ¡£

µ¼º½µ½elasticsearchÉϼ¶Ä¿Â¼£º

cd /usr/share

ll

chown -R elasticsearch:elasticsearch elasticsearch/

´Ëʱ£¬ÄãµÄelasticsearchÎļþµÄownerÊÇelasticsearch¡£

2.4.Çл»µ½elasticsearchרÊôÕË»§²âÊÔÄÜ·ñ³É¹¦Æô¶¯

ΪÁ˲âÊÔÆô¶¯esʵÀý£¬ÎÒÃÇÐèÒªÔÝʱµÄ½«elasticsearchµÄÓû§Çл»µ½/bin/bash¡£ÕâÑùÎÒÃǾͿÉÒÔsu elasticsearch£¬È»ºóÆô¶¯esʵÀý¡£

su elasticsearch

cd /usr/share/elasticsearch/bin

./elasticsearch

Æô¶¯Íê³É£¬´ËʱӦ¸Ãû·¢ÉúÈκÎÒì³£¡£¿´ÏÂϵͳ¶Ë¿ÚÊÇ·ñÆô¶¯³É³¤¡£

netstat ¨Ctnl

¼ÌÐø²é¿´ÏÂHTTP·þÎñÊÇ·ñÆô¶¯Õý³£¡£

curl ¨Cget http://192.168.0.103:9200/_cat

ÓÉÓÚ´ËʱÎÒÃDz¢Ã»Óа²×°Èκθ¨Öú¹ÜÀí¹¤¾ß£¬È磬plugin/head¡£ËùÒÔÓÃÄÚÖõÄ_cat rest endpoit»¹ÊÇͦ·½±ãµÄ¡£

curl -get http://192.168.0.103:9200/_cat/nodes

192.168.0.103 192.168.0.103 4 64 0.00 d * node-1

¿ÉÒÔ¿´¼û£¬Ä¿Ç°Ö»ÓÐÒ»¸ö½ÚµãÔÚ¹¤×÷£¬192.168.0.103£¬ÇÒËüÊÇÒ»¸ödata node¡£

£¨±¸×¢£ºÎªÁ˽Úʡʱ¼ä£¬ÎÒÔÝʱÏÈʹÓÃһ̨103µÄ¸É¾»»·¾³×÷Ϊ°²×°ºÍ»·¾³´î½¨ÑÝʾ£¬µ±´î½¨¼¯ÈºµÄʱºòÎÒ»áclone³öÀ´ºÍÐÞ¸ÄIP¡£)

2.5.°²×°×ÔÆô¶¯elasticsearch servicewrapper°ü

esµÄϵͳ×ÔÆô¶¯ÓÐÒ»¸ö¿ªÔ´µÄwrapper°ü¿ÉÒÔʹÓá£Èç¹ûÄ㲻ʹÓÃÕâ¸öwrapperÒ²¿ÉÒÔ×Ô¼ºÈ¥Ð´shell½Å±¾£¬µ«ÊÇÀïÃæµÄºÜ¶à²ÎÊýÐèÒªÄã¸ãµÄ·Ç³£Çå³þ²ÅÐУ¬ÔÚ¼ÓÉÏÓÐЩ¹Ø¼ü²ÎÊýÐèÒªÉèÖá£ËùÒÔ»¹Êǽ¨ÒéÔÚelasticsearchwrapper°üµÄ»ù´¡ÉϽøÐÐÐÞ¸ÄЧÂÊ»á¸ßµã£¬¶øÇÒÄ㻹ÄÜÔÚelasticsearch shellÖп´¼ûһЩesÉî²ã´ÎµÄÅäÖúÍÔ­Àí¡£

(±¸×¢£ºÈç¹ûÄãÊÇ.neter£¬Äã¿ÉÒÔ½«servicewrapperÀí½â³ÉÊÇ¿ªÔ´.net topshelf¡£±¾ÖʾÍÊǽ«³ÌÐò°ü×°³É¾ßÓÐϵͳ·þÎñ¹¦ÄÜ£¬Äã¿ÉÒÔ°²×°¡¢Ð¶ÔØ£¬Ò²¿ÉÒÔÖ±½ÓÆô¶¯¡¢Í£Ö¹£¬»òÕ߸ɴàÖ±½Óǰ̨ÔËÐС££©

2.5.1.ÏÂÔØelasticsearch servicewrapper °ü

elasticsearchwrapper githubÊ×Ò³£¬ https://github.com/elastic/ elasticsearch-servicewrapper

¸´ÖÆ git repository µØÖ·µ½¼ôÌù°å£¬È»ºóÖ±½Ócloneµ½±¾µØ¡£

git clone https://github.com/elastic/ elasticsearch-servicewrapper.git

(ÄãÐèÒªÔÚµ±Ç°linux»úÆ÷Éϰ²×°git¿Í»§¶Ë£ºyum ¨Cy install git£¬ÎÒ°²×°µÄÊÇĬÈÏ1.7µÄ°æ±¾¡££©

È»ºóµÈ´ýcloneÍê³É¡£

²é¿´ÏÂcloneÏÂÀ´µÄ±¾µØ²Ö¿âÎļþÇé¿ö¡£½øÈëelasticsearchwrapper£¬²é¿´µ±Ç°git ·ÖÖ§¡£

cd /root/elasticsearch-servicewrapper
git branch
*master
ll

Ò»Çж¼ºÜÕý³££¬ËµÃ÷ÎÒÃÇcloneÏÂÀ´Ã»ÎÊÌ⣬°üÀ¨·ÖÖ§Ò²ÊǺÜÇåÎúµÄ¡£serviceÎļþ¾ÍÊÇÎÒÃÇÒª°²×°µÄ°²×°Îļþ¡£

ÎÒÃÇÐèÒª½«serviceÎļþcopyµ½elasticsearch/binĿ¼Ï¡£

cp -R service/ /usr/share/elasticsearch/bin/

cd /usr/share/elasticsearch/bin/

serviceÀïµÄ°²×°ÎļþÐèÒªÔÚelasticsearch/binĿ¼Ï¹¤×÷¡£

cd service/

ll

./elasticsearch

²Î¿¼githubÉÏelasticsearchwrapperʹÓÃ˵Ã÷¡£elasticsearch servicewrapperµÄ¹¦ÄÜ»¹ÊÇÂù¶àµÄ£¬status¡¢dump¶¼ÊǺܺõļì²éºÍµ÷ÊÔ¹¤¾ß¡£

ÔÚ°²×°Ö®Ç°£¬ÎÒÃÇÐèÒªÔÝʱÔÚǰ̨ÔËÐÐesʵÀý£¬ÕâÑù¿ÉÒԲ鿴һЩlogÊÇ·ñÓÐÒì³£Çé¿ö¡£ParameterµÄ¸÷¸ö²ÎÊýдµÄºÜÇå³þ£¬ÎÒÃÇÕâÀïʹÓÃconsole¿ØÖÆÌ¨Êä³öÆô¶¯esʵÀý¡£

./elasticsearch console

2.5.2 elasticsearch servicewrapper¿ªÔ´°üµÄÅäÖÃСbug

´ËʱÄãÓ¦¸Ã»áÊÕµ½Ò»¸öErrorµÄÌáʾ£º

WrapperSimpleApp Error: Unable to locate the class org.elasticsearch.bootstrap.ElasticsearchF : java.lang.ClassNotFoundException: org.elasticsearch.bootstrap.ElasticsearchF

µÚÒ»´Î¿´µ½Õâ¸öÎÒÓеãÃÉ£¬Õâ¸öElasticsearchFÊǸöʲô¶ÔÏó¡£ÃüÃûÓеãÌØÊ⣬ÔÙ½øÒ»²½²é¿´ExceptionµÄÐÅÏ¢£¬ÆäʵÊÇÒ»¸öClassNotFoundExceptionÒì³£¡£ËµÃ÷ÕÒ²»µ½Õâ¸öElasticSearchFÀà¡£

Á½ÖÖ¿ÉÄÜÐÔ£¬µÚÒ»¾ÍÊÇjava elasticsearchÏà¹Ø°üµÄÎÊÌ⣬ȷʵȱÉÙÕâ¸öÀà¡£µ«ÊÇÕâ¸ö¿ÉÄÜÐÔºÜС£¬ÒòΪÎÒÃÇ֮ǰֱ½ÓÔËÐÐelasticsearchÊdzɹ¦µÄ¡£ÎÒµ±Ê±ÓÃjd-gui·­ÁËÏÂesµÄ°ü£¬È·ÊµÃ»ÓÐÕâ¸öÀà¡£

µÚ¶þ¾ÍÊÇÕâÀïµÄÅäÖôíÎó£¬Ó¦¸Ã¾Í¸öÊÖÎó£¬È·ÊµÃ»ÓÐElasticsearchFÕâ¸öÀà¡£

ÎÒÃDz鿴ÏÂservice/elasticsearch.confÅäÖÃÎļþÀïÊDz»ÊÇÓÐÕâ¸ö¡®elasticsearchF¡¯×Ö·û´®¡££¨wrapper°üÊÇʹÓõ±Ç°Ä¿Â¼ÏµÄelasticsearch.conf×÷ΪÅäÖÃÎļþʹÓõģ©

grep ¨Ci elasticsearchf elasticsearch.conf

ȷʵÓÐÕâ¸ö×Ö·û´®£¬ÎÒÃǽøÐб༭±£´æ£¬È¥µô×îºóµÄ¡®F¡¯¡£

È»ºóÎÒÃÇÔÚ½øÐÐÆô¶¯³¢ÊÔ¡£

./elasticsearch console

ÎÒ²»ÖªµÀÄãÊDz»ÊÇ»áºÍÎÒµÄÇé¿öÒ»Ñù£¬ÌáʾÏà¹ØÃüÁî¶¼ÊDz»¹æ·¶µÄ¡£

Õâ¸öÔËÐÐÁ´Â·»ù±¾ÉϾ­¹ýÈý¸ö·¾¶£¬µÚÒ»¸ö¾ÍÊÇservice/elasticsearch shellÆô¶¯½Å±¾£¬È»ºó»ñÈ¡ÃüÁî·ÖÎöÃüÁîÔÙÆô¶¯execϵÄÏà¹Øjava servicewrapper³ÌÐò¡£

Õâ¸öjava servicewrapper³ÌÐò£¬°æ±¾ÊÇ3.5.14¡£¸ù¾ÝÉÏÊö˼·£¬Í¨¹ý²é¿´elasticsearch shell³ÌÐò£¬ËüÔÚ½ÓÊÕµ½ÍⲿµÄÃüÁîÖ®ºó»áÆô¶¯execϵÄjava servicewrapper³ÌÐò¡£ÎÒÏëÊÔ×ű༭ÁËÏÂelasticsearch shellÎļþ£¬Êä³öһЩÐÅÏ¢³öÀ´£¬²é¿´ÏÂÊDz»ÊÇ»ñÈ¡Ïà¹ØÂ·¾¶»òÕß²ÎÊýÖ®ÀàµÄµ¼Ö´íÎó¡££¨Óöµ½ÎÊÌⲻţ¬ÖÁÉÙÎÒÃÇҪһ·¸úÏÂÈ¥£¬¿´Ï¾¿¾¹ÊÇÔõô»ØÊ¡££©

vim ./elasticsearch

esc

:/console

ÕÒÏÂconsoleÔÚÄÄÀȻºó¼ÓÉϵ÷ÊÔÎı¾ÐÅÏ¢£¬Êä³öµ½½çÃæÉÏ¡£

ÔÙÔËÐУ¬²é¿´ÃüÁî²ÎÊýÊÇ·ñÓÐÎÊÌâ¡£

²é¿´ÁËÏ£¬Êä³öµÄ²ÎÊý»ù±¾¶¼Ã»ÓÐÎÊÌ⡣һʱÎ޽⡣ºÃÆæÐÄ×÷¹Ö£¬±¾ÏëÔÙ½øÒ»²½¿´ÏÂexec/elasticsearch-linux-x86-64.soÎļþµÄ£¬ºóÀ´·¢ÏÖ´ò¿ª¸ù±¾¾Í¿´²»¶®¡£ËùÒÔ¾ÍÁíѰÆäËû·½·¨£¬ÎÒÕÒÁËwindows°æ±¾servicewrapper£¬·¢ÏÖwindowsµÄelasticsearchservicewrapperÊÇûÓÐ32λµÄservicewrapperµÄ¡£ÎÒÊÔ×ÅÔËÐÐÆðÀ´»ù±¾ÉÏÒ²ÊDZ¨ÏàͬµÄ´íÎ󣬵«ÊÇwindowsµÄwrapperµÄerrorÐÅÏ¢±È½Ï¶àµã£¬Ìáʾ³ö´íµÄÔ­ÒòÔÚÄÄÀï¡£

ÎÒÏëÐÞ¸ÄÏÂÈÕÖ¾µÄÊä³ö¼¶±ð£¬¿´ÄÜ·ñÊä³öһЩ¿ÉÒÔÓõÄÐÅÏ¢¡£±à¼­service/elasticsearch.conf wrapper°üרÓÃÅäÖá£

# Log Level for console output.? (See docs for log levels)
wrapper.console.loglevel=TRACE
# Log Level for console output.? (See docs for log levels)
wrapper.console.loglevel=TRACE

ÎÒÃǽ«ÈÕÖ¾Êä³ö¼¶±ðÉèÖóÉtrace£¬ÓÐÁ½´¦ÐèÒªÉèÖã¬ÎÒÃÇÔÙ¿´Êä³öÐÅÏ¢¡£

ÊÇÊä³öÁËһЩÓÐÓõÄÐÅÏ¢£¬¿ÉÒԲ鿴logÎļþÏêÇé¡£

WrapperManager Debug: Received a packet LOGFILE : /usr/share/elasticsearch/logs/service.log

µ«ÊÇÓйØÓÚerrorµÄÐÅÏ¢»¹ÊÇÖ»ÓÐÒ»Ìõ¡£

ÕâÀï¾Í¸æÒ»¶ÎÂä¡£ÎÒÃǵÄÄ¿µÄÊÇΪÁËʹÓÃconsoleÀ´ÔËÐУ¬Ïë²é¿´ÏÂһЩÔËÐÐÈÕÖ¾£¬µ«ÊÇÅܲ»ÆðÀ´Ò²ÎÞËùν£¬ÎÒÃǼÌÐøÖ´Ðа²×°²Ù×÷¡£

£¨ÄÄ벩ÓÑÈç¹ûÖªµÀÎÊÌâÔÚÄÄÀïµÄ¿ÉÒÔ·ÖÏí³öÀ´£¬ÎÒ¾õµÃÕâ¸öÎÊÌâ²»ÊÇÒ»¸öż·¢ÐÔÎÊÌ⣬Ӧ¸Ã¶¼»áÓöµ½¡£ÎÒÏÈÅ׳öÎÊÌ⣬ÖÁÉÙ¿ÉÒÔ·þÎñ½«À´µÄʹÓÃÕß¡£ÕâÀïÏÈллÁË¡££©

Æäʵ£¬Èç¹ûÄ㲻ʹÓÃelasticsearch servicewrapperÀ´°ü×°¶øÊÇ×Ô¼ºÈ¥ÏÂÔØjava serivcewrapperÀ´°ü×°elasticsearchÒ²ÊÇ¿ÉÒԵģ¬ÊµÏÖÆðÀ´Ò²ºÜ·½±ã¡£

ÎÒÃǻص½Ö÷Ì⣬¼ÈÈ»ÎÒÃÇÎÞ·¨consoleÔËÐУ¬Ò²¿´²»ÁËһЩwrapper consoleÖ´ÐÐʱµÄÇé¿ö£¬ÄÇÎÒÃǾÍÖ»ÄܽøÐа²×°ÁË¡£

2.5.3 servicewrapper°²×° (elasticsearch init.d Æô¶¯ÎļþÉèÖÃuser¡¢openfile¡¢configpath)

°´ÕÕelasticsearch servicewrapper parameter²ÎÊýָʾ£¬ÎÒÃÇÖ´Ðа²×°¡£

./elasticsearch install

Installing the Elasticsearch daemon..

ÊØ»¤½ø³Ì°²×°Íê³É¡£ÎÒÃÇ»¹ÊÇǰȥϵͳĿ¼Ï²鿴ÊDz»Êǰ²×°³É¹¦£¨¼¼ÊõÈËԱʼÖÕ±£³ÖÒ»¸öÑϽ÷µÄÐÄ̬ÊÇÓбØÒªµÄ¡££©Ç°Íù/etc/init.d/Ŀ¼Ï²鿴¡£

ll /etc/init.d/

-rwxrwxr--. 1 root root? 4496 10ÔÂ? 4 01:43 elasticsearch

ÎÒÕâÀïÉèÖùýchmod u+x ./elasticsearch¡£±ðÍü¼ÇÉèÖÃÎļþµÄÖ´ÐÐȨÏÞ£¬ÕâÔÚÎÒÃÇ¡¾2.1½Ú¡¿Àォ½á¹û£¬ÕâÀï¾Í²»Öظ´ÁË¡£

ÎÒÃÇ¿ªÊ¼±à¼­elasticsearchÆô¶¯Îļþ¡£

Ö÷Òª¾ÍÊÇÕâ¶Î£¬ÌîдºÃÅäÖõÄesµÄרÓÃÕË»§£¨elasticsearch¡¾2.2.½Ú¡¿£©£¬»¹ÓÐÏàÓ¦µÄÎļþ·¾¶¡£ÕâÀïÏȺöÂÔMAX_OPEN_FILES¡¢MAX_MAP_COUNTÁ½¸öÅäÖÃÏÔÚºóÃæ¡¾3.3.½Ú¡¿ÅäÖò¿·Ö»á½²½âµ½¡£

2.5.4 chkconfig -add ¼ÓÈëlinuxÆô¶¯·þÎñÁбí

½«ÆäÌí¼Óµ½ÏµÍ³·þÎñÖУ¬ÒԱ㱻ϵͳ×Ô¶¯Æô¶¯¡£

chkconfig --add elasticsearch
chkconfig ¨Clist

ÒѾ­Ìí¼ÓºÃϵͳ×ÔÆô¶¯·þÎñÁбíÖС£

service elasticsearch start

Æô¶¯esʵÀý£¬µÈ´ý¶Ë¿ÚÆô¶¯Íê³É£¬ÉÔµÈÆ¬¿Ì²é¿´¶Ë¿ÚÇé¿ö¡£

netstat ¨Ctnl

9300¶Ë¿Ú±È9200¶Ë¿ÚÏÈÆô¶¯£¬ÒòΪ9300¶Ë¿ÚÊÇ clusterÄÚ²¿¹ÜÀí¶Ë¿Ú¡£9200ÊÇrest endpoint ·þÎñ¶Ë¿Ú¡£µ±È»£¬Õâ¸öʱ¼äÑÓ³¤²»»áºÜ³¤¡£

¶Ë¿Ú¶¼Æô¶¯³É¹¦Ö®ºó£¬ÎÒÃDz鿴ÏÂÄÜ·ñÕý³£·ÃÎÊesʵÀý¡£

curl -get http://192.168.0.103:9200/
{
"name" : "node-1",
"cluster_name" : "orderSearch_cluster",
"version" : {
"number" : "2.3.4",
"build_hash" : "e455fd0c13dceca8dbbdbb1665d068ae55dabe3f",
"build_timestamp" : "2016-06-30T11:24:31Z",
"build_snapshot" : false,
"lucene_version" : "5.5.0"
},
"tagline" : "You Know, for Search"
}

ÎÒÃÇ»¹ÊÇʹÓÃ_cat rest endpointÀ´²é¿´¡£

curl -get http://192.168.0.103:9200/_cat/nodes
192.168.0.103 192.168.0.103 4 61 0.00 d * node-1

Èç¹ûÄã¿ÉÒÔÔÚ±¾»ú·ÃÎÊ£¬µ«ÊÇÔÚÍⲿä¯ÀÀÆ÷ÖÐÎÞ·¨·ÃÎÊ£¬ºÜ¿ÉÄÜÊÇ·À»ðǽµÄÉèÖÃÎÊÌ⣬Äã¿ÉÒÔÈ¥ÉèÖÃÏ·À»ðǽ¡£

vim /etc/sysconfig/iptables

ÖØÆôÍøÂç·þÎñ£¬ÒÔ±ã¼ÓÔØ·À»ðǽÉèÖÃÏî¡£

service network restart

È»ºóÔÙ³¢ÊÔ¿´ÄÜ·ñÍⲿ·ÃÎÊ£¬Èç¹û²»ÐÐÄã¾Ítelnet¶Ë¿ÚÏ¡£

ÒòΪ·ÃÎʲ»ÁË»¹ÓÐÒ»¸öÔ­ÒòÊǺÍelasticsearch.ymlÒ»¸öÅäÖÃÏîÓйØÏµ¡£¼û¡¾3.1.1½Ú¡¿¡£

ÖØÆô»úÆ÷£¬²é¿´esʵÀýÊÇ·ñ»á×Ô¶¯Æô¶¯¡£

shutdown ¨Cr now

ÉÔµÈÆ¬¿Ì£¬È»ºó³¢ÊÔÁ¬½Ó»úÆ÷¡£

Èç¹ûû³öʲôÒâÍ⣬¶¼Ó¦¸ÃÕý³£µÄ£¬¶Ë¿ÚÒ²Æô¶¯³É¹¦ÁË¡£ËµÃ÷ÎÒÃÇÍê³ÉÁËesʵÀý×ÔÆô¶¯¹¦ÄÜ£¬ËüÏÖÔÚ×÷Ϊlinuxϵͳ·þÎñ±»×Ô¶¯¹ÜÀí¡£

°²×°³É·þÎñÖ®ºó£¬elasticsearch servicewrapperºÍÎÒÃǾÍûÓÐÌ«¶à¹ØÏµÁË¡£ÒòΪËüµÄparameter¶¼ÊÇÎ§ÈÆÕßÎÒÃÇ»ùÓÚservicewrapperÀ´Ê¹Óõġ£

2.6.°²×°_plugin/head¹ÜÀí²å¼þ£¨¸¨Öú¹ÜÀí£©

ΪÁ˺ܺõĹÜÀí¼¯Èº£¬ÎÒÃÇÐèÒªÏàÓ¦µÄ¹¤¾ß£¬headÊDZȽÏÁ÷ÐкÍͨÓõ쬶øÇÒÊÇÃâ·ÑµÄ¡£µ±È»»¹ÓкܶàºÃÓÃµÄÆäËû¹¤¾ß£¬È磬Bigdesk¡¢Marvel£¨ÉÌÓÃÊÕ·Ñ£©¡£pluginµÄ°²×°¶¼´óͬСÒ죬ÎÒÃÇÕâÀï¾ÍʹÓÃͨÓõÄhead¹¤¾ß¡£

ÏÈ¿´Ï£¬head¸øÎÒÃÇ´øÀ´µÄÇåÎúµÄ¼¯Èº½Úµã¹ÜÀíÊÓͼ¡£

ÕâÊÇÓÐÈý¸ö½ÚµãµÄes¼¯ÈºÊµÀý¡£ËüÊÇÒ»¸ö¶þά¾ØÕóÅÅÁУ¬×îÉÏÃæºáÏòÊÇË÷Òý£¬×î×ó±ßÊǽڵ㣬½»²æµÄµØ·½ÊÇË÷ÒýµÄ·ÖƬÐÅÏ¢ºÍ·ÖƬ±ÈÀý¡£

°²×°head²å¼þ»¹ÊDZȽϷ½±ãµÄ£¬ÄãÒ²¿ÉÒÔÖ±½ÓcopyÎļþµÄ·½Ê½Ê¹Óá£ÔÚelasticsearchµÄhomeĿ¼ÏÂÓÐÒ»¸öpluginsĿ¼£¬ËüÊÇËùÓвå¼þµÄĿ¼£¬ËùÓеIJå¼þ¶¼»áÔÚÕâ¸öÎļþ¼Ð²éÕҺͼÓÔØ¡£

ÎÒÃÇ¿´Ï°²×°head²å¼þ·½·¨¡£ÔÚelasticsearch/bin Ŀ¼ÏÂÓÐÒ»¸öplugin¿ÉÖ´ÐÐÎļþ£¬ËüÊÇרÃÅÓÃÀ´°²×°²å¼þÓõijÌÐò¡£

./plugin -install mobz/elasticsearch-head

²å¼þµÄ²éÕÒ·¾¶Óм¸¸öelasticsearch¹ÙÍøÊÇÒ»¸ö£¬githubÊÇÒ»¸ö¡£ÕâÀï»áÏȳ¢ÊÔÔÚgithubÉϲéÕÒ£¬ÉÔµÈÆ¬¿Ì£¬µÈ´ý°²×°Íê³É¡£ÎÒÃdz¢ÊÔ·ÃÎÊhead²å¼þµØÖ·restµØÖ·/_plugin/head¡£

¿´µ½Õâ¸ö½çÃæ»ù±¾°²×°³É¹¦ÁË£¬node-1ĬÈÏÊÇmaster½Úµã¡£

2.7.°²×°chromÖеÄelasticsearch¿Í»§¶Ë²å¼þ

chromÖÐÓкܶà¿ÉÒÔʹÓõÄelasticsearch¿Í»§¶Ë²å¼þ£¬±ãÓÚ¿ª·¢ºÍά»¤£¬½¨ÒéÖ±½ÓʹÓÃchromÖеIJå¼þ¡£Ö»ÒªËÑË÷ÏÂelasticsearch¹Ø¼ü×־ͻá³öÀ´ºÜ¶à¡£

ÓÐÁ½¸ö±È½Ï³£Óã¬Ò²±È½ÏºÃÓã¬EalsticSearch Toolbox¡¢Sense(×Ô¶¯Ìáʾdsl±à¼­¹¤¾ß£©¡£chrom²å¼þ¶¼ÊÇÄÇôµÄ¿á£¬Ê¹ÓÃÆðÀ´¶¼ºÜÉÍÐÄÔÃÄ¿¡£

elasticsearch toolbox ¿ÉÒԺܷ½±ãµÄ²éѯºÍµ¼³öÊý¾Ý¡£

sense¿ÉÒÔÈÃÄã±à¼­elasticsearch dsl ÌØ¶¨ÓïÑÔ»áÓÐÆô¶¯Ìáʾ°ïÖú£¬ÕâÑù±àдÆð¸´ÔÓµÄdslЧÂÊ»á¸ß¶øÇÒ²»Ò׳ö´í¡£ÆäËûµÄ¹¤¾ßÎÒҲûÓùý£¬¸Ð¾õ¶¼¿ÉÒÔ³¢ÊÔÓÃÓÿ´¡£

£¨±¸×¢£ºÈç¹ûÄãÎÞ·¨·ÃÎÊchromÉ̵êÖÐÐľÍÐèÒªÌØÊâ´¦ÀíÏ£¬ÕâÀï¾Í²»½âÊÍÁË¡££©

2.8.ʹÓÃelasticsearch×Ô´øµÄ_cat¹¤¾ß

ÔÚÒ»Ð©ÌØÊâµÄÇé¿öÏÂÄã¿ÉÄÜÎÞ·¨Ö±½ÓʹÓÃpluginÀ´°ïÄã¹ÜÀí»òÕ߲鿴¼¯ÈºÇé¿ö¡£´ËʱÄã¿ÉÒÔÖ±½ÓʹÓÃelasticsearch×Ô´øµÄrest _cat²é¿´¼¯ÈºÇé¿ö£¬±ÈÈ磬Äã¿ÉÄÜ·¢ÏÖ_plugin/headÓÐһЩ½ÚµãûÓÐÉÏÀ´£¬µ«ÊÇÄãÓÖ²»È·¶¨·¢ÉúÁËʲôÇé¿ö£¬Äã¾Í¿ÉÒÔʹÓÃ/_cat/nodesÀ´²é¿´ËùÓÐnodeµÄÇé¿ö¡£ÓÐʱºòȷʵÓеĽڵãûÓÐÆô¶¯ÆðÀ´£¬µ«ÊÇ´ó¶àÊýÇé¿ö϶¼ÊǸ÷×ÔΪÕþ£¨ÄÔÁÑ£©£¬Äã¿ÉÄÜÐèÒªÈÃËûÃÇÖØÐÂÑ¡¾Ù»òÕß¼Ó¿ìµÄÑ¡¾Ù¹ý³Ì¡£

http://192.168.0.20:9200/_cat/nodes?v (²é¿´nodesÇé¿ö£©

_cat rest¶Ëµã´øÓÐÒ»¸övµÄ²ÎÊý£¬Õâ¸ö²ÎÊýÊǰïÖúÄãÔĶÁµÄ²ÎÊý¡£_search rest¶Ëµã´øÓÐpretty²ÎÊý£¬Õâ¸ö²ÎÊýÊǰïÖú²éѯÊý¾ÝÔĶÁµÄ¡£Ã¿Ò»¸ö¶Ëµã»ù±¾É϶¼Óи÷×Եĸ¨ÖúÔĶÁ²ÎÊý¡£

http://192.168.0.20:9200/_cat/shards?v £¨²é¿´shardsÇé¿ö£©

http://192.168.0.20:9200/_cat/ £¨²é¿´ËùÓпÉÒÔcatµÄ¹¦ÄÜ£©

Äã¿ÉÒԲ鿴ϵͳ aliases±ðÃû¡¢segmentsƬ¶Î£¨¿´ÏÂÿ¸öƬ¶ÎµÄÌá½»°æ±¾Ò»ÖÂÐÔ£©¡¢indicesË÷Òý¼¯ºÏµÈµÈ¡£

2.9.clone Ðé»ú£¨ÐÞ¸ÄIP¡¢HWaddr¡¢UUIDÅäÖã¬×îºóÐÞ¸ÄÏÂϵͳʱ¼ä£©

µ±ÎÒÃÇÍê³ÉÁ˶Ôһ̨»úÆ÷µÄ°²×°Ö®ºó£¬½ÓÏÂÀ´¾ÍÐèÒª´î½¨·Ö²¼Ê½ÏµÍ³¡£·Ö²¼Ê½ÏµÍ³¾ÍÐèÒª¶à½Úµã»úÆ÷£¬°´ÕÕes·Ö²¼Ê½¼¯Èº´î½¨×î¼Ñʵ¼ù£¬ÄãÖÁÉÙÐèÒªÈý¸ö½Úµã¡£ËùÒÔÎÒÃǽ«ÒѾ­°²×°Íê³ÉµÄÕâ¸ö»úÆ÷clone³öÀ´Á½Ì¨£¬Ò»¹²Èý̨×é³É¿ÉÒÔ¹¤×÷µÄÈý¸ö½ÚµãµÄ·Ö²¼Ê½ÏµÍ³¡£

Ê×ÏÈcloneµ±Ç°°²×°Íê³ÉµÄ»úÆ÷£¬192.168.0.103£¬cloneºÃÖ®ºóÆô¶¯ÆðÀ´Ð޸öÅäÖü´¿É¡££¨ÒòΪÄãÊÇclone³öÀ´µÄ£¬ËùÒÔÅäÖÃÒѾ­Öظ´£¬±ÈÈç£¬Íø¿¨µØÖ·¡¢IPµØÖ·£©

±à¼­Íø¿¨ÅäÖÃÎļþ£º

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth3
HWADDR=00:0C:29:CF:48:23
TYPE=Ethernet
UUID=b848e750-d491-4c9d-b2ca-c853f21bf40b
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
BROADCAST=192.168.233.255
IPADDR=192.168.0.103
NETMASK=255.255.255.0
GATEWAY=192.168.0.1

DEVICE ÊÇÍø¿¨±êʾ£¬¸ù¾ÝÄã±¾µØµÄÍø¿¨±êʶÐ޸ijɶÔÓ¦µÄ¼´¿É£¬¿ÉÒÔͨ¹ýifconfig²é¿´¡£HWADDRÍø¿¨µØÖ·£¬ËæÒâÐÞ¸ÄÏ£¬±£Ö¤ÔÚÄãµÄÍø¶ÎÄÚ²»Öظ´¼´¿É¡£UUIDÒ²ÊǺÍHWADDRÒ»ÑùÐ޸ġ£

IPµØÖ·Ð޸ijÉÄã×Ô¼º¾õµÃºÏÊʵÄIP£¬×îºÃ²Î¿¼Ä㵱ǰÎïÀí»úÆ÷µÄÏà¹ØÅäÖá£GATEWAYÍø¹ØµØÖ·Òª²Î¿¼ÄãÎïÀí»úÆ÷µÄÍø¹ØµØÖ·£¬Èç¹ûÄãµÄÐéÄâ»úʹÓõÄÊÇÇŽÓģʽµÄÍøÂçÁ¬½Ó£¬ÕâÀï¾ÍÐèÒªÉèÖã¬Òª²»È»ÍøÂç¾ÍÁ¬½Ó²»ÉÏ¡£

ÖØÆôÍøÂç·þÎñ£º

service network restart

ÉÔµÈÆ¬¿Ì£¬sshÖØÐÂÁ¬½Ó£¬È»ºóifconfig¿´ÏÂÍøÂçÏà¹Ø²ÎÊýÊÇ·ñÕýÈ·£¬×îºóÔÙpingÒ»ÏÂÍâ²¿ÍøÖ·ºÍÄ㵱ǰÎïÀí»úÆ÷µÄIP£¬±£Ö¤ÍøÂç¶¼ÊÇͨ³©µÄ¡£

×îºóÎÒÃÇÐèÒªÐÞ¸ÄÏÂlinuxµÄϵͳʱ¼ä£¬ÕâÊÇΪÁË·ÀÖ¹·þÎñÆ÷ʱ¼ä²»Ò»Ö£¬µ¼Öºܶàϸ΢µÄÎÊÌ⣬±ÈÈ磬es¼¯ÈºmasterÑ¡¾ÙµÄʱ¼ä´ÁÎÊÌâ¡¢log4jÊä³öµÄÈÕÖ¾µÄ¼Ç¼ÎÊÌâµÈµÈ¡£ÔÚ·Ö²¼Ê½ÏµÍ³ÖУ¬Ê±Öӷdz£ÖØÒª¡£

date -s '20161008 20:47:00'

Ê±ÇøµÄ»°Èç¹ûÄãÐèÒªÒ²¿ÉÒÔÉèÖã¬ÕâÀïÔÝʱ²»ÐèÒª¡£

¸ù¾ÝÄã×Ô¼ºµÄÐèÒª£¬Äãclone¼¸Ì¨»úÆ÷¡£°´ÕÕĬÈϵķ½Ê½ÎÒÃÇ´ó¸ÅÔ¼¶¨Îª£¬192.168.0.10¡¢192.168.0.20¡¢192.168.0.30£¬ÕâÈý̨»úÆ÷½«×é³ÉÒ»¸öes·Ö²¼Ê½¼¯Èº¡£

3.ÅäÖÃ

¼¯ÈºµÄ¸÷¸ö½ÚµãÎÒÃÇÒѾ­×¼±¸ºÃÁË£¬ÎÒÃǽÓÏÂÀ´×¼±¸ÅäÖü¯Èº£¬ÈÃÕâÈý¸ö½Úµã¿ÉÒÔÁ¬½ÓÔÚÒ»Æð¡£ÕâÀïÉæ¼°µÄÅäÖñȽϼòµ¥£¬Ö»ÊÇÍê³É¼¯ÈºµÄÒ»¸ö»ù±¾³£Óù¦ÄÜ£¬ÈçÓÐÌØÊâµÄÐèÇó¿ÉÒÔ×ÔÐв鿴elasticsearch¹ÙÍø»òÕß°Ù¶È£¬Õâ·½ÃæµÄ×ÊÁÏÒѾ­ºÜ·á¸»ÁË¡£

ÕâÀïµÄһЩÅäÖÃÎÒÃÇÆäʵÒѾ­ÊÜÒæÓÚelasticsearch servicewrapper¼ò»¯Á˺ܶࡣ

´ÓÕâÀ↑ʼ£¬ÎÒÃǽ«¶ÔÈý̨»úÆ÷½øÐÐÅäÖã¬192.168.160.10¡¢192.168.160.20¡¢192.168.160.30¡£

3.1.elasticsearch.ymlÅäÖÃ

ÔÚelasticsearchµÄconfigĿ¼Ï¶¼ÊÇÅäÖÃÎļþ¡£µ¼º½µ½ cd /usr/share/elasticsearch/configĿ¼¡£

3.1.1.IP·ÃÎÊÏÞÖÆ¡¢Ä¬È϶˿ÚÐÞ¸Ä9200

ÕâÀïÓÐÁ½¸öÐèÒªÌáÐÑÏ£¬µÚÒ»¸ö¾ÍÊÇIP·ÃÎÊÏÞÖÆ£¬µÚ¶þ¸ö¾ÍÊÇesʵÀýµÄĬÈ϶˿ںÅ9200¡£IP·ÃÎÊÏÞÖÆ¿ÉÒÔÏÞ¶¨¾ßÌåµÄIP·ÃÎÊ·þÎñÆ÷£¬ÕâÓÐÒ»¶¨µÄ°²È«¹ýÂË×÷Óá£

# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0

Èç¹ûÉèÖóÉ0.0.0.0ÔòÊDz»ÏÞÖÆÈκÎIP·ÃÎÊ¡£Ò»°ãÔÚÉú²úµÄ·þÎñÆ÷¿ÉÄÜ»áÏÞ¶¨¼¸Ì¨IP£¬Í¨³£ÓÃÓÚ¹ÜÀíʹÓá£

ĬÈϵĶ˿Ú9200ÔÚÒ»°ãÇé¿öÏÂÒ²Óеã·çÏÕ£¬¿ÉÒÔ½«Ä¬ÈϵĶ˿ÚÐ޸ijÉÁíÍâÒ»¸ö£¬Õ⻹ÓÐÒ»¸öÔ­Òò¾ÍÊÇÅ¿ª·¢ÈËÔ±Îó²Ù×÷£¬Á¬½ÓÉϼ¯Èº¡£µ±È»£¬Èç¹ûÄãµÄ¹«Ë¾ÍøÂç¸ôÀë×öµÄºÜºÃÒ²ÎÞËùν¡£

#
# Set a custom port for HTTP:
#
http.port: 9200
transport.tcp.port: 9300

ÕâÀïµÄ9300ÊǼ¯ÈºÄÚ²¿Í¨Ñ¶Ê¹ÓõĶ˿ڣ¬Õâ¸öÒ²¿ÉÒÔÐ޸ĵô¡£ÒòΪÁ¬½Ó¼¯ÈºµÄ·½Ê½ÓÐÁ½ÖÖ£¬Í¨¹ý°çÑݼ¯ÈºnodeÒ²ÊÇ¿ÉÒÔ½øÈ뼯ȺµÄ£¬ËùÒÔ»¹Êǰ²È«Æð¼û£¬Ð޸ĵôĬÈϵĶ˿ڡ£

£¨±¸×¢£º¼ÇµÃÐÞ¸ÄÈý¸ö½ÚµãµÄÏàͬÅäÖã¬Òª²»È»½ÚµãÖ®¼äÎÞ·¨½¨Á¢Á¬½Ó¹¤×÷£¬Ò²»á±¨´í¡££©

3.1.2.¼¯Èº·¢ÏÖIPÁÐ±í¡¢node¡¢clusterÃû³Æ

½ô½Ó×ÅÐ޸ļ¯Èº½ÚµãIPµØÖ·£¬ÕâÑù¿ÉÒÔÈü¯ÈºÔڹ涨µÄ¼¸¸ö½ÚµãÖ®¼ä¹¤×÷¡£elasticsearch£¬Ä¬ÈÏÊÇʹÓÃ×Ô¶¯·¢ÏÖIP»úÖÆ¡£¾ÍÊÇÔÚµ±Ç°Íø¶ÎÄÚ£¬Ö»ÒªÄܱ»×Ô¶¯¸ÐÖªµ½µÄIP¾ÍÄÜ×Ô¶¯¼ÓÈëµ½¼¯ÈºÖС£ÕâÓкô¦Ò²Óлµ´¦¡£ºÃ´¦¾ÍÊÇ×Ô¶¯»¯ÁË£¬µ±ÄãµÄes¼¯ÈºÐèÒªÔÆ»¯µÄʱºò¾Í»á·Ç³£·½±ã¡£µ«ÊÇÒ²»á´øÀ´Ò»Ð©²»Îȶ¨µÄÇé¿ö£¬È磬masterµÄÑ¡¾ÙÎÊÌâ¡¢Êý¾Ý¸´ÖÆÎÊÌâ¡£

µ¼ÖÂmasterÑ¡¾ÙµÄÒòËØÖ®Ò»¾ÍÊǼ¯ÈºÓÐ½Úµã½øÈë¡£µ±Êý¾Ý¸´ÖÆ·¢ÉúµÄʱºòÒ²»áÓ°Ï켯Ⱥ£¬ÒòΪҪ×öÊý¾Ýƽºâ¸´ÖƺÍÈßÓà¡£ÕâÀïÃæ¿ÉÒÔ¶ÀÁ¢master¼¯Èº£¬ÌÞ³ýmaster¼¯ÈºµÄÊý¾Ý½ÚµãÄÜÁ¦¡£

¹Ì¶¨ÁбíµÄIP·¢ÏÖÓÐÁ½ÖÖÅäÖ÷½Ê½£¬Ò»ÖÖÊÇ»¥ÏàÒÀÀµ·¢ÏÖ£¬Ò»ÖÖÊÇÈ«Á¿·¢ÏÖ¡£¸÷ÓÐÓÅÊÆ°É£¬ÎÒÊÇʹÓõÄÒÀÀµ·¢ÏÖÀ´×öµÄ¡£ÕâÓиöºÜÖØÒªµÄ²Î¿¼±ê×¼£¬¾ÍÊÇÄãµÄ¼¯ÈºÀ©Õ¹ËÙ¶ÈÓжà¿ì¡£ÒòΪÕâÓиöÎÊÌâ¾ÍÊÇ£¬µ±È«Á¿·¢ÏÖµÄʱºò£¬Èç¹ûÊdzõʼ»¯¼¯Èº»áÓкܴóµÄÎÊÌ⣬¾ÍÊÇmasterÈ«¾Ö»áºÜ³¤£¬È»ºó½ÚµãÖ®¼äµÄÆô¶¯Ëٶȸ÷²»Ò»Ñù¡£ËùÒÔÎÒ²ÉÓÃÁË¿¿Æ×µãµÄÒÀÀµ·¢ÏÖ¡£

ÄãÐèÒªÔÚ192.168.0.20µÄelasticsearchÖÐÅäÖóɣº

# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.zen.ping.unicast.hosts: [ "192.168.0.10:9300" ]

ÈÃËûÈ¥·¢ÏÖ10µÄ»úÆ÷£¬ÒÔ´ËÄÚÍÆ£¬Íê³ÉʣϵÄ30µÄÅäÖá£

£¨±¸×¢£ºÍøÉÏÓкܶàÕë¶Ô²»Í¬³¡¾°µÄ·¢ÏÖÅäÖ㬴ó¼Ò¿ÉÒԾʹËÅ×שÒýÓñ£¬¶ÔÕâ¸öÖ÷Ìâ¸ÐÐËȤµÄ¿ÉÒ԰ٶȺܶà×ÊÁϵġ££©

È»ºóÄãÐèÒªÅäÖÃϼ¯ÈºÃû³Æ£¬¾ÍÊÇÄ㵱ǰ½ÚµãËùÔÚ¼¯ÈºµÄÃû³Æ£¬ÕâÓÐÖúÓÚÄã¹æ»®ÄãµÄ¼¯Èº¡£Ö»Óм¯ÈºÃû³ÆÒ»Ñù²ÅÄÜ×é³ÉÒ»¸öÂß¼­¼¯Èº¡£

# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: orderSearch_cluster
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: node-2

ÒÔ´ËÀàÍÆ£¬Íê³ÉÁíÍâÁ½¸ö½ÚµãµÄÅäÖá£cluster.nameµÄÃû³Æ±ØÐë±£³ÖÒ»Ñù¡£È»ºó·Ö±ðÉèÖÃnode.name¡£

3.1.3.master node Æô¶¯Çл»

ÕâÀïÓÐÒ»¸öССµÄ¾­Ñé·ÖÏíÏ£¬¾ÍÊÇÎÒÔÚʹÓü¯ÈºµÄʱºò£¬ÒòΪÎÒÊÇÐéÄ⻯³öÀ´µÄ»úÆ÷ËùÒÔ¾­³£»á¹Ø±ÕºÍÖØÆô¼¯Èº¡£ÓÐʱºò·¢ÏÖ¼¯ÈºmasterÐû¾Æ»áÓÐÒ»¸öÎÊÌâ¾ÍÊÇ£¬Èç¹ûÄãµÄ¼¯Èº¹Ø±ÕµÄ·½Ê½²»¶Ô£¬»áÖ±½ÓÓ°ÏìϸömasterÑ¡¾ÙµÄÂß¼­¡£

ÎÒ²éÁËÏÂÑ¡¾ÙµÄ´ó¸ÅÂß¼­£¬Ëü»á¸ù¾Ý·ÖƬµÄÊý¾ÝµÄǰºóÐÂÏʳ̶ÈÀ´×÷Ϊѡ¾ÙµÄÒ»¸öÖØÒªÂß¼­¡££¨ÈÕÖ¾¡¢Êý¾Ý¡¢Ê±¼ä¶¼»á×÷Ϊ¼¯ÈºmasterÈ«¾ÖµÄÖØÒªÖ¸±ê£©

ÒòΪ¿¼Âǵ½Êý¾ÝÒ»ÖÂÐÔÎÊÌ⣬µ±È»ÊÇÓÃ×îеÄÊý¾Ý½Úµã×÷Ϊmaster£¬È»ºó½øÐÐÐÂÊý¾ÝµÄ¸´ÖƺÍË¢ÐÂÆäËûnode¡£

Èç¹ûÄã·¢ÏÖÓÐÒ»¸ö½Úµã³Ù³Ù½ø²»Á˼¯Èº£¬¿ÉÒÔ³¢ÊÔÖØÆôÏÂes·þÎñ£¬Èü¯ÈºmasterÖØÐÂÈ«¾Ö¡£

3.2.linux ´ò¿ª×î´óÎļþÊýÉèÖã¨ÓÃ×÷indexʱºòµÄϵͳ·§Öµ£©

ÔÚlinuxϵͳÖУ¬ÒªÏëʹÓÃ×î´ó»¯µÄϵͳ×ÊÔ´ÐèÒªÏò²Ù×÷ϵͳȥÉêÇë¡£ÓÉÓÚelasticsearchÐèÒªÔÚindexµÄʱºòÓõ½´óÁ¿µÄÎļþ¾ä±ú×ÊÔ´£¬ÔÚÔ­À´linuxĬÈϵÄ×ÊÔ´Ï¿ÉÄܻ᲻¹»Óá£ËùÒÔÕâÀï¾ÍÐèÒªÎÒÃÇÔÚʹÓõÄʱºòÊÂÏÈÉèÖúá£

Õâ¸öÅäÖÃÔÚ¡¶ElasticSearch ¿ÉÀ©Õ¹µÄ¿ªÔ´µ¯ÐÔËÑË÷½â¾ö·½°¸¡·Ò»ÊéÖÐ×÷ÎªÖØµãÅäÖýéÉÜ£¬¿ÉÏë¶øÖª»¹ÊÇÓв»ÉÙÈ˲ȵ½¹ýµÄ¿Ó¡£

Õâ¸öÅäÖÃÔÚelasticsearch service wrapperÖаïÎÒÃÇÅäÖúÃÁË¡£

vim /etc/init.d/elasticsearch

Õâ¸öÅäÖûᱻÆô¶¯µÄʱºòÉèÖõ½esʵÀýÖÐÈ¥¡£

Õâ¸öʱºòÊÔ×ÅÖØÆôÈý̨»úÆ÷µÄesʵÀý£¬¿´Äܲ»ÄÜÔÚ_plugin/headÖв鿴µ½Èý̨»úÆ÷µÄ¼¯Èº×´Ì¬¡££¨¼ÇµÃ·ÃÎʰ²×°ÁËhead²å¼þµÄÄÇ̨»úÆ÷£¬ÎÒÕâÀïÊÇÔÚ10»úÆ÷Éϰ²×°µÄ£©

ºìÉ«µÄ¾ÍÊÇÄãÉèÖõÄnode.name½ÚµãÃû³Æ£¬ËûÃÇÔÚÒ»¸ö¼¯ÈºÀ﹤×÷¡£

3.3.°²×°ÖÐÎÄ·Ö´ÊÆ÷ik£¨×¢Òâ¶ÔÓ¦°æ±¾ÎÊÌ⣩

´Ëʱ¼¯ÈºÓ¦¸Ã¿ÉÒÔ¹¤×÷ÁË£¬ÎÒÃÇ»¹ÐèÒªÅäÖÃÖÐÎÄ·Ö´ÊÆ÷£¬±Ï¾¹ÎÒÃÇʹÓõÄÖÐÎÄ£¬elasticsearchµÄ×Ô´øµÄ·Ö´ÊÆ÷¶ÔÖÐÎÄ·Ö´ÊÖ§³ÖµÄ²»Ì«Êʺϱ¾ÍÁ¡£

ÎÒÊÇʹÓõÄik·Ö´ÊÆ÷£¬ÔÚgithubÉϵĵØÖ·£º https://github.com/medcl/elasticsearch-analysis-ik

Ïȱ𼱵Äclone£¬ÎÒÃÇÏÈÀ´¿´ÏÂik·Ö´ÊÆ÷ËùÖ§³ÖµÄelasticsearch¶ÔÓ¦µÄ°æ±¾¡£

ÎÒÃÇʹÓõÄelasticsearch°æ±¾Îª2.3.4¡£ËùÒÔÎÒÃÇÒªÕÒ¶ÔÓ¦µÄik°æ±¾£¬Òª²»È»Æô¶¯µÄʱºò¾ÍÖ±½Ó±¨¼ÓÔØ²»Á˶ÔÓ¦°æ±¾µÄik²å¼þ¡£Çл»µ½release°æ±¾ÁÐ±í£¬ÕÒµ½¶ÔÓ¦µÄ°æ±¾È»ºóÏÂÔØÏÂÀ´¡£

Äã¿ÉÒÔÖ±½ÓÏÂÔØµ½Linux»úÆ÷ÉÏ£¬Ò²¿ÉÒÔÏÂÔØµ½ÄãµÄËÞÖ÷»úÆ÷ÉÏÈ»ºó¸´ÖƵ½ÐéÄâ»úÉÏ¡£Èç¹ûÄãµÄelasticsearch°æ±¾ÊÇ×îеģ¬Äã¿ÉÄܾÍÐèÒªÏÂÔØikÔ´ÂëÏÂÀ´±àÒëÖ®ºóÔÙ²¿Êð¡£

µ±È»Äã¿ÉÒÔʹÓÃgit+mavenµÄ·½Ê½°²×°£¬ÏêϸµÄ°²×°²½Öè¿ÉÒԲμû£º https://github.com/medcl/elasticsearch-analysis-ik

ÕâÒ²±È½Ï¼òµ¥£¬ÎÒÕâÀï¾Í²»Öظ´ÁË¡£°²×°ºÃÖ®ºóÖØÆôesʵÀý¡£

3.4.elasticsearch¼¯Èº¹æ»®£¨master¾¡Á¿²»Òª×÷Ϊdata½Úµã£¬¶ÀÁ¢masterΪcommander£©

¿ÉÒÔÕâÑù¹æ»®Ò»¸ö¼¯Èº¡£master¿ÉÒÔÁ½Ì¨£¬ÕâÁ½¸ö½Úµã¶¼ÊÇ×÷Ϊcommanderͳ³ï¼¯Èº²ãÃæµÄÊÂÎñ£¬È¡ÏûÕâÁ½Ì¨µÄdataȨÀû¡£È»ºóÔڹ滮³öÈý¸ö½ÚµãµÄdata¼¯Èº£¬È¡ÏûÕâÈý¸ö½ÚµãµÄmasterȨÀû¡£ÈÃËûÃǰ²ÐĵÄ×öºÃÊý¾Ý´æ´¢ºÍ¼ìË÷·þÎñ¡£ÕâÊÇ×îСµÄÁ£¶È¼¯Èº½á¹¹£¬¿ÉÒÔ»ùÓÚÕâ¸ö½á¹¹½øÐÐÀ©Õ¹¡£

ÕâÑù×öÓÐÒ»¸öºÃ´¦£¬¾ÍÊÇÖ°Ôð·ÖÃ÷£¬¿ÉÒÔ×î´óÏ޶ȵķÀÖ¹master½ÚµãÓÐÊÂdata½Úµã£¬µ¼Ö²»Îȶ¨ÒòËØ·¢Éú¡£±ÈÈ磬data½ÚµãµÄÊý¾Ý¸´ÖÆ£¬Êý¾Ýƽºâ£¬Â·Óɵȵȣ¬Ö±½ÓÓ°ÏìmasterµÄÎȶ¨ÐÔ¡£½ø¶ø¿ÉÄܻᷢÉúÄÔÁÑÎÊÌâ¡£

4.¿ª·¢

ÎÒÃǽøÈë×îºóÒ»¸ö»·½Ú£¬ËùÓеĶ«Î÷¶¼×¼±¸ºÃÁË£¬ÎÒÃÇÊDz»ÊÇÓ¦¸Ã²Ù×÷²Ù×÷Õâ¸öÇ¿´óµÄËÑË÷ÒýÇæÁË¡£come on¡£

4.1.½ÓÈ뼯Ⱥ·½Ê½

˵µ½¼¯Èº£¬¾Í»áÓÐÏàÓ¦µÄÎÊÌâËæÖ®¶øÀ´£¬¸ß¿ÉÓᢸ߲¢·¢¡¢´óÊý¾Ý¡¢ºáÏòÀ©Õ¹µÈµÈ¡£ÄÇôelasticsearhµÄ¼¯Èº´ó¸ÅÊǸöʲôԭÀí¡£

Ê×ÏÈclientµÄÔÚ½ÓÈ뼯ȺµÄʱºòΪÁ˱£Ö¤¸ß¿ÉÓò»ÊDzÉÓà vipÆ¯ÒÆÊµÏָ߿ÉÓã¬ÀàËÆkeepalived ÕâÖÖ¡£elasticserachÔÚ¿Í»§¶ËÁ¬½ÓµÄʱºòʹÓÃÅäÖöà¸öIPµÄ·½Ê½À´Ê×Ïȿͻ§¶ËsdkµÄ¸ºÔØ¡£ÕâÒѾ­ÊÇ·Ö²¼Ê½ÏµÍ³³£¼ûµÄ×ö·¨ÁË¡£Ö»ÓÐÀàËÆDB¡¢cacheÕâÑùÖÐÐÄ»¯µÄ¼¯ÈºÐèҪʹÓã¬ÒÔΪÊÇËüÃǵÄʹÓÃÌØµã¾ö¶¨ÁË¡££¨Êý¾ÝÒ»ÖÂÐÔ£©

elasticsearchµÄËùÓнڵ㶼¿ÉÒÔ´¦ÀíÇëÇ󣬽ڵãÔ½¶à²¢·¢QPSÔ½¸ß£¬ÏàÓ¦µÄTPS»áϽµ£¬µ«ÊÇϽµµÄÐÔÄܲ»ÊǸù¾Ý½ÚµãµÄÕý±ÈÀýÀ´µÄ¡££¨ËüʹÓÃquorum£¨·¨¶¨ÈËÊý£©Ëã·¨£¬±£Ö¤¿ÉÓÃÐÔ¡££©ËùÒÔ½ÚµãµÄ¸´ÖƲ»ÊÇÎÒÃÇÏ뵱ȻµÄÄÇÑù¡£

Á¬½Óes¼¯ÈºµÄ·½Ê½ÓÐÁ½ÖÖ£¬ÐÔÄܸߵãµÄ¾ÍÊÇÖ±½Ó½«client°çÑݳÉcluster node½øÈ¥¼¯Èº£¬Í¬Ê±È¡Ïû×Ô¼ºµÄdataȨÀû¡£Õâͨ³£¶¼ÊÇÓÃÀ´×ö¶þ´Î¿ª·¢Óõģ¬Äã¿ÉÒÔgithub cloneÏÂÀ´Ô´ÂëÌí¼Ó×Ô¼ºµÄ³¡¾°È»ºó½øÈ뼯Ⱥ£¬¿ÉÄÜÄã»á¸ÉԤѡ¾Ù£¬Ò²¿ÉÄÜ»á¸ÉÔ¤sharding£¬Ò²¿ÉÄÜ»á¸ÉÔ¤¼¯ÈºÆ½ºâ¡£

elasticsearch ʹÓÃ×Ô¼º¶¨ÒåµÄÒ»Ì×DSLÓïÑÔ£¬Ê¹ÓÃrestful·½Ê½Ê¹Ó㬸ù¾Ý²»Í¬µÄrest end pointÀ´Ê¹ÓᣱÈÈ磬_search¡¢_cat¡¢_queryµÈµÈ¡£ÕâЩ¶¼ÊÇÖ¸µãµÄrest¶Ëµã¡£È»ºóÄã¿ÉÒÔpost dslµ½elasticsearch·þÎñÆ÷´¦Àí¡£

elasticsearch search dsl£º https://www.elastic.co/guide/en/elasticsearch /reference/current/search.html

elasticsearch dsl api£º http://elasticsearch-dsl. readthedocs.io/en/latest/

Àý£º

POST _search
{
"query": {
"bool" : {
"must" : {
"query_string" : {
"query" : "query some test"
}
},
"filter" : {
"term" : { "user" : "plen" }
}
}
}
}

¿É¶ÁÐÔºÜÇ¿£¬ÔÚͨ¹ýchrome²å¼þSense¸¨Öú±àд£¬»á±È½Ï·½±ã¡£

µ«ÊÇÒ»°ã¶¼²»»áÕâô×ö£¬Ò»°ã¶¼ÊÇʹÓÃsdkÁ¬½Ó¼¯Èº¡£Ö±½ÓʹÓÃdslµÄ´ó¶àÊÇÔÚ²âÊÔÊý¾ÝµÄʱºò»òÕßÔÚµ÷ÊÔµÄʱºò¡£¿´sdkÊä³öµÄdslÊÇ·ñÕýÈ·¡£¾Í¸úµ÷ÊÔSQL²î²»¶à¡£

4.1.1.net nestʹÓã¨Ê¹ÓÃpoolÁ¬½Óes¼¯Èº£©

.NET³ÌÐòÓпªÔ´°ünest£¬Ö±½ÓÔÚNugetÉÏËÑË÷°²×°¼´¿É¡£

¹ÙÍøµØÖ·£º https://www.elastic.co/guide/en/ elasticsearch/client/net-api/1.x/ nest-connecting.html

ʹÓÃpool¸ß¿ÉÓõķ½Ê½Á¬½Ó¼¯Èº¡£

var node1 = new Uri("http://192.168.0.10:9200");
var node2 = new Uri("http://192.168.0.20:9200");
var node3 = new Uri("http://192.168.0.30:9200");
var connectionPool = new SniffingConnectionPool(new[] { node1, node2, node3 });
var settings = new ConnectionSettings(connectionPool);
var client = new ElasticClient(settings);

´ËʱʹÓÃclient¶ÔÏó¾ÍÊÇÈí¸ºÔØµÄ£¬Ëü»á¸ù¾ÝÒ»¶¨µÄ²ßÂÔÀ´¾ùºâµÄÁ¬½Óºǫ́Èý¸önode¡££¨¿ÉÄÜÊÇÆ½¾ùµÄ¡¢¿ÉÄÜÊÇÈ¨ÖØµÄ£¬¾ßÌåûÑо¿£©

4.1.2.java jestʹÓÃ

java µÄ»°ÎÒÊÇʹÓÃjest¡£ÎÒÃÇ´´½¨Ò»¸ömavenÏîÄ¿£¬È»ºóÌí¼Ójest ÏàÓ¦µÄjar°ümavenÒýÓá£

<dependencies>
<dependency>
<groupId>io.searchbox</groupId>
<artifactId>jest</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.3.5</version>
</dependency>
</dependencies>

JestClientFactory factory = new JestClientFactory();
List<String> nodes = new LinkedList<String>();
nodes.add("http://192.168.0.10:9200");
nodes.add("http://192.168.0.20:9200");
nodes.add("http://192.168.0.30:9200");
HttpClientConfig config = new HttpClientConfig.Builder(nodes).multiThreaded(true).build();
factory.setHttpClientConfig(config);
JestHttpClient client = (JestHttpClient) factory.getObject();
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.queryStringQuery("ÖлªÈËÃû¹²ºÍ¹ú"));
searchSourceBuilder.field("name");
Search search = new Search.Builder(searchSourceBuilder.toString()).build();
JestResult rs = client.execute(search);
System.out.println(rs.getJsonString());

{
"took": 71,
"timed_out": false,
"_shards": {
"total": 45,
"successful": 45,
"failed": 0
},
"hits": {
"total": 6,
"max_score": 0.6614378,
"hits": [
{
"_index": "posts",
"_type": "post",
"_id": "1",
"_score": 0.6614378,
"fields": {
"name": [
"ÍõÇåÅà"
]
}
},
{
"_index": "posts",
"_type": "post",
"_id": "5",
"_score": 0.57875806,
"fields": {
"name": [
"ÍõÇåÅà"
]
}
},
{
"_index": "posts",
"_type": "post",
"_id": "2",
"_score": 0.57875806,
"fields": {
"name": [
"ÍõÇåÅà"
]
}
},
{
"_index": "posts",
"_type": "post",
"_id": "AVaKENIckgl39nrAi9V5",
"_score": 0.57875806,
"fields": {
"name": [
"ÍõÇåÅà"
]
}
},
{
"_index": "class",
"_type": "student",
"_id": "1",
"_score": 0.17759356
},
{
"_index": "posts",
"_type": "post",
"_id": "3",
"_score": 0.17759356,
"fields": {
"name": [
"ÍõÇåÅà"
]
}
}
]
}
}

·µ»ØµÄÊý¾Ýºá¿ç¶à¸öË÷Òý¡£Äã¿ÉÒÔͨ¹ý²»¶ÏµÄdebugÀ´²é¿´Á´½ÓIPÊDz»ÊÇ»áÆô¶¯Çл»£¬ÊDz»ÊÇ»áÆðµ½¿ÉÓÃÐÔµÄ×÷Óá£

4.2.index¿ª·¢

Ë÷Òý¿ª·¢Ò»°ã²½Öè±È½Ï¼òµ¥£¬Ê×ÏȽ¨Á¢¶ÔÓ¦µÄmappingÓ³É䣬ÅäÖúø÷¸ötypeÖеÄfieldµÄÌØÐÔ¡£

4.2.1.mapping ÅäÖÃ

mappingÊÇesʵÀýÓÃÀ´ÔÚindexµÄʱºò£¬×÷Ϊ¸÷¸ö×ֶεIJÙ×÷ÒÀ¾Ý¡£±ÈÈ磬username£¬Õâ¸ö×Ö¶ÎÊÇ·ñÒªË÷Òý¡¢ÊÇ·ñÒª´æ´¢¡¢³¤¶È´óСµÈµÈ¡£ËäÈ»elasticsearch¿ÉÒÔ¶¯Ì¬µÄ´¦ÀíÕâЩ£¬µ«ÊdzöÓÚ¹ÜÀíºÍÔËάµÄÄ¿µÄ»¹Êǽ¨Ò齨Á¢¶ÔÓ¦µÄË÷ÒýÓ³É䣬Õâ¸öÓ³Éä¿ÉÒÔ±£´æÔÚÎļþÀÒԱ㽫À´Öؽ¨Ë÷ÒýÓá£

POST /demoindex
{
"mappings": {
"demotype": {
"properties": {
"contents": {
"type": "string",
"index": "analyzed"
},
"name": {
"store": true,
"type": "string",
"index": "analyzed"
},
"id": {
"store": true,
"type": "long"
},
"userId": {
"store": true,
"type": "long"
}
}
}
}
}

ÕâÊÇÒ»¸ö×î¼òµ¥µÄmapping£¬¶¨ÒåÁËË÷ÒýÃû³ÆÎªdemoindex£¬ÀàÐÍΪdemotypeµÄmapping¡£¸÷¸ö×ֶηֱðÊÇÒ»¸öjson¶ÔÏó£¬ÀïÃæÓÐÀàÐÍÓÐË÷ÒýÊÇ·ñÐèÒª¡£

Õâ¸öÔÚsenseÀï±à¼­£¬È»ºóÖ±½ÓpostÌá½»¡£

{
"acknowledged": true
}

ͨ¹ý²é¿´´´½¨ºÃµÄË÷ÒýÐÅϢȷÈÏÊÇ·ñÊÇÄãÌá½»µÄmappingÉèÖá£

4.2.2.mapping templateÅäÖÃ

ÿ´Î¶¼Í¨¹ýÊÖ¶¯µÄ´´½¨ÀàËÆµÄmappingʼÖÕÊǸöµÍЧÂʵÄÊÂÇ飬elasticserachÖ§³Ö½¨Á¢mappingÄ£°å£¬È»ºóÈÃÄ£°å×Ô¶¯Æ¥ÅäʹÓÃÄĸömapping¶¨Òå¡£

PUT log_template
{
"order": 10,
"template": "log_*",
"settings": {
"index": {
"number_of_replicas": "2",
"number_of_shards": "5"
}
},
"mappings": {
"_default_": {
"_source_": {
"enable": false
}
}
}
}

´´½¨Ò»¸ölogÀàÐ͵ÄË÷Òýmapping¡£ÎÒÃÇÉèÖÃÁËÁ½¸ö»ù±¾µÄÊôÐÔ£¬ "number_of_replicas": "2" ¸´ÖÆ·ÖÊý, "number_of_shards": "5" ·ÖƬ¸öÊý¡£mappingsÀïÃæÉèÖÃÁËsource×Ö¶ÎĬÈϲ»¿ªÆô¡£

µ±ÎÒÃÇÌá½»ËùÓÐÒÔ¡°log_xxx¡±Ãû×Ö¸ñʽµÄË÷Òýʱ½«×Ô¶¯ÃüÖÐÕâ¸ömappingÄ£°å¡£

¿ÉÒÔͨ¹ý_template rest¶Ëµã²é¿´ÒѾ­´æÔÚµÄmappingÄ£°å£¬»òÕßͨ¹ýhead²å¼þµÄÓÒÉϽǵġ±ÐÅÏ¢¡±ÀïÃæµÄ¡±Ä£°å¡±²Ëµ¥²é¿´¡£

{
"mq_template" : {
"order" : 10,
"template" : "mq*",
"settings" : {
"index" : {
"number_of_shards" : "5",
"number_of_replicas" : "2"
}
},
"mappings" : {
"_default_" : {
"_source_" : {
"enable" : false
}
}
},
"aliases" : { }
},
"log_template" : {
"order" : 10,
"template" : "log_*",
"settings" : {
"index" : {
"number_of_shards" : "5",
"number_of_replicas" : "2"
}
},
"mappings" : {
"_default_" : {
"_source_" : {
"enable" : false
}
}
},
"aliases" : { }
},
"error_template" : {
"order" : 10,
"template" : "error_*",
"settings" : {
"index" : {
"number_of_shards" : "5",
"number_of_replicas" : "2"
}
},
"mappings" : {
"_default_" : {
"_source_" : {
"enable" : false
}
}
},
"aliases" : { }
}
}

Õâͨ³£ÓÃÓÚһЩҵÎñ²»Ïë¹ØµÄ´æ´¢ÖУ¬±ÈÈçÈÕÖ¾¡¢ÏûÏ¢¡¢ÖØ´ó´íÎóÔ¤¾¯µÈµÈ¶¼¿ÉÒÔÉèÖã¬Ö»ÒªÕâÐ©ÖØ¸´µÄmappingÊÇÓйæÂɵġ£

4.2.3.index routingË÷Òý·ÓÉÅäÖÃ

ÔÚes¶ÔÊý¾Ý½øÐÐ·ÖÆ¬µÄʱºòÊDzÉÓÃhashÈ¡ÓàµÄ·½Ê½½øÐеģ¬ËùÒÔÄã¿ÉÒÔ´«µÝÒ»¸ö¹Ì¶¨µÄkey£¬ÄÇôÕâ¸ökey½«×÷ΪÄã¹Ì¶¨µÄ·ÓɹæÔò¡£ÔÚ´´½¨mappingsµÄʱºò¿ÉÒÔÉèÖÃÕâ¸ö_routing²ÎÊý¡£ÕâÔÚ1.0µÄ°æ±¾ÖÐÊÇÕâÑùµÄÉèÖõģ¬Ò²¾ÍÊÇ˵Ä㵱ǰtypeϵÄËùÓÐdocument¶¼ÊÇÖ»ÄÜÓÃ×ÅÕâ¸ö·ÓÉkey½øÐС£µ«ÊÇÔÚes2.0Ö®ºórouting¸ú×ÅindexÔªÊý¾Ý×ߣ¬ÕâÑù¿ÉÒÔ¿ØÖƵ¥¸öindexµÄ·ÓɹæÔò£¬ÔÚÌá½»indexµÄʱºò¿ÉÒÔµ¥¶ÀÖÆ¶¨_routing²ÎÊý£¬¶ø²»ÊÇÖ±½ÓÉèÖÃmappingsÉÏ¡£

ÔÚ2.0Ö®ºóÒѾ­²»ÔÙÖ§³ÖmappingsÅäÖÃ_routing²ÎÊýÁË¡£

https://www.elastic.co/guide/ en/elasticsearch/reference/ current/breaking_20_mapping_changes. html#migration-meta-fields

ÔÚ1.0À±ÈÈ磬Äã¿ÉÒÔ½«userid×÷Ϊrouting key£¬ÕâÑù¾Í¿ÉÒÔ½«µ±Ç°Óû§µÄËùÓÐÊý¾Ý¶¼ÔÚÒ»¸ö·ÖƬÉÏ£¬µ±²éѯµÄʱºò¾Í»á¼Ó¿ì²éѯËÙ¶È¡£

{
"mappings": {
"post": {
"_routing": {
"required": true,
"path":"userid"
},
"properties": {
"contents": {
"type": "string"
},
"name": {
"store": true,
"type": "string"
},
"id": {
"store": true,
"type": "long"
},
"userId": {
"store": true,
"type": "long"
}
}
}
}
}

Õâ¸ö_routingÊÇÉèÖÃÔÚmappingÉϵģ¬×÷ÓÃÓÚËùÓÐtype¡£»áʹÓÃuserid×÷ΪshardingµÄkey¡£µ«ÊÇÔÚ2.0ÀÊDZØÐëÃ÷È·Ö¸¶¨routing pathµÄ¡£

ÔÚÄãÌí¼ÓºÃmappingsÖ®ºó£¬´´½¨µ±Ç°Ë÷ÒýµÄʱºò±ØÐëÖ¸¶¨&routing=xxx£¬²ÎÊý¡£ÕâÓиöºÜ´óµÄºÃ´¦¾ÍÊÇÄã¿ÉÒÔ¸ù¾Ý²»Í¬µÄÒµÎñά¶È×ÔÓɵ÷Õû·ÖƬ²ßÂÔ¡£

5.×ܽá

ÊëÄÜÉúÇÉ£¬·Ö²¼Ê½µÄ¶«Î÷»¹ÊÇÓкܶà±È½ÏÌØÊâºÍÌôÕ½µÄµØ·½£¬ÓÈÆäÊÇËûµÄ·Ö²¼ÐÔ£¬Í¬Ê±»¹Òª½â¾öºÜ¶àÒ»ÖÂÐÔÎÊÌâ¡¢¿ÉÓÃÐÔÎÊÌâµÈµÈ¡£ÎÒ¶ÔelasticsearchµÄʹÓÃÒ²Ö»ÊǸö¼òµ¥µÄƤë¶øÒÑ£¬ËüµÄ·Ö²¼Ê½ÌØÐÔÉîÉîµÄÎüÒýÁËÎÒ£¬ÆÚ´ýÏÂÆªÎÄÕ¸ü¼ÓÉîÈëµÄ·ÖÏí¡£±ÈÈ磬routingµÄÄÚ²¿Ô­Àí£¬¸´ÖÆÆ½ºâËã·¨µÈµÈ¡£ÕâÆªÎÄÕÂÊÇÎÒ¶ÔelasticsearchʹÓõÄÒ»¸ö¼òµ¥µÄ×ܽᣬϣÍûÄܶԸ÷벩ÓÑÓеã°ïÖú£¬Ð»Ð»ÔĶÁ£¬Ð»Ð»Ö§³Ö¡£

²Î¿¼Êé¼®¡¶ElasticSearch ¿ÉÀ©Õ¹µÄ¿ªÔ´µ¯ÐÔËÑË÷½â¾ö·½°¸¡·¡¢¡¶ElastcSearchȨÍþÖ¸ÄÏ¡·¡£

   
2992 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ