准备两台服务器,目录结构如下

主机名 IP地址 tomcat安装路径 zookeeper安装路径 solr安装路径 java安装路径
sht-sgmhadoopnn-01 172.16.101.55 /usr/local/apache-tomcat-6.0.36 /usr/local/contentplatform/zookeeper /usr/local/contentplatform/solr/solr /usr/java/jdk1.6.0_45
sht-sgmhadoopnn-02 172.16.101.56 /usr/local/apache-tomcat-6.0.36 /usr/local/contentplatform/zookeeper /usr/local/contentplatform/solr/solr /usr/java/jdk1.6.0_45

软件准备

jdk

http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin

zookeeper

http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

tomcat

http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.36/bin/apache-tomcat-6.0.36.tar.gz

solr

https://archive.apache.org/dist/lucene/solr/4.4.0/solr-4.4.0.tgz

1.jdk安装

$ echo $JAVA_HOME
/usr/java/jdk1..0_45

2. zookeeper安装

$ wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
$ tar -zxf zookeeper-3.4..tar.gz
$ cd zookeeper-3.4.
$ mkdir data
$ echo > data/myid
$ cd conf
$ cp zoo_sample.cfg zoo.cfg
$ cat zoo.cfg
tickTime=
initLimit=
syncLimit=
dataDir=/usr/local/contentplatform/zookeeper-3.4./data
clientPort=
server.=sht-sgmhadoopnn-::
server.=sht-sgmhadoopnn-::

将zookeeper目录复制到sht-sgmhadoopnn-02上并将myid值修改为2

$ rsync -az --progress /usr/local/contentplatform/zookeeper-3.4. tnuser@sht-sgmhadoopnn-:/usr/local/contentplatform/

分别启动两个节点的zookeeper

$ /usr/local/contentplatform/zookeeper-3.4./bin/zkServer.sh start

查看两节点的zookeeper角色

$ /usr/local/contentplatform/zookeeper-3.4./bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/contentplatform/zookeeper-3.4./bin/../conf/zoo.cfg
Mode: follower
$ /usr/local/contentplatform/zookeeper-3.4./bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/contentplatform/zookeeper-3.4./bin/../conf/zoo.cfg
Mode: leader

3.solr安装

$ wget https://archive.apache.org/dist/lucene/solr/4.4.0/solr-4.4.0.tgz
$ tar -zxf solr-4.4..tgz
$ mkdir solr
$ cp -r solr-4.4./example/* solr/

复制solr目录solr到sht-sgmhadoopnn-02上

$ rsync -az --progress /usr/local/contentplatform/solr tnuser@sht-sgmhadoopnn-:/usr/local/contentplatform/

4. tomcat安装

$ wget http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.36/bin/apache-tomcat-6.0.36.tar.gz
$ tar -zxf apache-tomcat-6.0..tar.gz

5. 配置solr与tomcat

tomcat配置文件catalina.sh,添加zookeeper交互

JAVA_HOME=/usr/java/jdk1..0_45
JAVA_OPTS="$JAVA_OPTS -Xms1000M -Xmx1000M -Duser.language=en -Dsolr.solr.home=/usr/local/contentplatform/solr/solr -DhostContext=solr -Dbootstrap_conf=true -Dhostport=8983 -DzkHost=sht-sgmhadoopnn-01:9983,sht-sgmhadoopnn-01:9983 -DnumShards=2"
echo "Java Options: $JAVA_OPTS"

tomcat配置文件server.xml,修改solr访问端口

    <Connector port="8983" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

将solr的war包复制到tomcat目录

$ unzip /usr/local/contentplatform/solr/webapps/solr.war -d /usr/local/apache-tomcat-6.0./webapps/solr

添加solr常用的jar包到tomcat

$ cp -r /usr/local/contentplatform/solr-4.4./dist/*.jar /usr/local/apache-tomcat-6.0.36/webapps/solr/WEB-INF/lib/
$ cp -r /usr/local/contentplatform/solr-4.4.0/contrib/velocity/lib/*.jar /usr/local/apache-tomcat-6.0.36/webapps/solr/WEB-INF/lib/
$ cp -r /usr/local/contentplatform/solr-4.4.0/contrib/extraction/lib/*.jar /usr/local/apache-tomcat-6.0.36/webapps/solr/WEB-INF/lib/
$ cp -r /usr/local/contentplatform/solr-4.4.0/example/lib/*.jar /usr/local/apache-tomcat-6.0.36/webapps/solr/WEB-INF/lib/
$ cp -r /usr/local/contentplatform/solr-4.4.0/example/lib/ext/*.jar /usr/local/apache-tomcat-6.0.36/webapps/solr/WEB-INF/lib/

下载常用的mysql、postgresql的jdbc包到tomcat

$ wget https://jdbc.postgresql.org/download/postgresql-42.2.6.jre6.jar
$ wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz

修改solr/WEB-INF/web.xml,添加solr的home目录

    <env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/contentplatform/solr/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>

复制tomcat目录到sht-sgmhadoopnn-02上

$ rsync -az --progress /usr/local/apache-tomcat-6.0. tnuser@sht-sgmhadoopnn-:/usr/local/

启动tomcat

$ /usr/local/apache-tomcat-6.0./bin/catalina.sh start

6. 验证solrcloud

http://172.16.101.55:8983/solr

http://172.16.101.56:8983/solr/

新建collection

http://172.16.101.55:8983/solr/admin/collections?action=CREATE&name=collection2&numShards=2

查看新建的collection

删除新建的collection

http://172.16.101.55:8983/solr/admin/collections?action=CREATE&name=content_datar&numShards=2&collection.configName=collection1

7. 将postgresql表导入到solrcloud

先查看postgresql表结构

uber_geocoder=# \d twn_addr_compact
Table "uber_geocoder_tw_15q3_v2.twn_addr_compact"
Column | Type | Modifiers
----------------------+---------------+-----------
id | bigint | not null
door_range | text[] |
address_points | public.hstore |
street_names | public.hstore |
country | public.hstore |
state | public.hstore |
county | public.hstore |
city | public.hstore |
locality | public.hstore |
sub_locality | public.hstore |
neighbourhood | public.hstore |
postal_code | text |
rich_postal_code | text[] |
rich_postal_code_lat | text[] |
intersected_way_ids | text |
hilbert_key | bigint |
unidb_ids | bigint[] |
md5 | bigint |
Indexes:
"pk_twn_addr_compact" PRIMARY KEY, btree (id)
"hilbert_uber_geocoder_tw_15q3_v2_twn_addr_compact" btree (hilbert_key) uber_geocoder=# select count(*) from twn_addr_compact;
count
--------
258902
(1 row)

新建collection “uber_geocoder”

http://172.16.101.55:8983/solr/admin/collections?action=CREATE&name=uber_geocoder&numShards=2

sht-sgmhadoopnn-01查看

sht-sgmhadoopnn-02查看

将solr home的core  collection1目录的conf复制到sht-sgmhadoopnn-01上新建的collection目录

$ cp -r /usr/local/contentplatform/solr/solr/collection1/conf /usr/local/contentplatform/solr/solr/uber_geocoder_shard1_replica1

修改solrconfig.xml文件添加如下

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>

data-config.xml文件内容如下

<dataConfig>
<dataSource name="source1" type="JdbcDataSource" driver="org.postgresql.Driver" url="jdbc:postgresql://172.16.101.66:5432/uber_geocoder" user="dbadmin" password="88888888" />
<document>
<entity name="file1" datasource="source1" query="SELECT * FROM uber_geocoder_tw_15q3_v2.twn_addr_compact">
<field column="id" name="id" />
<field column="door_range" name="door_range" />
<field column="address_points" name="address_points" />
<field column="street_names" name="street_names" />
<field column="country" name="country" />
<field column="state" name="state" />
<field column="county" name="county" />
<field column="city" name="city" />
<field column="locality" name="locality" />
<field column="sub_locality" name="sub_locality" />
<field column="neighbourhood" name="neighbourhood" />
<field column="postal_code" name="postal_code" />
<field column="rich_postal_code" name="rich_postal_code" />
<field column="rich_postal_code_lat" name="rich_postal_code_lat" />
<field column="intersected_way_ids" name="intersected_way_ids" />
<field column="hilbert_key" name="hilbert_key" />
<field column="unidb_ids" name="unidb_ids" />
<field column="md5" name="md5" />
</entity>
</document>
</dataConfig>

添加以下到schema.xml文件

   <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="door_range" type="text_general" indexed="true" stored="true"/>
<field name="address_points" type="text_general" indexed="true" stored="true"/>
<field name="street_names" type="text_general" indexed="true" stored="true"/>
<field name="country" type="text_general" indexed="true" stored="true"/>
<field name="state" type="text_general" indexed="true" stored="true"/>
<field name="county" type="text_general" indexed="true" stored="true"/>
<field name="city" type="text_general" indexed="true" stored="true"/>
<field name="locality" type="text_general" indexed="true" stored="true"/>
<field name="sub_locality" type="text_general" indexed="true" stored="true"/>
<field name="neighbourhood" type="text_general" indexed="true" stored="true"/>
<field name="postal_code" type="int" indexed="true" stored="true"/>
<field name="rich_postal_code" type="text_general" indexed="true" stored="true"/>
<field name="rich_postal_code_lat" type="text_general" indexed="true" stored="true"/>
<field name="intersected_way_ids" type="text_general" indexed="true" stored="true"/>
<field name="hilbert_key" type="string" indexed="true" stored="true"/>
<field name="unidb_ids" type="text_general" indexed="true" stored="true"/>
<field name="md5" type="text_general" indexed="true" stored="true"/>

将conf目录复制到sht-sgmhadoopnn-02,并重启两台机器的tomcat

$ rsync -az --progress conf tnuser@sht-sgmhadoopnn-:/usr/local/contentplatform/solr/solr/uber_geocoder_shard2_replica1/

Solrcloud+tomcat+zookeeper的更多相关文章

  1. solrCloud+tomcat+zookeeper集群配置

    solrcolud安装solrCloud+tomcat+zookeeper部署  转载请出自出处:http://eksliang.iteye.com/blog/2107002 http://eksli ...

  2. solrCloud+tomcat+zookeeper配置

    一.环境准备: Solr版本:4.7.0 下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/4.7.0 Tomcat版本:6.0.39 下载地 ...

  3. JDK+Tomcat+Zookeeper+DubboAdmin安装教程

    JDK+Tomcat+Zookeeper+DubboAdmin安装教程 1. 安装内容: JDK 1.8.131 Tomcat 7.0.77 Zookeeper 3.4.9 Dubbo admin 2 ...

  4. 修改SolrCloud在ZooKeeper中的配置文件操作记录

    修改SolrCloud在ZooKeeper中的配置文件操作记录. 命令执行目录: /opt/solr-/server/scripts/cloud-scripts/ 1.下载配置文件 ./zkcli., ...

  5. CentOS下用Tomcat+Zookeeper+Nginx+Solr完美搭建SolrCloud平台(五)

    六.修改 /etc/rc.d/rc.local 文件,设置开机自启动 1.nginx 主机的设置 [root@nginx 桌面]# vi /etc/rc.d/rc.local #!/bin/sh to ...

  6. Solrcloud,tomcat,外部zookeeper配置

  7. Solr+Tomcat+zookeeper部署实战

    一 .安装solr 环境说明:centos 7.3,solr 6.6,zookeeper3.4,Tomcat8.5,jdk1.8 zookeeper的部署请参考:http://www.cnblogs. ...

  8. solrcloud编辑zookeeper上的配置文件的方法

    solrcloud的配置文件是上传在zookeeper文件系统上的.这样就面临一个问题,每次需要修改配置文件,就没有只有之前本地单机solr那么简单,需要上传. 搭建solrcloud时候提交配置文件 ...

  9. 利用jenv安装maven, tomcat,zookeeper等

    jenv有关的网站: http://jenv.io https://github.com/gcuisinier/jenv 1.  执行jenv安装 $ curl -L -s get.jenv.io | ...

随机推荐

  1. wx小程序知识点(一)

    一.微信小程序中的目录及文件 (1)project.config.json 用于开发者工具配置 主要用于设置项目是否开启https校验(setting.urlCheck) (2) App.js 设置全 ...

  2. Centos 下硬盘分区的最佳方案

    Centos7从零开始]Centos 下硬盘分区的最佳方案 2016年12月25日 10:09:02 浮華的滄桑 阅读数 41971   在对硬盘进行分区前,应该先弄清楚计算机担负的工作及硬盘的容量有 ...

  3. POJ 3352 Road Construction 中一个结论的证明

    题面 分析: 很多人都给出了做法,在这里不赘述.大概就是先把桥找出来,然后边双缩点,最后统计新图上的度数.因为缩点后为一棵树,所以度数为1(即为叶子)的点的数目+1再除以2下取整就是答案. 这里主要证 ...

  4. 论文阅读:Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN

    摘要: 在软件定义网络中,控制平面在物理上与转发平面分离,控制软件使用开放接口(例如OpenFlow)对转发平面(例如,交换机和路由器)进行编程. 本文旨在克服当前交换芯片和OpenFlow协议的两个 ...

  5. Linux命令-文件传输

    Linux命令-文件传输 Linux lprm命令 Linux lprm命令用于将一个工作由打印机贮列中移除 尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将常未送到打印机的工作取消.由于 ...

  6. PTA 刷题与Z老师的头发

    刷题与Z老师的头发 (10 分) 在Pintia上,每天Z老师出题.小盆友们刷题.Z老师的头发遵从以下规律: 1.每天生长出60根头发: 2.每出一道题,减少20根头发: 3.每天结束时统计累积做题情 ...

  7. Github 已经托管超过 1000 万个项目库

    2013 年对 Github 来说是不可思议和富有成效的一年,几天前 Github.com 上托管的项目已经超过 1000 万. 在此之前,首个 100 万项目用了将近 4 年时间,具体是 3 年 8 ...

  8. Nginx配置记录【例3】

    C服务器,例: [root@82_www_db_2 conf.d]# egrep -v "^#|^$" /etc/nginx/nginx.conf user nginx; work ...

  9. 如何使用git工具

    首先需要下载安坐git工具 地址如下:https://git-scm.com/downloads 安装完毕之后,就可以进入提供的命令行窗口 然后就可以使用了,比如:想从 github 克隆项目下来 g ...

  10. linux安装提示权限 不足 ,原来是锁了

    lsattr     查看 然后就是chattr -i /etc    -i 是解锁 +i 就是上锁