久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    SolrCloud+tomcat7+zookeeper集群配置及使用

     小丑g22xft6chp 2016-07-20

    solrCloud的主要功能:

    主要功能包括強大的全文搜索,點擊顯示,面搜索,動態聚類,數據庫集成,豐富的文件(如Word,PDF)處理,和空間搜索,而且他具有高度的可擴展性,提供容錯的分布式搜索和索引。

             1)集中式的配置信息
    
             2)自動容錯
    
             3)近實時搜索
    
             4)查詢時自動負載均衡

    圖1. Collection大致結構圖
    osjp-vertx-fig1-thumb-100159570-orig

        1、下載https://zookeeper./ 
        2、下載http://lucene./solr/
        3、下載http://tomcat./

    下面我就開始學習之旅:

    首先復制三個tomcat例如:
    tomcat-server_1  端口:8080  
    tomcat-server_2  端口:8090  
    tomcat-server_3  端口:8100  
    

    一、在分別復制solr-4.7.0下面的example/webapps的solr.war解壓復制到tomcat-server_1、tomcat-server_2、tomcat-server_3的webapp下面為solr,分別創建三個文件夾分別為solr_home_1、solr_home_2、solr_home_3作為存放solr的數據。將solr-4.7.0下面example/solr/分別復制到solr_home_1、solr_home_2、solr_home_3下面。
    圖2:
    osjp-vertx-fig1-thumb-100159570-orig

    二、分別修改solr_home_1、solr_home_2、solr_home_3下面的solr.xml。

        <solr>
                <solrcloud>
                <str name="host">${host:}</str>
                <int name="hostPort">${jetty.port:8080}</int>//端口分別對應tomcat的端口
                <str name="hostContext">${hostContext:solr}</str>
                <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
                <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
                </solrcloud>
              <shardHandlerFactory name="shardHandlerFactory"
                class="HttpShardHandlerFactory">
              <int name="socketTimeout">${socketTimeout:0}</int>
              <int name="connTimeout">${connTimeout:0}</int>
              </shardHandlerFactory>
        </solr>
        其他solr.xml同理。

    三、分別進入tomcat-server_1、tomcat-server_2、tomcat-server_3 下面的webapp下面的solr,然后去改WEB-INF下的web.xml,分別為下面的清單:

            <env-entry>
                   <env-entry-name>solr/home</env-entry-name>
                   <env-entry-value>D:/solrCloud/solr_home_1</env-entry-value>//定義solr索引所存的地址
                   <env-entry-type>java.lang.String</env-entry-type>
            </env-entry>
    
            <env-entry>
                   <env-entry-name>solr/home</env-entry-name>
                   <env-entry-value>D:/solrCloud/solr_home_2</env-entry-value>//定義solr索引所存的地址
                   <env-entry-type>java.lang.String</env-entry-type>
            </env-entry>   
    
            <env-entry>
                   <env-entry-name>solr/home</env-entry-name>
                   <env-entry-value>D:/solrCloud/solr_home_3</env-entry-value>//定義solr索引所存的地址
                   <env-entry-type>java.lang.String</env-entry-type>
            </env-entry>  

    四、分別在tomcat-server_1、tomcat-server_2、tomcat-server_3的bin下面的catalina.bat的添加

        set java_opts=-Dsolr.home=d:/solrCloud/solr_home_1 -Dbootstrap_confdir=D:/solrCloud/solr_home_1/collection1/conf -Dcollection.configName=myconf -DnumShards=2 -DzkHost=127.0.0.1:2181
        set JAVA_OPTS=-Dsolr.home=d:/solrCloud/solr_home_2 -DzkHost=127.0.0.1:2181
        set JAVA_OPTS=-Dsolr.home=d:/solrCloud/solr_home_3 -DzkHost=127.0.0.1:2181

    五、復制三個zoo例如:

            zk-server_1  端口:2181
            zk-server_2  端口:2182
            zk-server_3  端口:2183
            在zk-server_1、zk-server_2、zk-server_3下面分別建立兩個文件夾為data和logs用來存儲數據和日志。
            分別再data目錄下面創建myid,里面分別寫1、2、3。
            配置D:\solrCloud\zk-server_1\conf\zoo.cfg如下:
            dataDir=D:/solrCloud/zk-server_1/data
            dataLogDir=D:/solrCloud/zk-server_1/logs
            clientPort=2181
            server.1=127.0.0.1:2888:3888
            server.2=127.0.0.1:2889:3889
            server.3=127.0.0.1:2890:3890
            其他兩個配置如同上面配置。

    圖3:
    osjp-vertx-fig1-thumb-100159570-orig

    下面我們啟動zk_server1、zk_server2、zk_server3.如下圖:
    

    圖4:
    osjp-vertx-fig1-thumb-100159570-orig
    啟動時,第一個報錯是因為找不到其他兩個zk,才會報錯。這都是不要緊的,三個啟動好了就不會報錯了。

    下面我們在啟動tomcat-server_1、tomcat-server_2、tomcat-server_3。

    圖5:
    osjp-vertx-fig1-thumb-100159570-orig
    圖6:

    osjp-vertx-fig1-thumb-100159570-orig

    創建

    http://127.0.0.1:8080/solr/admin/collections?action=CREATE&name=collection1&numShards=3&replicationFactor=2&maxShardsPerNode=2&collection.configName=myconf
    

    重新加載接口

    http://127.0.0.1:8080/solr/admin/collections?action=RELOAD&name=collection1
    

    刪除

    http://127.0.0.1:8080s/solr/admin/collections?action=DELETE&name=collection1
    



    清單1. SolrCloud.java

        import java.io.IOException;
        import java.util.ArrayList;
        import java.util.Collection;
        import java.util.Map;
        import org.apache.solr.client.solrj.SolrQuery;
        import org.apache.solr.client.solrj.SolrServer;
        import org.apache.solr.client.solrj.SolrServerException;
        import org.apache.solr.client.solrj.impl.CloudSolrServer;
        import org.apache.solr.client.solrj.response.QueryResponse;
        import org.apache.solr.common.SolrDocument;
        import org.apache.solr.common.SolrDocumentList;
        import org.apache.solr.common.SolrInputDocument;
        public class SolrCloud {
                private static CloudSolrServer cloudSolrServer;
                private static synchronized CloudSolrServer getCloudSolrServer(final String zkHost) {
                if (cloudSolrServer == null) {
                    try {
                            cloudSolrServer = new CloudSolrServer(zkHost);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                }
    
            return cloudSolrServer;
        }
        //添加索引
        private void addIndex(SolrServer solrServer) {
            try {
                SolrInputDocument doc1 = new SolrInputDocument();
                doc1.addField("id", "421245251215121452521251");
                doc1.addField("title", "張三");
                SolrInputDocument doc2 = new SolrInputDocument();
                doc2.addField("id", "4224558524254245848524243");
                doc2.addField("title", "李四");
    
                SolrInputDocument doc3 = new SolrInputDocument();
                doc3.addField("id", "4543543458643541324153453");
                doc3.addField("title", "王五");
    
                Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
                docs.add(doc1);
                docs.add(doc2);
                docs.add(doc3);
    
                solrServer.add(docs);
                solrServer.commit();
    
            } catch (SolrServerException e) {
                System.out.println("Add docs Exception !!!");
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                System.out.println("Unknowned Exception!!!!!");
                e.printStackTrace();
            }
    
        }
       // 搜索
        public void search(SolrServer solrServer, String String) {
            SolrQuery query = new SolrQuery();
            query.setQuery(String);
            try {
                QueryResponse response = solrServer.query(query);
                SolrDocumentList docs = response.getResults();
                for (SolrDocument doc : docs) {
                    for (Map.Entry<String, Object> entry : doc) {
                        System.out.println(entry.getKey()+"="+entry.getValue());
                    } 
                }
            } catch (SolrServerException e) {
                e.printStackTrace();
            } catch (Exception e) {
                System.out.println("Unknowned Exception!!!!");
                e.printStackTrace();
            }
        }
        //刪除
        public void deleteAllIndex(SolrServer solrServer) {
            try {
                solrServer.deleteByQuery("*:*");// delete everything!
                solrServer.commit();
            } catch (SolrServerException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                System.out.println("Unknowned Exception !!!!");
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args) {
            final String zkHost = "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183";
            final String defaultCollection = "collection1";
            final int zkClientTimeout = 20000;
            final int zkConnectTimeout = 1000;
    
            CloudSolrServer cloudSolrServer = getCloudSolrServer(zkHost);
            System.out.println("The Cloud SolrServer Instance has benn created!");
            cloudSolrServer.setDefaultCollection(defaultCollection);
            cloudSolrServer.setZkClientTimeout(zkClientTimeout);
            cloudSolrServer.setZkConnectTimeout(zkConnectTimeout);
            cloudSolrServer.connect();
            System.out.println("The cloud Server has been connected !!!!");
            SolrCloud test = new SolrCloud();
             test.addIndex(cloudSolrServer);
             test.search(cloudSolrServer, "id:*");
             test.deleteAllIndex(cloudSolrServer);
             test.search(cloudSolrServer, "id:*");
             System.out.println("hashCode"+test.hashCode());
             cloudSolrServer.shutdown();
        }
    }

    相關閱讀

    使用Vert.x構建Web服務器和消息系統

    RABBITMQ在分布式系統的應用


    作者信息
    作者系力譜宿云 LeapCloud 團隊_云服務研發成員:JinYang Zhang【原創】
    首發地址:https://blog./archives/977

    歡迎關注微信訂閱號:從移動到云端

    歡迎加入我們的力譜宿云 LeapCloud 活動QQ群:555973817,我們將不定期做技術分享活動。
    若有轉載需要,請轉發時注意自帶作者信息一欄并本自媒體公號:力譜宿云 LeapCloud,尊重原創作者的勞動成果~ 謝謝配合~

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 国产娱乐凹凸视觉盛宴在线视频| 亚洲AV美女在线播放啊| 亚洲综合无码明星蕉在线视频| 精品国产午夜福利在线观看| 在线看片免费人成视频电影| 宾馆人妻4P互换视频| H无码动漫在线观看| 欧美高清狂热视频60一70| 日本中文字幕亚洲乱码| 亚洲中文字幕一区二区| 亚洲精品无码成人AV电影网| 亚洲av成人一区在线| 国内精品久久久久久久影视| 亚洲一区二区精品动漫| 一本一本久久AA综合精品| 最新国产精品好看的精品| 饥渴的少妇2中文字幕| 国产亚洲精品VA片在线播放| 欧美又粗又大XXXXBBBB疯狂| 野外做受三级视频| 国产老妇伦国产熟女老妇高清 | 重口SM一区二区三区视频| 日韩欧美群交P内射捆绑| 国产精品普通话国语对白露脸| 婷婷综合久久中文字幕蜜桃三电影| 麻豆国产传媒精品视频| 日日摸夜夜添夜夜添高潮喷水 | AV最新高清无码专区| 欧美大bbbb流白水| 人人妻人人添人人爽欧美一区| 成人爽A毛片免费视频| 免费无码黄网站在线观看| 一二三四在线视频观看社区| 日韩精品亚洲专在线电影| 奇米四色7777中文字幕| 无码人妻精品一区二区三区下载| 高清破外女出血AV毛片| 肉大捧一进一出免费视频| 午夜精品一区二区三区在线观看| 国产午夜成人无码免费看| 99国精品午夜福利视频不卡99|