작성일 댓글 남기기

solr 설치

자바SDK를 다운로드 후 /usr/local/java 에 설치하고 /etc/profile 에 java 경로를 추가한다.

export JAVA_HOME=/usr/local/java

 

solr 계정을 만든다.

adduser solr

 

이 후 작업은 solr 계정으로 전환해서 작업한다.

su - solr

 

 

tomcat과 solr데이터 디렉토리는 아래와 같이 진행한다.

– tomcat 디렉토리 : /home/solr/tomcat
– solr 디렉토리 : /search_data/solr (디렉토리권한은 solr로 변경되어 있다고 가정)

tomcat은 7.0.52 버전을 사용했고 solr는 4.7.0을 사용했다.

 

 

tomcat과 solr 를 solr 홈디렉토리에 다운로드 후 압축을 풀고 링크를 건다.

wget http://mirror.apache-kr.org/tomcat/tomcat-7/v7.0.52/bin/apache-tomcat-7.0.52.tar.gz
wget http://mirror.apache-kr.org/lucene/solr/4.7.0/solr-4.7.0.tgz
 
tar xzpvf apache-tomcat-.7.0.52
tar xzpvf solr-4.7.0.tgz
ln -sf apache-tomcat-7.0.52 tomcat

 

 

vi tomcat/conf/server.xml 파일을 열어서 Connector 부분에 URIEncoding=”UTF-8″ 옵션을 추가한다.

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           URIEncoding="UTF-8" ></Connector>

 

solr 웹앱 파일을 tomcat 앱디렉토리에 solr.war 이름으로 복사를 한다.

cp -av solr-4.7.0/dist/solr-4.7.0.war tomcat/webapps/solr.war

 

solr 폴더의 내용을 /search_data/solr 로 복사한다.

cp -av solr-4.7.0/* /search_data/solr/

이 부분에서 보통 다른 설치문서를 보면 example/solr 디렉토리를 복사하는 것으로 되어 있는데,
그렇게 설치하면 solr 설치디렉토리에 있는 contrib등의 디렉토리에 있는 라이브러리를 못 찾는다는 에러가 뜬다.

 

 

solr 웹앱 설정파일을 만든다.

mkdir -p tomcat/conf/Catalina/localhost
cd !$
vi solr.xml
 <?xml version='1.0' encoding='utf-8'?>
 
<Context crossContext="true" debug="0" docBase="/home/solr/tomcat/webapps/solr" priviledged="true">
    <Environment name="solr/home" override="true" type="java.lang.String" value="/search_data/solr" ></Environment>
</Context>

 

여기까지가 검색하면 나오는 설치방법인데, 여기까지 하면 catalina.out에 아래와 같은 에러가 발생한다.

SEVERE: Error filterStart
Mar 18, 2014 1:49:04 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/solr] startup failed due to previous errors

 

 

왜 에러가 발생하는지 알수가 없는데 알려면

tomcat/webapps/solr/WEB-INF/classes/logging.properties 파일을 만들어서 아래 내용을 추가해준다.

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler

 

tomcat을 재시작하면 자세한 로그가 나온다.

SEVERE: Exception starting filter SolrRequestFilter
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
        at org.apache.solr.client.solrj.impl.HttpClientUtil.<clinit>(HttpClientUtil.java:78)
        at org.apache.solr.servlet.SolrDispatchFilter.<init>(SolrDispatchFilter.java:120)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at java.lang.Class.newInstance(Class.java:374)
        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:140)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4809)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:670)
        at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
        ... 23 more

 

 

slf4j 관련 에러가 나오는데 관련라이브러리와 설정파일을 tomcat에 복사해주면 된다.

cp -av solr-4.7.0/example/lib/ext/* tomcat/lib/
cp -av solr-4.7.0/example/resources/log4j.properties tomcat/lib

 

log4j.properties 파일을 열어서 solr.log 경로를 수정한다.

solr.log=/home/tomcat/logs/

 

다시 tomcat을 재시작 후 http://server:8080/solr 로 접속해보면 페이지가 뜨는 것을 확인 할 수 있다.

작성일 댓글 남기기

구리 아이파티 돌잔치 예약과 시식

요즘은 괜찮은 곳에서 돌잔치를 할려면 아기가 태어날 때쯤 미리 예약한단다.

그래서 나도 약 11개월전 딸 리나가 태어났을 때 돌잔치를 미리 예약해놔야하나 잠깐 고민했었다.

그러나  애 키우는데 정신없어서 몇달을 그냥 흘렸다.

그러다가 돌을 5개월 정도 남겨뒀을 때 아차 싶어서 그제서야 돌잔치할 곳을 여기저기 찾아보기 시작했다.

그러던 중 같은 아파트에 사는 아기엄마가 며칠전 돌잔치를 했다고 하길래 어디서 했는지 어땠는지 물어서 알려준 곳이 구리 아이파티였다.

다른 곳을 더 알아보기도 번거롭고 귀찮아서 바로 아이파티에 가서 상담을 받았다.

돌잔치 5개월전에 원하는 시간을 예약하는 것이 힘들다는 것을 알았다. 많이 늦은 것이었다.

근데 마침 운 좋게도 3월 29일 토요일 저녁 6시 타임에 예약 취소가 생겼고 우리가 예약할 수 있었다.

원래 생일보다 11일이나 빠른 날짜였지만 선택의 여지가 없었다.

주위 사람들 보니 돌잔치를 패밀리레스토랑 같은 곳에서 하면 의상이나 머리는 따로 알아보느라 이것저것 신경 쓸 것이 많던데, 아이파티는 돌잔치를 전문으로 하는 곳이라서 음식은 물론 답례품, 의상, 머리까지 다른 곳을 알아 볼 필요가 없어서 편하긴 했다.

언제 오나 싶었던 딸의 돌잔치가 어느덧 2주앞으로 다가왔다.

그 전에 아이파티에서 시식할 수 있는 기회가 있어서 다녀왔다.

 

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

 

OLYMPUS DIGITAL CAMERA

 

내가 워낙에 양이 작아서 뷔페 같은데 가면 많이 못 먹어서 손해보는데 시식 때도 역시나 그 많은 음식들 중에 맛 본게 별로 없었다.

더불어 딸이 많이 칭얼대는 바람에 나뿐만 아니라 애 엄마까지 제대로 먹지도 못하고 왔다.

돌잔치 뷔페 가보면 메뉴는 거의 비슷비슷하긴 하기 때문에 딱이 특별한 느낌은 못 받았고 다른데 비해 좀 깔끔해보였다.

많이 먹지 못해서 맛이 어떻다고 평가는 섣불리 하긴 힘들지만 비쥬얼은 꽤나 괜찮았다.

과일이나 디저트류가 다른데 비해 풍성한 것이 마음에 들었다.

손님들 입장에서야 돌잔치 오시면 먹는거밖에 남을게 없기 때문에, 우리 돌잔치에 오실 손님들 입맛에 잘 맞길 바랄 뿐이다.