设为首页 收藏本站
查看: 1020|回复: 0

[经验分享] Docker使用supervisor构建solr

[复制链接]

尚未签到

发表于 2018-5-30 10:06:32 | 显示全部楼层 |阅读模式
构建Centos-solr-supervisor时首先要想清楚,solr的目录该如何规整,用什么方式来启动solr(jetty/tomact),并且solr不同于其项目(如果用war包的形式进行部署)需进行服务的不断重启,那么就会牵扯到Docker容器的机制问题,Docker镜像的机制——当你第一次构建完镜像,镜像里的内容不会发生改变只有提交更改才会更改镜像并生成新的镜像,所有有必要首先考虑solr的目录问题及部署问题。
1.构建solr所用的基础镜像centos-java7-supervisor(此镜像可以作为所有应用到java的基础镜像)
下载地址:githup:https://github.com/aarongo/cetnos-java-base.git
         Docker:docker pull aarongo/centos-java-base
可以直接下载进行使用
自动构建方式
    Dockerfile
FROM centos:centos6
MAINTAINER  aaron "aaron.docker@gmail.com"
RUN yum search java | grep -i --color JDK &&\
    yum -y install java-1.7.0-openjdk java-1.7.0-openjdk-devel &&\
    ls -l /usr/lib/jvm/ &&\
    echo "export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64" >> /etc/profile
CMD bash -l

    运行方式
docker run -it aarongo/centos-java-supervisor

    检测结果
DSC0000.png
到此基础镜像构建完成
2.构建centos-solr-supervisor镜像(以centos-java-supervisor为基础进行solr镜像的配置)
下载地址:
                Github:https://github.com/aarongo/centos-solr-supervisor.git
                Docker:docker pull aarongo/centos-solr-supervisor
因为下载solr软件包时速度非常慢,所以将solr软件包做一个镜像
下载地址:
                Github:https://github.com/aarongo/solr-bse.git
                Docker:docker pull aarongo/solr-base
自动构建方式:
solr-base Dockerfile
FROM aarongo/centos-java-supervisor
MAINTAINER  aaron "aaron.docker@gmail.com"
RUN yum -y install wget tar
RUN cd / && wget http://mirrors.hust.edu.cn/apache/lucene/solr/4.8.1/solr-4.8.1.tgz && tar xzf solr-4.8.1.tgz

centos-solr Dockerfile
FROM aarongo/centos-java-supervisor
MAINTAINER  aaron "aaron.docker@gmail.com"
#Install supervisor
RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
RUN yum -y update  && yum -y install python-pip && /usr/bin/pip install supervisor
RUN mkdir -p /etc/supervisor/conf.d && mkdir -p /var/log/supervisor
COPY supervisord.conf /etc/supervisord.conf
VOLUME /var/log/supervisor
#Install sshd
RUN yum install -y openssh-server && sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
# select root pasword
RUN echo "root:pasword" | chpasswd && echo "root   ALL=(ALL)       ALL" >> /etc/sudoers &&\
    ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key &&\
    mkdir /var/run/sshd
#install tomcat
RUN java -version && yum -y install wget && yum -y install tar
RUN cd /tmp && wget http://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.tar.gz && cd /tmp && tar xzf apache-tomcat-7.0.57.tar.gz &&  mv apache-tomcat-7.0.57 /usr/local/tomcat && mkdir /solrdeploy && chmod +x /usr/local/tomcat/bin/*
ADD ./server.xml /usr/local/tomcat/conf/
ADD ./tomcat-users.xml /usr/local/tomcat/conf/
#Installing Apache Commons Loggins
RUN wget http://archive.apache.org/dist/commons/logging/binaries/commons-logging-1.1.3-bin.tar.gz &&\
    tar zxf commons-logging-1.1.3-bin.tar.gz && cd commons-logging-1.1.3 &&\
    cp commons-logging-*.jar /usr/local/tomcat/lib
#Installing SLF4J
RUN wget http://www.slf4j.org/dist/slf4j-1.7.7.tar.gz && tar xzf slf4j-1.7.7.tar.gz &&\
    cd slf4j-1.7.7 && cp slf4j-*.jar /usr/local/tomcat/lib
#Installing solr
RUN cd /tmp && wget http://mirrors.hust.edu.cn/apache/lucene/solr/4.8.1/solr-4.8.1.tgz && tar xzf solr-4.8.1.tgz
RUN mkdir  /solrhome && cp /solr-4.8.1/dist/solr-4.8.1.war /solrdeploy/solr.war && cp -r /solr-4.8.1/example/solr /solrhome/
#ADD ./schema.xml /home/solr/collection1/conf/
VOLUME ["/solrdeploy"]
VOLUME ["/solrhome"]
EXPOSE 22 8080
CMD ["/usr/bin/supervisord"]
#此处的VOLUME 外部目录一定要与容器内部目录结构相同 如果不相同会出现构建后运行时容器内部目录会空

运行方式

docker run -p  1028:22 -p 8080:8080 -it -v /solrdeploy:/solrdeploy -v /dockersolr:/solrhome aarongo/centos-solr-supervisor (前台显示)
#Or
docker run -d -p  1028:22 --name solr -v /solrdeploy:/solrdeploy -v /dockersolr:/solrhome aarongo/centos-solr-supervisor(后台运行)

注意:
启动后等待项目部署完成后停止,删除项目部署文件(solr.war),进行分词器的配置(我容器用的是 TOMCAT)
安装分词器
下载mmseg4j :http://yunpan.cn/cAeNC8buXBZzv  提取码 293a
jar包下载地址:http://yunpan.cn/cAehVEPNZ3Uwe  提取码 200d
1.将\mmseg4j-1.9.1\dist目录下的jar包全部放到部署目录下solr/WEB-INF\lib下
2.在solrhome目录下的connection1/conf/schema.xml文件里添加
<fieldType name="text_mmseg4j_complex" class="solr.TextField" positionIncrementGap="100" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
      </analyzer>
    </fieldType>
    <fieldType name="text_mmseg4j_maxword" class="solr.TextField" positionIncrementGap="100" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dic"/>
      </analyzer>
    </fieldType>
    <fieldType name="text_mmseg4j_simple" class="solr.TextField" positionIncrementGap="100" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="dic"/>
      </analyzer>
    </fieldType>

3.再次运行tomcat会报如下错误

DSC0001.png
4.关闭tomcat,修改mmseg4j jar包的源代码 \mmseg4j-1.9.1\mmseg4j-analysis\src\main\java\com\chenlb\mmseg4j\analysis\MMSegTokenizer.java
DSC0002.png
5.因为mmseg4j是maven项目所以使用mvn clean package -DskipTests进行重新编译生成新的jar包
在Windows下dos 进入 \mmseg4j-1.9.1\mmseg4j-analysis\src\main\java\com\chenlb\mmseg4j\analysis
使用mvn clean package -DskipTests进行编译
在当前目录中会生成targe目录在其目录下生产一个新的jar包替换掉solr/WEB-INF\lib下同名的jar包即可
DSC0003.jpg
DSC0004.png
6.启动tomcat 如果你看到如下界面证明solr和分词器都已经成功

DSC0005.png
至此Docker-solr基础环境构建完成
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-482920-1-1.html 上篇帖子: Docker使用supervisor启动Mysql 下篇帖子: Docker使用supervisor启动MongoDB
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表