如何在Ubuntu 14.04与Python3安装和配置Riak2

了Riak是一个NOSQL,非关系型数据存储,重点放在分布式数据库架构。了Riak是一个选择在一个家庭中的键值NOSQL实现的,与竞争对手包括Redis的,MemcacheDB和塞式。

介绍

Riak是一个noSQL,非关系数据存储,关注分布式数据库架构。 与最新了Riak 2.1.1版,所有数据都可以制成强一致性 ,其中,最多为最新时检索数据是,相对于最终一致的 ,其中数据是更容易获得,但没有达到最新。

Riak是一系列键值NoSQL实现的一个选择,竞争对手包括Redis,MemcacheDB和Aerospike。 因此作为键值数据库,它不会优化用于抓取整个数据集的SQL-esque查询。

先决条件

要遵循本教程,您需要:

  • 一个新鲜的Ubuntu 14.04 Droplet

  • sudo的一个非root用户,您可以设置按照第2步和3 本教程

第1步 - 安装Riak

在本节中,我们将安装Riak本身。

随着2.0的发布,已了Riak迁移其从套餐自托管APT仓库到packagecloud.io的服务,所以我们需要来填充apt用了Riak指数。 幸运的是,Riak提供了一个自定义脚本。

首先,我们将下载脚本。

curl -O https://packagecloud.io/install/repositories/basho/riak/script.deb.sh

而不是直接执行它,首先打开脚本,以验证它包含我们期望的。

less script.deb.sh

获取通过HTTPS包,该脚本需要安装apt-transport-https包。 它还检查证书颁发机构,导入公钥,并更新您的包索引。

q关闭文件,然后执行该脚本。

sudo bash script.deb.sh

最后,安装Riak。

sudo apt-get install riak=2.1.1-1

第2步 - 配置和启动Riak

在本节中,我们将配置和启动Riak节点。

首先,我们需要使用一些推荐的设置来优化Riak的Erlang VM。 我们将做两个修改:设置队列扫描间隔和禁用负载的调度程序压缩。

利用打开新的了Riak 2.0的配置文件nano或您喜爱的文本编辑器。

sudo nano /etc/riak/riak.conf

取消对erlang.schedulers.force_wakeup_interval = 500线,如下。 确保主导空间也被删除,因此, e是该行的第一个字符。

/etc/riak/riak.conf
. . .

## 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

. . .

重复此过程中erlang.schedulers.compaction_of_load = false在后直接块:

/etc/riak/riak.conf
. . .

## 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

. . .

保存并退出文件。

要启动Riak节点,请运行:

sudo riak start

您将看到以下内容。

输出
!!!!
!!!! WARNING: ulimit -n is 1024; 65536 is the recommended minimum.
!!!!

上述消息警告我们的系统具有低打开文件限制,这限制了在任何给定时刻打开的文件句柄的数量。 想想每个句柄作为我们自己的写作工具。 每个计算机过程都需要一个写工具,来写

默认情况下,系统对可用写入工具的限制为1024; 建议了Riak提高这一限额65536为了提高此限制,请参见官方了Riak打开文件限制文件

要检查您的节点是否正在运行,请使用以下命令。

sudo riak ping

该命令将输出pong如果节点正在运行,否则将返回一个错误。

要运行一系列预构建的Riak测试,请运行:

sudo riak-admin test

以上命令将输出以下内容。

输出
Successfully completed 1 read/write cycle to 'riak@127.0.0.1'

您的Riak节点现在已启动并正在运行。

第3步 - 构建示例Python应用程序(可选)

以下是设置示例Python-Riak应用程序的一系列可选步骤。 上述指令是语言不可知的,不依赖于以下功能正常工作。 如果你对示例Python应用程序不感兴趣,可以跳过到“结论”部分。

首先,检查你当前的Python版本。

python --version

您应该看到输出:

Python 2.7.6

我们希望有python运行Python 3。所以,让我们删除旧的二进制文件。

sudo rm /usr/bin/python

接下来,创建一个指向Python 3二进制文件的符号链接。

sudo ln -s /usr/bin/python3 /usr/bin/python

如果您运行python --version现在又说,你会看到输出Python 3.4.0

接下来,我们将安装Pip,Python软件包的推荐软件包安装程序。 Pip允许我们轻松地管理任何我们想要的Python3包。 画中画的概述,可以读出这个教程

要安装它,只需运行以下命令:

sudo apt-get install python3-pip

现在,我们需要安装Python-Riak客户端。 首先需要满足几个依赖关系:

sudo apt-get install python3-dev libffi-dev libssl-dev

安装客户端。

sudo pip3 install riak

最后,我们将编写一个示例应用程序来测试Python-Riak组合。 创建一个新文件夹来容纳应用程序并在其中创建一个新文件。

mkdir ~/test
sudo nano ~/test/app.py

粘贴以下内容。 这是从样本代码官方了Riak文档

〜/ test / app.py
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))

现在,运行以下测试此应用程序。

python ~/test/app.py

它将输出以下警告,但这可以忽略。

/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)

传输层安全(TLS)1.2只是一个建立在TLS 1.1之上的更严格的安全协议,TLS反过来通常是从SSL升级。 但是,Internet Explorer不普遍支持TLS 1.1和1.2,并且在所有流行的浏览器的早期版本中禁用TLS 1.2。 因此,我们可以通过SSL来安全地管理应用程序和Riak数据存储之间的连接。

它应该输出以下内容:

输出
Value 1 correct: True
Value 2 correct: True
Value 3 correct: True

而已!

结论

您现在已配置Riak 2并成功连接到Python3。 这个Riak 2安装不是特定于Python,但是,可以轻松适应其他语言。 有关保护了Riak的更多信息,请参阅官方了Riak 2的建议