热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Solr4.10.1+tomcat7+zookeeper+HDFS集成(SolrCloud+HDFS)配置

关于搭建solrCloud+zookeeper+HDFS的实践经验搭建zookeeper:1、到zookeeper官网下载zookeeper(用于管理s

关于搭建solrCloud + zookeeper +HDFS的实践经验

 

 

搭建zookeeper

1、        zookeeper官网下载zookeeper(用于管理solrcloud云的配置文件)http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/

2、        准备三台服务器,或者搭建3台虚拟机:                                                 例如:host3.com   192.168.2.87    

Host5.com   192.168.2.89

Host4.com   192.168.2.94

3、        上传zookeeper-3.4.6.tar.gz到任意一台服务器/usr/local/目录,并解压到当前目录:zookeeper tar –zxvf zookeeper-3.4.6.tar.gz                            改名:zookeeper-3.4.6 zookeepermv  zookeeper-3.4.6   zookeeper

4、        zookeeper目录下建立data logs目录,同时将zookeeper目录下conf/zoo_simple.cfg文件复制一份成 zoo.cfg

5、        修改zoo.cfg  

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can passbetween

# sending a request and getting anacknowledgement

syncLimit=5

# the directory where the snapshot isstored.

# do not use /tmp for storage, /tmp hereis just

# example sakes.

dataDir=/usr/local/zookeeper/data

# the port at which the clients willconnect

clientPort=2181

# the maximum number of clientconnections.

# increase this if you need to handle moreclients

#maxClientCnxns=60

#

# Be sure to read the maintenance sectionof the

# administrator guide before turning onautopurge.

#

#http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain indataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable autopurge feature

#autopurge.purgeInterval=1

dataLogDir=/usr/local/zookeeper/logs

server.1=192.168.2.89:2888:3888

server.2=192.168.3.87:2888:3888

server.3=192.168.3.94:2888:3888

 

6、    拷贝zookeeper目录到另外两台服务器:                                                                    

  

scp-r /usr/local/zookeeper root@192.168.2.87:/usr/local/

scp–r /usr/local/zookeeper root@192.168.2.89:/usr/local/

 

分别在几台服务器的data目录下建立myid  ip对应相应的server.*   server.1 myid内容为1  server.2myid内容为server.3myid 3  

7、        启动ZooKeeper集群,在每个节点上分别启动ZooKeeper服务:

cd/usr/local/zookeeper/

bin/zkServer.sh  start

8、  可以查看ZooKeeper集群的状态,保证集群启动没有问题:分别查看每台服务器的zookeeper状态 zookeeper#bin/zkServer.shstatus查看那些是following那个是leader

Eg:  

[root@host4zookeeper-3.3.6]# bin/zkServer.sh status

JMXenabled by default

Usingconfig: /home/hadoop/zookeeper-3.3.6/bin/../conf/zoo.cfg

Mode:follower

[root@host5/]# cd /home/hadoop/zookeeper-3.3.6/

[root@host5zookeeper-3.3.6]# bin/zkServer.sh status

JMXenabled by default

Usingconfig: /home/hadoop/zookeeper-3.3.6/bin/../conf/zoo.cfg

Mode:leader



[root@host3multicore]# cd /home/hadoop/zookeeper-3.3.6/

[root@host3zookeeper-3.3.6]# bin/zkServer.sh status

JMXenabled by default

Usingconfig: /home/hadoop/zookeeper-3.3.6/bin/../conf/zoo.cfg

Mode:follower

 

建立SolrCloud

1、        Apache官网下载solr安装文件 solr-4.10.1.tgz    http://mirror.bit.edu.cn/apache/lucene/solr/4.10.1/                            并解压tar –xvzf solr-4.10.1.tgz                                                         更改solr-4.10.1目录:mv solr-4.10.1 solr

2、         创建在根目录下创建目录mkdir –p /data0/solrcloud    solr目录移动到data0下,那么data0下包含两个目录{solrsolrcloud}

3、        /data0/solr/example/webapps/solr.war放到tomcatwebapps目录下,启动tomcat,这是tomcat下多出solr目录

4、        /data0/solr/example/lib/ext/下的所有的jar文件复制到tomcat/webapps/solr/WEB-INF/lib/下,建立mkdir –p /data0/solrcloud/{multicoresolr-lib}目录,在将tomcat/webapps/solr/WEB-INF/lib/* 复制一份到solr-lib/ 

cp  /usr/local/tomcat/webapps/solr/WEB-INF/lib/*  /data0/solrcloud/solr-lib/

 

 

 

5、        在建立一个装在配置文件的目录

 

mkdir–p  /data0/solrcloud/multicore/collection/{conf,data}  

 

同时将 /data0/solr/ example/solr/collection1/conf/* 

复制到/data0/solrcloud/multicore/collection/conf目录下

 

example/solr/multicore下的solr.xmlzoo.cfg复制到/data0/solrcloud/multicore目录下 eg

 

 

Collection目录:

 

 Data-config.xml文件是数据导入的配置文件查看:

 

http://blog.csdn.net/john_hongming/article/details/40181451

 

需要自己建立的 solrcore.properties文件

文件内容:

solr.shard.data.dir=/data0/solrcloud/multicore/collection/data

说明:属性solr.shard.data.dirsolrconfig.xml文件中被引用过,指定索引数据的存放位置。

 

Solr.xml文件的说明:

 

 

 

6、        通过zookeeper管理配置文件:

#zookeeper上传配置文件 #

java-classpath .:/data0/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmdupconfig -zkhost host3.com:2181,host4.com:2181,host5.com:2181 -confdir/data0/solrcloud/multicore/collection/conf -confname myconf

#zookeeper连接多个节点#

java-classpath .:/data0/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmdlinkconfig -collection collection1 -confname myconf -zkhosthost3.com:2181,host4.com:2181,host5.com:2181

 

7、        在启动文件tomcat/bin/Catalina.sh中添加如下配置:

#配置tomcat/bin/catlina.sh下的启动参数#

JAVA_OPTS="-server -Xmx2048m-Xms1024m -verbose:gc -Xloggc:solr_gc.log -Dsolr.solr.home=/data0/solrcloud/multicore

-DzkHost=host3.com:2181,host4.com:2181,host5.com:2181"

 

8、        修改tomcat/webapps/solr/WEB-INF/web.xml

context.xml

      





WEB-INF/web.xml







web.xml


solr/home
/data0/solrcloud/multicore
java.lang.String

 


       solr/home
/data0/solrcloud/multicore
java.lang.String


 

9、        SolrcloudIK分词器的配置:

首先在solrcloud中的multicore/collection/下建立lib目录,将IK分词器的配置文件最主要的就是IKAnalyzer.cfg.xml stopword.dic移动到lib

之后修改multicore/collection/conf下的schema.xml文件

添加:

name="ikanalyzer"class="solr.TextField">

type="index"isMaxWordLength="false"class="org.wltea.analyzer.lucene.IKAnalyzer"/>

type="query"isMaxWordLength="true"class="org.wltea.analyzer.lucene.IKAnalyzer"/>

type="multiterm">

class="solr.KeywordTokenizerFactory"/>

Field会根据type的属性进行分词

至此,IKAnalyzer中文分词基本添加完成,更新下zookeepersolr配置:

java -classpath .:/usr/local/solrcloud/solr-lib/*org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 192.168.3.119:2181,192.168.3.111:2181,192.168.3.127:2181 -confdir/usr/local/solrcloud/multicore/collection/conf -confname myconf

 

如果要添加扩展词典:

在tomcat/webapps/solr/WEB-INF/下建立classes目录将要添加的词典和配置文件都放在该目录下

 

 

 

编辑IKAnalyzer.cfg.xml 添加词典

如下图:

10、     将配置好的data0目录 scp到另外两个服务器:

scp –r /data0 root@192.168.2.89:/

scp –r /data0root@192.168.2.87:/



scp –r /usr/local/tomcat root@192.168.2.89:/usr/local/

scp –r /usr/local/tomcat root@192.168.2.87:/usr/local/

启动三台服务器bin/startup.sh start

 

11、     创建collectionshard

 

#创建collection3一个副本集#

#创建三个分片,每个分片一个副本集#

curl 'http://192.168.2.89:8080/solr/admin/collections?action=CREATE&name=mycollection&numShards=3&replicatiOnFactor=1'    

 #创建shard的副本 89创建shard1的副本集mycollection_shard1_replica_2#

curl'http://192.168.2.89:8080/solr/admin/cores?action=CREATE&collection=mycollection&name=mycollection_shard1_replica_2&shard=shard1'

curl'http://192.168.2.87:8080/solr/admin/cores?action=CREATE&collection=mycollection&name=mycollection_shard1_replica_3&shard=shard1'

curl'http://192.168.2.89:8080/solr/admin/cores?action=CREATE&collection=mycollection&name=mycollection_shard2_replica_2&shard=shard2'

curl'http://192.168.2.87:8080/solr/admin/cores?action=CREATE&collection=mycollection&name=mycollection_shard2_replica_3&shard=shard2'

#shard1再次在94shard #

curl'http://192.168.2.94:8080/solr/admin/collections?action=SPLITSHARD&collection=mycollection&shard=shard1'

 

 

 

 

 

 

 

1、         编辑/usr/local/tomcat/bin/catlina.sh 添加红色部分

 

JAVA_OPTS="-server-Xmx2048m -Xms1024m -verbose:gc -Xloggc:solr_gc.log -XX:MaxDirectMemorySize=1g -Dsolr.directoryFactory=HdfsDirectoryFactory-Dsolr.lock.type=hdfs -Dsolr.hdfs.home=hdfs://host1xyz.com:9000/solr -Dsolr.solr.home=/data0/solrcloud/multicore-DzkHost=host3.com:2181,host4.com:2181,host5.com:2181"


2、        修改/data0/solrcloud/multicore/collection/conf/solrconfig.xml文件

添加这部分:

    
   hdfs://host1xyz.com:9000/solr  
   true   1   true   16384   true   true   true   16   192    /home/hadoop/hadoop-2.2.0/etc/hadoop   


 

再找到

${solr.lock.type:native}将其修改为${solr.lock.type:hdfs}

 

注意:这时${solr.data.dir:}是这种状态,如果添加路径,就会覆盖掉hdfs的路径

 

参考:

https://cwiki.apache.org/confluence/display/solr/Running+Solr+on+HDFS

http://shiyanjun.cn/archives/100.html

http://blog.csdn.net/shirdrn/article/details/9770829

http://blog.csdn.net/john_hongming/article/details/40113641

http://blog.csdn.net/john_hongming/article/details/40080947


推荐阅读
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
author-avatar
小龙2602902913
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有