글쓰기 메뉴

Ubuntu 14.04 - Apache Tika 설치

아파치 티카는 PPT, XLS, PDF 등 수천종의 파일에서 텍스트와 메타정보를 추출하는 툴킷이다.

아파치 소프트웨어 재단의 프로젝트이며 아파치 루씬의 서브프로젝트로 시작됐고 현재는 독립되었다.


티카는 Apache Maven2로 빌드가 가능하나 여기서는 바이너리를 사용한다.


소스나 바이너리 다운로드 URL은 다운로드 페이지에서 확인하자

$ wget http://apache.mirror.cdnetworks.com/tika/tika-server-1.11.jar


tika-app

콘솔에서도 유틸리티처럼 사용이 가능하고 --server 옵션으로 서버모드로도 사용이 가능하다. NetCat 등의 커맨드를 사용해 처리결과를 받을 수 있다.


tika-server

보다 서버스러운(!) 서버모드로 RESTful API 를 제공한다.


구동

JRE 는 당연히 설치되어 있어야하고 -jar 옵션으로 간단하게 구동된다. 기본 포트는 9998

$ java -jar tika-server-1.11.jar --host=10.10.0.1 --port=9998


구동 확인

브라우저에서 9998 포트로 접속하면 URL 정보가 출력된다.

$ curl -X GET 10.10.0.1:9998/tika
This is Tika Server. Please PUT


tika-server 는 PUT 메쏘드만 받으며 리퀘스트 body 로 파일만을 받는다.


Meta 

curl -T sample.pdf http://10.10.0.1:9998/meta


Text

curl -T sample.pdf http://10.10.0.1:9998/tika --header "Accept: text/plain"


HTML

curl -T sample.pdf http://10.10.0.1:9998/tika --header "Accept: text/html"


추가로, 내가 쓰는 Typhoeus 에서는 아래와 같이 사용할 수 있다.

res = Typhoeus.put("http://tikaserver:port/tika", body: File.open(/file/path/sample.pdf, "r").read)
res.response_body


Apache Tika : http://tika.apache.org/

TiakJAXRS Wiki : http://wiki.apache.org/tika/TikaJAXRS

어디서 왔지?
[["synd.kr", 29], ["www.google.co.kr", 282], ["www.google.co.jp", 7], ["duckduckgo.com", 1], ["yandex.ru", 3], ["unknown", 1406], ["search.naver.com", 1], ["search.clearch.org", 1], ["www.google.com", 8], ["www.bing.com", 2], ["www.google.co.nz", 1], ["com.google.android.googlequicksearchbox", 3], ["www.google.com.hk", 2]]
다른 글들
1 1

스벅 앱 미쳤군 (이제 잘돼)

글 쓰고 몇 시간 지난 지금 확인해봤는데 겁나 잘돼. -_-; 
2 가지 가능성이 있네.
    - 앱 최초 구동 시 많은 일을 하느라 최초 1회 구동 시 느리다.
    - 그냥 잠시동안 서버가 구렸다.
아무튼 잘 되니 좋군!
구글 매터리얼 디자인 적용한 것도 좋고 깔끔하고 세련되게 변경된 것도 좋은데 사용이 불가할 정도로 처느려! 서버가 쉣이거나 설계가 쉣이거나 하드웨어 심하게 타거나... 어떤 이유든간에 내 폰에서 더럽게 안돼. 아, 진짜 더럽네 기분.
미친 로딩바는 모달로 뜬 이벤트 페이지 더블 모달로 처가리고 있어서 닫기 버튼 블럭하고 있고 이 GR.
상식적으로 한두푼 주고 개발하지 않았을텐고 매장서 직업 결제해야하기 때문에 영업시간 중 서비스 중단도 힘들텐데 왜 요따구 품질로 업뎃됐는지 도무지 이해불가!
에이 나쁜놈들! 껒여버려!
1 1

우분투 16.04 - 엘라스틱 서치 메모리 설정
Ubuntu 16.04 - Elasticsearch Memory config

AWS 등이나 docker 환경에서 Elasticsearch 를 사용하거나 로그 분석 등 사이즈가 큰 데이터를 다루기 위해 Elasticsearch 를 사용한다면 애초에 "메모리 부족" 으로 JDK 가 안올라가는 그런 황당한 일은 없을게다.
평범한 양의 콘텐츠를 다루는 RDB 의 검색엔진으로 Elasticsearch 를 사용하고 있는데 1기가 메모리에 웹, DB, Elasticsearch 를 모두 올려야하는 상황.
Elasticsearch 구동 시 syslog 에 아래와 같은 에러를 뱉고 당당하게 종료되는 elasticsearch.
Elasticsearch 메모리 설정 관련 검색 시 ES_HEAP_SIZE 환경변수 설정 얘기가 많이 나오는데 (공홈 매치 결과도..) 사용되지 않는 설정값이고 구동 시 xms, xmx (각 최소, 최대) 설정을 해줘야한다.
우분투에서는 아래의 파일에서 관련값을 설정할 수 있다.
두 개의 값이 다르면 성능저하가 생길 수 있다고 한다.
참고로 systemd 환경의 우분투에서 MAX_OPEN_FILES 와 MAX_LOCKED_MEMORY 설정은 elasticsearch.service 파일에서 하는 것이 좋다고 한다.
음... 또 또 참고로 .service 파일에서의 해당 설정 키는 각각 LimitNOFILE 과 LimitMEMLOCK 이다.
음.. 또 참고로 systemd 뒤의 system path 는 해당 서비스가 구동되는 레이어에 관한 정보로 시스템이나 설정마다 다를 수 있다.
1 0

우분투 몽고DB 설치 및 부팅 시 자동 실행 - Install MongoDB on Ubuntu & Start MongoDB on system start

설치는 매우 간단하고 MongoDB 공홈에 최신 버전으로 갱신된 문서가 있어 해당 페이지를 참고하면 된다.
공홈 설치 문서 링크:

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
GPG Key
리스트파일 생성 (16.04. 기타 버전은 공홈 참조)

패키지 디비 갱신
MongoDB 설치

근래의 대부분의 배포본은 Upstart  대신 Systemd를 사용하기 때문에 위와 같이 설치된 MongoDB 역시 init 스크립트를 제공하지 않는다.
service 커맨드로 시작, 중지, 재시작 등의 관리가 가능하나 systemctl 커맨드를 익히는게 바람직하다고 본다.
systemd 를 사용해 MongoDB 를 초기 실행 시키기 위해 다음의 파일을 작성한다.
/etc/systemd/system/mongodb.service

Unit 섹션의 Description 은 서비스에 대한 간단한 설명을 포함한다.
같은 섹션의 After 는 네트워크 연결 후 구동하겠다는 의미
Service 섹션의 User 는 서비스 실행 사용자를 지정하고 ExecStart 는 실제 구동 커맨드를 입력한다.
Install 섹션의 WantedBy 는 실행 타깃을 구분하는데 multi-user.target 은 기존 런레벨 2,3,4 로 일반적인 부팅 시에 동작된다.
구동
상태 확인
정지
부팅 시 실행
systemd 의 target 에 대해 보다 자세히 알고 싶다면 아래의 링크를 참조.
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Targets.html
systemd 에 대해 보다 자세히 알고 싶다면 아래의 링크를 참조
http://lunatine.net/about-systemd/
1 0

Vim - Pug(구 Jade) 템플릿 Syntax Highlight

템플릿 pug(구 jade)가 vim (version 7.4.1689) 에서 구문강조 (syntax highlight) 가 되지 않아 코딩에 어려움이 있다.
pathogen 플러그인을 사용해 vim-pug 로 pug 파일의 구문강조를 지원하는 방법은 다음과 같다.
pathogen 설치
https://github.com/tpope/vim-pathogen

vim 구동 파일 수정
vim-pug 설치
https://github.com/digitaltoad/vim-pug