Cách cài đặt và cấu hình Riak2 với Python3 trên Ubuntu 14.04
Riak là một repodata phi quan hệ, noSQL, tập trung vào kiến trúc database phân tán. Với version Riak 2.1.1 mới nhất, tất cả dữ liệu có thể được thực hiện nhất quán mạnh mẽ , trong đó dữ liệu được cập nhật khi truy xuất, trái ngược với cuối cùng nhất quán , trong đó dữ liệu dễ truy cập hơn nhưng không cập nhật.Riak là một sự lựa chọn trong gia đình triển khai noSQL có giá trị khóa, với các đối thủ cạnh tranh bao gồm Redis, MemcacheDB và Aerospike. Là một database key-value , do đó, nó không được tối ưu hóa cho các truy vấn SQL-esque lấy toàn bộ tập dữ liệu.
Yêu cầu
Để làm theo hướng dẫn này, bạn cần :
Một server Ubuntu 14.04 mới
User sudo không phải root, bạn có thể cài đặt theo các bước 2 và 3 của hướng dẫn này
Bước 1 - Cài đặt Riak
Trong phần này, ta sẽ tự cài đặt Riak.
Với việc phát hành version 2.0, Riak đã di chuyển các gói của bạn từ một repository apt tự lưu trữ sang dịch vụ packagecloud.io, vì vậy ta cần điền index apt
với Riak. May mắn là Riak cung cấp một tập lệnh tùy chỉnh thực hiện điều đó.
Đầu tiên, ta sẽ download tập lệnh.
- curl -O https://packagecloud.io/install/repositories/basho/riak/script.deb.sh
Thay vì trực tiếp thực thi nó, trước tiên hãy mở tập lệnh để xác minh nó có chứa những gì ta mong đợi.
- less script.deb.sh
Để tìm nạp các gói qua HTTPS, tập lệnh cần cài đặt gói apt-transport-https
. Nó cũng kiểm tra Tổ chức phát hành certificate , nhập public key và cập nhật index gói của bạn.
Nhấn q
để đóng file , sau đó thực thi tập lệnh.
- sudo bash script.deb.sh
Cuối cùng, cài đặt Riak.
- sudo apt-get install riak=2.1.1-1
Bước 2 - Cấu hình và chạy Riak
Trong phần này, ta sẽ cấu hình và chạy một nút Riak.
Để bắt đầu, ta cần tối ưu hóa máy ảo Erlang của Riak với một số cài đặt được đề xuất. Ta sẽ thực hiện hai sửa đổi: cài đặt khoảng thời gian quét hàng đợi và tắt tính năng nén tải của bộ lập lịch.
Mở file cấu hình của Riak 2.0 mới bằng nano
hoặc editor yêu thích của bạn.
- sudo nano /etc/riak/riak.conf
Bỏ comment erlang.schedulers.force_wakeup_interval = 500
, được đánh dấu bên dưới. Đảm bảo rằng khoảng trống ở đầu cũng bị xóa, để chữ e
là ký tự đầu tiên của dòng.
. . . ## Set scheduler forced wakeup interval. All run queues will be ## scanned each Interval milliseconds. While there are sleeping ## schedulers in the system, one scheduler will be woken for each ... ## Default: 500 ## ## Acceptable values: ## - an integer ## erlang.schedulers.force_wakeup_interval = 500 . . .
Lặp lại quá trình này cho erlang.schedulers.compaction_of_load = false
trong khối ngay sau:
. . . ## Enable or disable scheduler compaction of load. By default ## scheduler compaction of load is enabled. When enabled, load ## balancing will strive for a load distribution which causes as many ... ## Default: false ## ## Acceptable values: ## - one of: true, false ## erlang.schedulers.compaction_of_load = false . . .
Lưu và thoát khỏi file .
Để bắt đầu một nút Riak, hãy chạy:
- sudo riak start
Bạn sẽ thấy như sau.
!!!! !!!! WARNING: ulimit -n is 1024; 65536 is the recommended minimum. !!!!
Thông báo trên cảnh báo rằng hệ thống của ta có giới hạn file mở thấp, giới hạn này hạn chế số lần xử lý file đang mở tại bất kỳ thời điểm nào. Hãy coi mỗi tay cầm như một công cụ viết mà ta sở hữu. Mọi quy trình máy tính đều yêu cầu một công cụ viết, để viết
Theo mặc định, giới hạn của hệ thống đối với các công cụ viết có sẵn là 1024; Riak khuyên bạn nên nâng giới hạn đó lên 65536. Để tăng giới hạn này, hãy xem tài liệu chính thức về Giới hạn file mở của Riak .
Để kiểm tra kỹ xem nút của bạn có đang chạy hay không, hãy sử dụng cách sau.
- sudo riak ping
Lệnh sẽ xuất ra pong
nếu nút đang chạy và sẽ trả về lỗi nếu không.
Để chạy chuỗi kiểm tra Riak được tạo sẵn, hãy chạy:
- sudo riak-admin test
Lệnh trên sẽ xuất ra như sau.
Successfully completed 1 read/write cycle to 'riak@127.0.0.1'
Nút Riak của bạn hiện đã hoạt động.
Bước 3 - Xây dựng một ứng dụng Python ví dụ (Tùy chọn)
Sau đây là một loạt các bước tùy chọn để cài đặt một ứng dụng Python-Riak mẫu. Các hướng dẫn trên là ngôn ngữ bất khả tri và không phụ thuộc vào những điều sau đây để hoạt động bình thường. Nếu bạn không quan tâm đến một ứng dụng Python mẫu, bạn có thể bỏ qua phần Kết luận.
Trước tiên, hãy kiểm tra version Python hiện tại của bạn.
- python --version
Bạn sẽ thấy kết quả :
OutputPython 2.7.6
Ta muốn python
chạy Python 3. Vì vậy, hãy xóa file binary cũ.
- sudo rm /usr/bin/python
Tiếp theo, tạo một softlink đến hệ binary Python 3 ở vị trí của nó.
- sudo ln -s /usr/bin/python3 /usr/bin/python
Nếu bạn chạy lại python --version
ngay bây giờ, bạn sẽ thấy Python 3.4.0
kết quả .
Tiếp theo, ta sẽ cài đặt Pip, trình cài đặt gói được khuyến khích cho các gói Python. Pip cho phép ta dễ dàng quản lý bất kỳ gói Python3 nào mà ta muốn có. Để biết tổng quan về Pip, bạn có thể đọc hướng dẫn này .
Để cài đặt nó, chỉ cần chạy như sau:
- sudo apt-get install python3-pip
Bây giờ, ta cần cài đặt ứng dụng Python-Riak. Một số phụ thuộc cần được thỏa mãn trước tiên:
- sudo apt-get install python3-dev libffi-dev libssl-dev
Cài đặt client .
- sudo pip3 install riak
Cuối cùng, ta sẽ viết mã một ứng dụng mẫu để kiểm tra sự kết hợp Python-Riak. Tạo một folder mới để chứa ứng dụng và tạo một file mới trong đó.
- mkdir ~/test
- sudo nano ~/test/app.py
Dán phần sau vào bên trong. Đây là mã mẫu từ tài liệu chính thức của Riak .
import riak # connect to Riak myClient = riak.RiakClient(pb_port=8087, protocol='pbc') # create new Bucket myBucket = myClient.bucket('test') # store key-value pairs val1 = 1 key1 = myBucket.new('one', data=val1) key1.store() val2 = "two" key2 = myBucket.new('two', data=val2) key2.store() val3 = {"myValue": 3} key3 = myBucket.new('three', data=val3) key3.store() # fetch the data fetched1 = myBucket.get('one') fetched2 = myBucket.get('two') fetched3 = myBucket.get('three') print('Value 1 correct: '+str(val1 == fetched1.data)) print('Value 2 correct: '+str(val2 == fetched2.data)) print('Value 3 correct: '+str(val3 == fetched3.data))
Bây giờ, hãy chạy phần sau để kiểm tra ứng dụng này.
python ~/test/app.py
Nó sẽ xuất ra cảnh báo sau, nhưng điều này có thể được bỏ qua.
Python application warning/usr/local/lib/python3.4/dist-packages/riak/security.py:54: UserWarning: Found OpenSSL 1.0.1f 6 Jan 2014 version, but expected at least OpenSSL 1.0.1g. Security may not support TLS 1.2. warnings.warn(msg, UserWarning)
Bảo mật lớp truyền tải (TLS) 1.2 chỉ đơn giản là một giao thức bảo mật chặt chẽ hơn được xây dựng trên TLS 1.1 và TLS nói chung là một bản nâng cấp từ SSL. Tuy nhiên, Internet Explorer không hỗ trợ TLS 1.1 và 1.2 trên phạm vi global và TLS 1.2 bị tắt trong các version đầu tiên của tất cả các trình duyệt phổ biến. Do đó, ta có thể sử dụng SSL để quản lý các kết nối giữa ứng dụng và repodata Riak một cách an toàn.
Nó sẽ xuất ra như sau:
Value 1 correct: True Value 2 correct: True Value 3 correct: True
Đó là nó!
Kết luận
Đến đây bạn đã cấu hình Riak 2 và kết nối thành công với Python3. Tuy nhiên, cài đặt Riak 2 này không dành riêng cho Python và có thể dễ dàng điều chỉnh sang các ngôn ngữ khác. Để biết thêm thông tin về cách bảo mật Riak, hãy xem các khuyến nghị chính thức của Riak 2 .
Các tin liên quan
Cách cài đặt Solr 5.2.1 trên Ubuntu 14.042015-07-14
Cách thiết lập R trên Ubuntu 14.04
2015-07-13
Cách triển khai ứng dụng Rails với Git Hooks trên Ubuntu 14.04
2015-07-09
Cách sử dụng Prometheus để giám sát server Ubuntu 14.04 của bạn
2015-06-30
Cách cài đặt control panel Ajenti và Ajenti V trên Ubuntu 14.04
2015-06-26
Cách tự động hóa cài đặt WordPress trên Ubuntu 14.04 bằng Ansible
2015-06-25
Cách cài đặt Công cụ giám sát Munin trên Ubuntu 14.04
2015-06-20
Cách cài đặt và cấu hình mod_deflate trên Ubuntu 14.04
2015-06-17
Cách cài đặt MongoDB trên Ubuntu 14.04
2015-06-15
Cách cài đặt và sử dụng ArangoDB trên Ubuntu 14.04
2015-06-12