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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½È«ÎļìË÷ϵͳSolrCloud¼ò½é
 
À´Ô´£ºÀ´×ÔÍøÂç ·¢²¼ÓÚ 2016-7-18
  3270  次浏览      29
 

ǰÑÔ

±¾Îļòµ¥ÃèÊöSolrCloudµÄÌØÐÔ£¬»ù±¾½á¹¹ºÍÈëÃÅ£¬»ùÓÚSolr4.5°æ±¾¡£

LuceneÊÇÒ»¸öJavaÓïÑÔ±àдµÄÀûÓõ¹ÅÅÔ­ÀíʵÏÖµÄÎı¾¼ìË÷Àà¿â¡£SolrÊÇÒÔLuceneΪ»ù´¡ÊµÏÖµÄÎı¾¼ìË÷Ó¦Ó÷þÎñ¡£

SolrCloudÊÇSolr4.0°æ±¾¿ª·¢³öµÄ¾ßÓпª´´ÒâÒåµÄ»ùÓÚSolrºÍZookeeperµÄ·Ö²¼Ê½ËÑË÷·½°¸£¬»òÕß¿ÉÒÔ˵£¬SolrCloudÊÇSolrµÄÒ»ÖÖ²¿Êð·½Ê½¡£Solr¿ÉÒÔÒÔ¶àÖÖ·½Ê½²¿Êð£¬ÀýÈçµ¥»ú·½Ê½£¬¶à»úMaster-Slaver·½Ê½£¬ÕâЩ·½Ê½²¿ÊðµÄSolr²»¾ßÓÐSolrCloudµÄÌØÉ«¹¦ÄÜ¡£

ÌØÉ«

SolrCloudÓм¸¸öÌØÉ«¹¦ÄÜ£º

1¡¢¼¯ÖÐʽµÄÅäÖÃÐÅÏ¢

ʹÓÃZK½øÐм¯ÖÐÅäÖá£Æô¶¯Ê±¿ÉÒÔÖ¸¶¨°ÑSolrµÄÏà¹ØÅäÖÃÎļþÉÏ´«Zookeeper£¬¶à»úÆ÷¹²Óá£ÕâЩZKÖеÄÅäÖò»»áÔÙÄõ½±¾µØ»º´æ£¬SolrÖ±½Ó¶ÁÈ¡ZKÖеÄÅäÖÃÐÅÏ¢¡£ÅäÖÃÎļþµÄ±ä¶¯£¬ËùÓлúÆ÷¶¼¿ÉÒÔ¸ÐÖªµ½¡£

ÁíÍ⣬SolrµÄһЩÈÎÎñÒ²ÊÇͨ¹ýZK×÷Ϊý½é·¢²¼µÄ¡£Ä¿µÄÊÇΪÁËÈÝ´í¡£½ÓÊÕµ½ÈÎÎñ£¬µ«ÔÚÖ´ÐÐÈÎÎñʱ±ÀÀ£µÄ»úÆ÷£¬ÔÚÖØÆôºó£¬»òÕß¼¯ÈºÑ¡³öºòÑ¡Õßʱ£¬¿ÉÒÔÔÙ´ÎÖ´ÐÐÕâ¸öδÍê³ÉµÄÈÎÎñ¡£

2¡¢×Ô¶¯ÈÝ´í

SolrCloud¶ÔË÷Òý·ÖƬ£¬²¢¶Ôÿ¸ö·ÖƬ´´½¨¶à¸öReplication¡£Ã¿¸öReplication¶¼¿ÉÒÔ¶ÔÍâÌṩ·þÎñ¡£Ò»¸öReplication¹Òµô²»»áÓ°ÏìË÷Òý·þÎñ¡£

¸üÇ¿´óµÄÊÇ£¬Ëü»¹ÄÜ×Ô¶¯µÄÔÚÆäËü»úÆ÷ÉϰïÄã°Ñʧ°Ü»úÆ÷ÉϵÄË÷ÒýReplicationÖØ½¨²¢Í¶ÈëʹÓá£

3¡¢½üʵʱËÑË÷

Á¢¼´ÍÆËÍʽµÄreplication£¨Ò²Ö§³ÖÂýÍÆËÍ£©¡£¿ÉÒÔÔÚÃëÄÚ¼ìË÷µ½Ð¼ÓÈëË÷Òý¡£

4¡¢²éѯʱ×Ô¶¯¸ºÔؾùºâ

SolrCloudË÷ÒýµÄ¶à¸öReplication¿ÉÒÔ·Ö²¼ÔÚ¶ą̀»úÆ÷ÉÏ£¬¾ùºâ²éѯѹÁ¦¡£Èç¹û²éѯѹÁ¦´ó£¬¿ÉÒÔͨ¹ýÀ©Õ¹»úÆ÷£¬Ôö¼ÓReplicationÀ´¼õ»º¡£

5¡¢×Ô¶¯·Ö·¢µÄË÷ÒýºÍË÷Òý·ÖƬ

·¢ËÍÎĵµµ½Èκνڵ㣬Ëü¶¼»áת·¢µ½ÕýÈ·½Úµã¡£

6¡¢ÊÂÎñÈÕÖ¾

ÊÂÎñÈÕ־ȷ±£¸üÐÂÎÞ¶ªÊ§£¬¼´Ê¹ÎĵµÃ»ÓÐË÷Òýµ½´ÅÅÌ¡£

ÆäËüÖµµÃÒ»ÌáµÄ¹¦ÄÜÓУº

1¡¢Ë÷Òý´æ´¢ÔÚHDFSÉÏ

Ë÷ÒýµÄ´óСͨ³£ÔÚGºÍ¼¸Ê®G£¬ÉϰÙGµÄºÜÉÙ£¬ÕâÑùµÄ¹¦ÄÜ»òÐíºÜÄÑʵÓᣵ«ÊÇ£¬Èç¹ûÄãÓÐÉÏÒÚÊý¾ÝÀ´½¨Ë÷ÒýµÄ»°£¬Ò²ÊÇ¿ÉÒÔ¿¼ÂÇһϵġ£ÎÒ¾õµÃÕâ¸ö¹¦ÄÜ×î´óµÄºÃ´¦»òÐí¾ÍÊǺÍÏÂÃæÕâ¸ö¡°Í¨¹ýMRÅúÁ¿´´½¨Ë÷Òý¡±ÁªºÏʵÓá£

2¡¢Í¨¹ýMRÅúÁ¿´´½¨Ë÷Òý

ÓÐÁËÕâ¸ö¹¦ÄÜ£¬Ä㻹µ£ÐÄ´´½¨Ë÷ÒýÂýÂð£¿

3¡¢Ç¿´óµÄRESTful API

ͨ³£ÄãÄÜÏëµ½µÄ¹ÜÀí¹¦ÄÜ£¬¶¼¿ÉÒÔͨ¹ý´ËAPI·½Ê½µ÷Óá£ÕâÑùдһЩά»¤ºÍ¹ÜÀí½Å±¾¾Í·½±ã¶àÁË¡£

4¡¢ÓÅÐãµÄ¹ÜÀí½çÃæ

Ö÷ÒªÐÅϢһĿÁËÈ»£»¿ÉÒÔÇåÎúµÄÒÔͼÐλ¯·½Ê½¿´µ½SolrCloudµÄ²¿Êð·Ö²¼£»µ±È»»¹Óв»¿É»òȱµÄDebug¹¦ÄÜ¡£

¸ÅÄî

Collection£ºÔÚSolrCloud¼¯ÈºÖÐÂß¼­ÒâÒåÉϵÄÍêÕûµÄË÷Òý¡£Ëü³£³£±»»®·ÖΪһ¸ö»ò¶à¸öShard£¬ËüÃÇʹÓÃÏàͬµÄConfig Set¡£Èç¹ûShardÊý³¬¹ýÒ»¸ö£¬Ëü¾ÍÊÇ·Ö²¼Ê½Ë÷Òý£¬SolrCloudÈÃÄãͨ¹ýCollectionÃû³ÆÒýÓÃËü£¬¶ø²»ÐèÒª¹ØÐÄ·Ö²¼Ê½¼ìË÷ʱÐèҪʹÓõĺÍShardÏà¹Ø²ÎÊý¡£

Config Set: Solr CoreÌṩ·þÎñ±ØÐëµÄÒ»×éÅäÖÃÎļþ¡£Ã¿¸öconfig setÓÐÒ»¸öÃû×Ö¡£×îСÐèÒª°üÀ¨solrconfig.xml (SolrConfigXml)ºÍschema.xml (SchemaXml)£¬³ý´ËÖ®Í⣬ÒÀ¾ÝÕâÁ½¸öÎļþµÄÅäÖÃÄÚÈÝ£¬¿ÉÄÜ»¹ÐèÒª°üº¬ÆäËüÎļþ¡£Ëü´æ´¢ÔÚZookeeperÖС£Config sets¿ÉÒÔÖØÐÂÉÏ´«»òÕßʹÓÃupconfigÃüÁî¸üУ¬Ê¹ÓÃSolrµÄÆô¶¯²ÎÊýbootstrap_confdirÖ¸¶¨¿ÉÒÔ³õʼ»¯»ò¸üÐÂËü¡£

Core: Ò²¾ÍÊÇSolr Core£¬Ò»¸öSolrÖаüº¬Ò»¸ö»òÕß¶à¸öSolr Core£¬Ã¿¸öSolr Core¿ÉÒÔ¶ÀÁ¢ÌṩË÷ÒýºÍ²éѯ¹¦ÄÜ£¬Ã¿¸öSolr Core¶ÔÓ¦Ò»¸öË÷Òý»òÕßCollectionµÄShard£¬Solr CoreµÄÌá³öÊÇΪÁËÔö¼Ó¹ÜÀíÁé»îÐԺ͹²ÓÃ×ÊÔ´¡£ÔÚSolrCloudÖÐÓиö²»Í¬µãÊÇËüʹÓõÄÅäÖÃÊÇÔÚZookeeperÖе쬴«Í³µÄSolr coreµÄÅäÖÃÎļþÊÇÔÚ´ÅÅÌÉϵÄÅäÖÃĿ¼ÖС£

Leader: Ó®µÃÑ¡¾ÙµÄShard replicas¡£Ã¿¸öShardÓжà¸öReplicas£¬Õ⼸¸öReplicasÐèҪѡ¾ÙÀ´È·¶¨Ò»¸öLeader¡£Ñ¡¾Ù¿ÉÒÔ·¢ÉúÔÚÈκÎʱ¼ä£¬µ«ÊÇͨ³£ËûÃǽöÔÚij¸öSolrʵÀý·¢Éú¹ÊÕÏʱ²Å»á´¥·¢¡£µ±Ë÷Òýdocumentsʱ£¬SolrCloud»á´«µÝËüÃǵ½´ËShard¶ÔÓ¦µÄleader£¬leaderÔÙ·Ö·¢ËüÃǵ½È«²¿ShardµÄreplicas¡£

Replica: ShardµÄÒ»¸ö¿½±´¡£Ã¿¸öReplica´æÔÚÓÚSolrµÄÒ»¸öCoreÖС£Ò»¸öÃüÃûΪ¡°test¡±µÄcollectionÒÔnumShards=1´´½¨£¬²¢ÇÒÖ¸¶¨replicationFactorÉèÖÃΪ2£¬Õâ»á²úÉú2¸öreplicas£¬Ò²¾ÍÊǶÔÓ¦»áÓÐ2¸öCore£¬Ã¿¸öÔÚ²»Í¬µÄ»úÆ÷»òÕßSolrʵÀý¡£Ò»¸ö»á±»ÃüÃûΪtest_shard1_replica1£¬ÁíÒ»¸öÃüÃûΪtest_shard1_replica2¡£ËüÃÇÖеÄÒ»¸ö»á±»Ñ¡¾ÙΪLeader¡£

Shard: CollectionµÄÂß¼­·ÖƬ¡£Ã¿¸öShard±»»¯³ÉÒ»¸ö»òÕß¶à¸öreplicas£¬Í¨¹ýÑ¡¾ÙÈ·¶¨ÄĸöÊÇLeader¡£

Zookeeper: ZookeeperÌṩ·Ö²¼Ê½Ëø¹¦ÄÜ£¬¶ÔSolrCloudÊDZØÐëµÄ¡£Ëü´¦ÀíLeaderÑ¡¾Ù¡£Solr¿ÉÒÔÒÔÄÚǶµÄZookeeperÔËÐУ¬µ«Êǽ¨ÒéÓöÀÁ¢µÄ£¬²¢ÇÒ×îºÃÓÐ3¸öÒÔÉϵÄÖ÷»ú¡£

¼Ü¹¹

Ë÷Òý£¨collection£©µÄÂß¼­Í¼

Ë÷ÒýºÍSolrʵÌå¶ÔÕÕͼ

´´½¨Ë÷Òý¹ý³Ì

¼ìË÷¹ý³Ì

Shard Splitting

ÈëÃÅ

°²×°ÅäÖÃ

ǰÌᣬÄãÐèÒªÏȰ²×°ºÃJava£¬6.0+¡£ ¼ÙÉèÎÒÃÇÓÐ5̨»úÆ÷Òª°²×°Solr¡£

1.°²×°Íⲿzookeeper

SolrĬÈÏÊÇÓÃÄÚÖõÄZookeeper£¬ÎªÁË·½±ã¹ÜÀíºÍά»¤£¬½¨ÒéʹÓÃÍⲿZookeeper¡£

wget http://apache.dataguru.cn/zookeeper/zookeeper-3.4.3/zookeeper-3.4.3.tar.gz
tar -zxvf zookeeper-3.4.3.tar.gz
JavaµÄ³ÌÐò½âѹºó¾Í¿ÉÒÔÔËÐУ¬²»ÐèÒª°²×°¡£
Ð޸ĻòÕß´´½¨ÅäÖÃÎļþ$ZOOKEEPER_HOME/conf/zoo.cfg£¬ÄÚÈÝÈçÏ£º
# ×¢ÒâÐÞ¸ÄΪÄãµÄÕæÊµÂ·¾¶
dataDir=/home/hadoop/zookeeper-3.4.3/data
clientPort=2181
# ±àºÅ´Ó1¿ªÊ¼£¬solr1-3ÿ¸öÊÇһ̨Ö÷»ú£¬¹²3¸ö
server.1=solr1:2888:3888
server.2=solr2:2888:3888
server.3=solr3:2888:3888

ÔÚ3̨»úÆ÷É϶¼Í¬Ñù°²×°¡£

ÁíÍ⣬»¹ÐèÒªÔÚ$dataDirÖÐÅäÖÃmyid£¬zookeeperÊÇÒÔ´ËÎļþÈ·¶¨±¾»úÉí·Ý¡£

# ×¢Òâÿ̨»úÆ÷ÉϵIJ»Ò»Ñù

echo "1" > myid #ÔÚsolr1ÉÏ
echo "2" > myid #ÔÚsolr2ÉÏ
echo "3" > myid #ÔÚsolr3ÉÏ

Æô¶¯£¬ ÐèÒªÔÚ3̨»úÆ÷ÉÏ·Ö±ðÆô¶¯

$ZOOKEEPER_HOME/bin/zkServer.sh start
# ²é¿´×´Ì¬£¬È·ÈÏÆô¶¯³É¹¦
$ZOOKEEPER_HOME/bin/zkServer.sh status

2.Solr°²×°ÏÂÔØ

ÔÚ5̨»úÉÏ×öͬÑù²Ù×÷

wget http://apache.mirrors.pair.com/lucene/solr/4.5.0/solr-4.5.0.tgz
tar -xzf solr-4.5.0.tgz
cd solr-4.5.0
cp -r example node1
cdo node1 # µÚÒ»Ìõsolr»úÆ÷
java -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName =myconf -DnumShards=2 -DzkHost=solr1:2181,solr2:2181,solr3:2181 -jar start.jar
# ÆäËüsolr»úÆ÷
java -DzkHost=solr1:2181,solr2:2181,solr3:2181 -jar start.jar

Æô¶¯³É¹¦ºó£¬Äã¿ÉÒÔͨ¹ýä¯ÀÀÆ÷8983¿´µ½solrµÄWebÒ³Ãæ¡£

3.Ë÷Òý

cd $SOLR_HOME/node1/exampledocs
java -Durl=http://solr1:8983/solr/collection1/update -jar post.jar ipod_video.x

4.¼ìË÷

Äã¿ÉÒÔÔÚweb½çÃæÑ¡¶¨Ò»¸öCore£¬È»ºó²éѯ¡£solrÓвéѯÓï·¨Îĵµ¡£

5.Èç¹ûÒªÏë°ÑÊý¾Ýдµ½HDFS

ÔÚ$SOLR_HOME/node1/solr/collection1/conf/solrconfig.xml Ôö¼Ó

<directoryFactory name="DirectoryFactory" class="solr.HdfsDirectoryFactory">
<str name="solr.hdfs.home">hdfs://mycluster/solr</str>
<bool name="solr.hdfs.blockcache.enabled">true</bool>
<int name="solr.hdfs.blockcache.slab.count">1</int>
<bool name="solr.hdfs.blockcache.direct.memory.allocation">true</bool>
<int name="solr.hdfs.blockcache.blocksperbank">16384</int>
<bool name="solr.hdfs.blockcache.read.enabled">true</bool>
<bool name="solr.hdfs.blockcache.write.enabled">true</bool>
<bool name="solr.hdfs.nrtcachingdirectory.enable">true</bool>
<int name="solr.hdfs.nrtcachingdirectory.maxmergesizemb">16</int>
<int name="solr.hdfs.nrtcachingdirectory.maxcachedmb">192</int>
<str name="solr.hdfs.confdir">${user.home}/local/hadoop/etc/hadoop</int>
</directoryFactory>

ÖØÐÂÆô¶¯

java -Dsolr.directoryFactory=HdfsDirectoryFactory -Dsolr.lock.type =hdfs -Dsolr.data.dir=hdfs://mycluster/solr -Dsolr.updatelog=hdfs://mycluster/solrlog -jar start.jar

¿ÉÒÔÔö¼ÓÈçϲÎÊýÉ趨ֱ½ÓÄÚ´æ´óС£¬ÓÅ»¯Hdfs¶ÁдËÙ¶È¡£

XX:MaxDirectMemorySize=1g

ÆäËü

NRT ½üʵʱËÑË÷

SolrµÄ½¨Ë÷ÒýÊý¾ÝÊÇÒªÔÚÌύʱдÈë´ÅÅ̵ģ¬ÕâÊÇÓ²Ìá½»£¬È·±£¼´±ãÊÇÍ£µçÒ²²»»á¶ªÊ§Êý¾Ý£»ÎªÁËÌṩ¸üʵʱµÄ¼ìË÷ÄÜÁ¦£¬SolrÉ趨ÁËÒ»ÖÖÈíÌá½»·½Ê½¡£

ÈíÌá½»£¨soft commit£©£º½ö°ÑÊý¾ÝÌá½»µ½Äڴ棬index¿É¼û£¬´ËʱûÓÐдÈëµ½´ÅÅÌË÷ÒýÎļþÖС£

Ò»¸öͨ³£µÄÓ÷¨ÊÇ£ºÃ¿1-10·ÖÖÓ×Ô¶¯´¥·¢Ó²Ìá½»£¬Ã¿ÃëÖÓ×Ô¶¯´¥·¢ÈíÌá½»¡£

RealTime Get ʵʱ»ñÈ¡

ÔÊÐíͨ¹ýΨһ¼ü²éÕÒÈκÎÎĵµµÄ×îа汾Êý¾Ý£¬²¢ÇÒ²»ÐèÒªÖØÐ´ò¿ªsearcher¡£Õâ¸öÖ÷ÒªÓÃÓÚ°ÑSolr×÷ΪNoSQLÊý¾Ý´æ´¢·þÎñ£¬¶ø²»½ö½öÊÇËÑË÷ÒýÇæ¡£

Realtime Getµ±Ç°ÒÀÀµÊÂÎñÈÕÖ¾£¬Ä¬ÈÏÊÇ¿ªÆôµÄ¡£ÁíÍ⣬¼´±ãÊÇSoft Commit»òÕßcommitwithin£¬getÒ²Äܵõ½ÕæÊµÊý¾Ý¡£ ×¢£ºcommitwithinÊÇÒ»ÖÖÊý¾ÝÌá½»ÌØÐÔ£¬²»ÊÇÁ¢¿Ì£¬¶øÊÇÒªÇóÔÚÒ»¶¨Ê±¼äÄÚÌá½»Êý¾Ý¡£

   
3270 ´Îä¯ÀÀ       29
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS
Ïà¹ØÅàѵ¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
ÔÆ¼ÆËãÓëWindows AzureÅàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ