Lucene OpenSource 검색 라이브러리로서 하둡 개발자로 잘 알려진 Doug Cutting이 개발했다. Lucene이라는 이름은 그의 아내 middle name 을 따서 지었다고. Lucene은 Levenshtein distance에 기반한 fuzzy search 기능까지 있는 검색 라이브러리로 검색 능력이 뛰어나다고 한다. Lucene-demo http://lucene.apache.org/ apache/lucene/java/7.5.0 위 경로에서 Lucene 최신 라이브러리를 다운로드 받으면 demo/lucene-demo-7.5.0.jar 데모 클래스가 있다. IndexFiles를 이용하면 파일 시스템의 특정 경로 내의 […]
[ElasticSearch] 한글 형태소 분석기 nori
한글 형태소 분석기 nori 소개 설치 elasticsearch-plugin 이용해서 설치. 모든 노드에 설치 되어야하고 설치 이후에는 노드 별 재기동이 필요. elasticsearch-plugin install analysis-nori Analysis 형태소 분석을 적용해보고 싶은 text 에 대해 다음과 같이 analysis 테스트가 가능하다. curl -X GET “$HOSTNAME:9200/_analyze?pretty” -H ‘Content-Type: application/json’ -d’ { “tokenizer”: “nori_tokenizer”, “text”: “뿌리가 깊은 나무는”, “attributes” : [“posType”, “leftPOS”, “rightPOS”, […]
[ElasticSearch] elasticdump
elasticdump elasticsearch에 저장돼 있는 indice 데이터를 json 파일로 내려받거나 다른 elasticsearch cluster에 indexing 할 수 있는 유틸로서 https://github.com/taskrabbit/elasticsearch-dump 에서 project 관리를 하고 있고 다운로드 및 가이드 확인이 가능하다. 설치 의존성 node.js 어플리케이션으로 작성돼 있어 node 필요. 설치 순서 1. source 다운로드 및 압축해제 wget https://github.com/taskrabbit/elasticsearch-dump/archive/master.zip unzip master.zip 2. npm install cd elasticsearch-dump-master npm install export […]
[ElasticSearch] ElasticSearch-Hadoop Connector
ElasticSearch-Hadoop ElasticSearch-Hadoop Connector를 이용하여 ElasticSearch의 실시간 검색 및 분석 기능과 Hadoop의 강력한 데이터 저장 및 처리 기능을 동시에 활용. 기본적으로 ElasticSearch는 Join SQL이 수행되지 않는데 ElasticSearch-Hadoop Connector를 이용하면 DF 를 생성해서 multi index 에 대한 Join SQL을 수행할 수 있을 것 같다. 테스트 해본 데이터 사이즈가 커서 그런지 쿼리 응답을 받지는 못함.. 설치 wget https://artifacts.elastic.co/downloads/elasticsearch-hadoop/elasticsearch-hadoop-6.4.2.zip […]
[ElasticSearch] Search API
ElasticSearch Search API 필터 등 기본적인 검색 방법에 대해 소개. RDBMS 에서 쿼리한 것과 비교해보면서 ElasticSearch에서 쿼리해보면 좋을듯. Query client 는 Kibana Dev Tools 을 사용한다. 테스트 데이터 tpc-H 에서 생성된 데이터 중 supplier 테이블 데이터를 바탕으로 테스트 진행. supplier index template 정수형, 문자형, 텍스트 형에 따라 검색 특성을 보기 위해 아래와 같이 index template […]
[ElasticSearch] ELK + MetricBeat System Monitoring
ELK + MetricBeat System Monitoring Architecture 아래와 같은 구성도로 Monitoring System을 구축한다. 총 세 대의 머신으로 ELK 클러스터를 구성하며 metricbeat는 agent로서 서버 클러스터에는 설치될 필요가 없다. hostname components node1.elk elasticsearch, logstash, kibana node2.elk elasticsearch node3.elk elasticsearch 설치 사전 준비 JDK 1.8 이상 kernel vm.max_map_count = 262144 user limit elastic soft nofile 65536 elastic hard nofile […]
[Kafka] Producer & Consumer Sample
Building Kafka Producer & Consumer Application Using Maven Maven 설치 JAVA만 준비돼 있다면 maven project 사이트에서 pre-compiled binary 받아서 그대로 사용하면 됨. apache maven binary 다운로드 wget http://mirror.navercorp.com/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz 환경 변수 설정 # JDK ENV export JAVA_HOME=/app/jdk export PATH=$JAVA_HOME/bin:$PATH # MAVEN ENV export PATH=/app/maven/bin:$PATH 설치 압축 해제 tar -xvzf apache-maven-3.5.4-bin.tar.gz -C /app/maven 경로 설정 cd /app/maven […]
[Kafka] Console Script 사용하기
Kafka Console Script 사용하기 kafka-topics.sh Create New Topic ‘test’ 라는 이름의 topic 생성 kafka-topics.sh \ –create –zookeeper node1.big:2181,node2.big:2181,node3.big:2181 \ –replication-factor 1 –partitions 1 \ –topic test Get List of Topics from Kafka Cluster kafka-topics.sh \ –list –zookeeper node1.big:2181,node2.big:2181,node3.big:2181 kafka-console-producer.sh console-producer 이용하여, bash 환경에서 표준 입력을 통해 ‘test’라는 topic에 message publish kafka-console-producer.sh \ –broker-list node7.big:9092,node8.big:9092 –topic […]
[Kafka] kafka1.1 설치
Apache Kafka 설치하기 시스템 사용자 profile 설정 # JDK ENV export JAVA_HOME=/app/jdk export PATH=$JAVA_HOME/bin:$PATH export LD_LIBRARY_PATH=$JAVA_HOME/lib:$LD_LIBRARY_PATH # KAFKA ENV export PATH=/app/kafka/bin:$PATH export LOG_DIR=/logs/kafka # Kafka 데몬의 로그 경로 alias startKafka=’kafka-server-start.sh -daemon /app/kafka/config/server.properties’ alias stopKafka=’kafka-server-stop.sh’ # USER ENV set -o vi 바이너리 다운로드 wget http://mirror.apache-kr.org/kafka/1.1.1/kafka_2.11-1.1.1.tgz 바이너리 압축 해제 tar -xvf kafka_2.11-1.1.1.tgz -C /app/kafka/1.1.1 sybolic link 생성 […]
[Kafka] Apache Kafka
Apache Kafka Introduction 이번에 직접 사용해보니.. Message Queue Open Source Framework로서 kafka를 많이들 사용하는 것 같다. 기본적으로 Producer/Consumer Application 을 개발해서 사용해야 하는데 많이 사용하다 보니 관련 자료가 많고 Hadoop, Spark, 여러 수집기 등에서 Plugin을 제공한다. 많이 쓰고 자료가 많아서 kafka를 이용하는 것도 좋은 이유인 것 같다. 다음 두가지 이유가 직접 느낀 좋은 점 Consumer는 […]