Thứ hai, 30/12/2013 | 00:00 GMT+7

Cách thiết lập CouchDB với ElasticSearch trên VPS Ubuntu 13.10

CouchDB là một database NoSQL lưu trữ dữ liệu dưới dạng tài liệu JSON. Nó cực kỳ hữu ích trong các tình huống mà schemas sẽ gây đau đầu và cần có một mô hình dữ liệu linh hoạt. CouchDB cũng hỗ trợ sao chép liên tục master-master, nghĩa là dữ liệu có thể được sao chép liên tục giữa hai database mà không cần phải cài đặt một hệ thống phức tạp gồm database chủ và tớ.


CouchDB


Tìm kiếm elastic


ElasticSearch là một công cụ tìm kiếm toàn văn bản lập index mọi thứ và giúp mọi thứ có thể tìm kiếm được. Điều này hoạt động cực kỳ hiệu quả với CouchDB vì một trong những hạn chế của CouchDB là đối với tất cả các truy vấn, bạn phải biết ID tài liệu hoặc bạn phải sử dụng bản đồ / thu nhỏ.

Cài đặt CouchDB


Ta sẽ cài đặt CouchDB từ nguồn để có được version mới nhất. Hướng dẫn kỹ hơn về điều này có thể được xem tại đây .

Cài đặt Môi trường


Cập nhật trình quản lý gói:

apt-get update 

Cài đặt các công cụ để biên dịch đi văng:

apt-get install -y build-essential 

Cài đặt Erlang, ngôn ngữ lập trình CouchDB được viết bằng:

apt-get install -y erlang-base erlang-dev erlang-nox erlang-eunit 

Cài đặt phần còn lại của các thư viện mà CouchDB cần:

apt-get install -y libmozjs185-dev libicu-dev libcurl4-gnutls-dev libtool 

Yêu cầu các file nguồn


Chuyển đến folder chứa các file nguồn CouchDB:

cd /usr/local/src 

Lấy các file nguồn:

curl -O http://apache.mirrors.tds.net/couchdb/source/1.5.0/apache-couchdb-1.5.0.tar.gz 

Bỏ theo dõi các file nguồn:

tar xvzf apache-couchdb-1.5.0.tar.gz 

Đi tới folder mới:

cd apache-couchdb-1.5.0 

Cấu hình nguồn và cài đặt nó:

./configure make && make install 

Lưu ý: Bước này có thể mất một lúc. Sau khi hoàn tất, CouchDB sẽ được cài đặt đầy đủ. Bây giờ ta cần tạo user thích hợp và chỉ định quyền

Hoàn thiện cài đặt CouchDB


Tạo user CouchDB:

adduser --disabled-login --disabled-password --no-create-home couchdb 

Lưu ý: Có thể bỏ qua dấu nhắc yêu cầu những thứ như Tên nếu bạn muốn. Bạn có thể sử dụng các giá trị mặc định cho mỗi giá trị.

Gán các quyền thích hợp cho user CouchDB:

chown -R couchdb:couchdb /usr/local/var/log/couchdb /usr/local/var/lib/couchdb /usr/local/var/run/couchdb 

Cài đặt CouchDB như một dịch vụ để nó không phải khởi động theo cách thủ công:

ln -s /usr/local/etc/init.d/couchdb  /etc/init.d update-rc.d couchdb defaults 

Khởi động CouchDB:

service couchdb start 

Xác minh CouchDB đang chạy

curl localhost:5984 

Bạn sẽ thấy một phản hồi bắt đầu bằng:

{"couchdb":"Welcome"... 

Cài đặt ElasticSearch


Cài đặt ban đầu


Cài đặt version mới nhất của open-jdk không đầu:

apt-get install openjdk-7-jre-headless 

Tải version mới nhất của ElasticSearch:

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.8.deb 

Cài đặt gói:

dpkg -i elasticsearch-0.90.8.deb 

Trước khi tiếp tục, bạn cần cấu hình Elasticsearch để nó không thể truy cập vào Internet công cộng – Elasticsearch không có bảo mật tích hợp và có thể được kiểm soát bởi bất kỳ ai có thể truy cập API HTTP. Điều này có thể được thực hiện bằng cách chỉnh elasticsearch.yml . Giả sử bạn đã cài đặt gói, hãy mở cấu hình bằng lệnh sau:

sudo vi /etc/elasticsearch/elasticsearch.yml 

Sau đó tìm dòng chỉ định network.bind_host , sau đó bỏ ghi chú và thay đổi giá trị thành localhost để nó trông giống như sau:

network.bind_host: localhost 

Sau đó, chèn dòng sau vào đâu đó trong file , để tắt các tập lệnh động:

script.disable_dynamic: true 

Lưu và thoát. Bây giờ khởi động lại Elasticsearch để thay đổi có hiệu lực:

sudo service elasticsearch restart 

Xác minh ElasticSearch đang chạy (Nếu yêu cầu không thành công lần đầu tiên, hãy thử lại. Có thể mất một chút thời gian để nó bắt đầu):

curl http://127.0.0.1:9200 

Bạn sẽ thấy một phản hồi bắt đầu bằng:

{ "ok" : true, "status" : 200,  

Thay đổi nơi chỉ số cửa hàng của ElasticSearch


Dừng elastic Tìm kiếm:

/etc/init.d/elasticsearch stop 

Tạo folder mới:

mkdir /var/data/ mkdir /var/data/elasticsearch 

Thay đổi quyền sở hữu folder thành user 'asticsearch ':

chown elasticsearch /var/data/elasticsearch 

Thay đổi group :

chgrp elasticsearch /var/data/elasticsearch 

Thay đổi file cấu hình ElasticSearch để phản ánh folder dữ liệu mới


Sử dụng nano để mở file cấu hình ElasticSearch:

nano /etc/default/elasticsearch 

Thay đổi dòng chứa:

DATA_DIR= 

đến

DATA_DIR= /var/data/elasticsearch 

Lưu và đóng file .

Làm cho cả hai làm việc cùng nhau


Cài đặt Plugin CouchDB River cho ElasticSearch


Điều hướng đến folder ElasticSearch:

cd /usr/share/elasticsearch/ 

Cài đặt plugin:

./bin/plugin -install elasticsearch/elasticsearch-river-couchdb/1.2.0 

Bắt đầu backup ElasticSearch


Bắt đầu Tìm kiếm elastic :

/etc/init.d/elasticsearch start 

Tạo Database CouchDB và Chỉ mục Tìm kiếm elastic


Đặt một số nội dung vào CouchDB


Tạo database CouchDB:

curl -X PUT http://127.0.0.1:5984/testdb 

Tạo một số tài liệu thử nghiệm:

curl -X PUT 'http://127.0.0.1:5984/testdb/1' -d '{"name":"My Name 1"}'  curl -X PUT 'http://127.0.0.1:5984/testdb/2' -d '{"name":"My Name 2"}'  curl -X PUT 'http://127.0.0.1:5984/testdb/3' -d '{"name":"My Name 3"}'  curl -X PUT 'http://127.0.0.1:5984/testdb/4' -d '{"name":"My Name 4"}' 

Cài đặt ElasticSearch với Database


Tạo index :

curl -X PUT '127.0.0.1:9200/_river/testdb/_meta' -d '{ "type" : "couchdb", "couchdb" : { "host" : "localhost", "port" : 5984, "db" : "testdb", "filter" : null }, "index" : { "index" : "testdb", "type" : "testdb", "bulk_size" : "100", "bulk_timeout" : "10ms" } }' 

Kiểm tra nó!


Thực hiện một truy vấn thử nghiệm với ElasticSearch:

curl http://127.0.0.1:9200/testdb/testdb/_search?pretty=true 

Bạn sẽ thấy một cái gì đó tương tự như sau:

{   "took" : 4,   "timed_out" : false,   "_shards" : {     "total" : 5,     "successful" : 5,     "failed" : 0   },   "hits" : {     "total" : 4,     "max_score" : 1.0,     "hits" : [ {       "_index" : "testdb",       "_type" : "testdb",       "_id" : "4",       "_score" : 1.0, "_source" : {"_rev":"1-7e9376fc8bfa6b8c8788b0f408154584","_id":"4","name":"My Name 4"}     }, {       "_index" : "testdb",       "_type" : "testdb",       "_id" : "1",       "_score" : 1.0, "_source" : {"_rev":"1-87386bd54c821354a93cf62add449d31","_id":"1","name":"My Name"}     }, {       "_index" : "testdb",       "_type" : "testdb",       "_id" : "2",       "_score" : 1.0, "_source" : {"_rev":"1-194582c1e02d84ae36e59f568a459633","_id":"2","name":"My Name 2"}     }, {       "_index" : "testdb",       "_type" : "testdb",       "_id" : "3",       "_score" : 1.0, "_source" : {"_rev":"1-62a53c50e7df02ec22973fc802fb9fc0","_id":"3","name":"My Name 3"}     } ]   } } 

Như vậy, thay vì bị giới hạn trong việc sử dụng bản đồ / thu nhỏ hoặc _id của mỗi tài liệu, bạn có thể thực hiện các truy vấn toàn văn trên dữ liệu của bạn bằng cách sử dụng ElasticSearch.

<div class = “author”> Được gửi bởi: <a href=p>http://blog.opendev.ioosystem> Cooper Thompson </a> </div>


Tags:

Các tin liên quan

Cách sử dụng Celery với RabbitMQ để xếp hàng các tác vụ trên Ubuntu VPS
2013-12-19
Cách thiết lập một Honeypot Pháo binh trên VPS Ubuntu
2013-12-04
Cách triển khai Bộ sao chép trong MongoDB trên VPS Ubuntu
2013-12-03
Cách tạo một cụm Sharded trong MongoDB bằng VPS Ubuntu 12.04
2013-12-02
Cách sử dụng ApacheBench để thực hiện kiểm tra tải trên VPS Ubuntu 13.10
2013-11-25
Cách cài đặt control panel Ajenti trên Ubuntu 13.04
2013-11-12
Cách thiết lập và cài đặt Django CMS trên VPS Debian 7 hoặc Ubuntu 13
2013-11-12
Cách cài đặt Dropplets trên Ubuntu 13.04 NGINX VPS
2013-10-25
Cách sử dụng HAProxy để thiết lập cân bằng tải HTTP trên VPS Ubuntu
2013-09-26
Cách tạo Omega 4 Drupal Subtheme trên Ubuntu VPS
2013-09-26