前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上使用Python3安装和配置Riak2

如何在Ubuntu 14.04上使用Python3安装和配置Riak2

原创
作者头像
小翼111
修改2018-09-30 10:38:16
7360
修改2018-09-30 10:38:16
举报

介绍

Riak是一个noSQL非关系数据存储区,专注于分布式数据库架构。使用最新的Riak 2.1.1版本,可以使所有数据保持一致,其中数据在检索时是最新的,而不是最终一致的,其中数据更易于访问但不是最新的。

Riak是一系列键值noSQL实现中的一种选择,竞争对手包括Redis,MemcacheDB和Aerospike。作为键值数据库,它因此不针对抓取整个数据集的SQL式查询进行优化。

准备

要学习本教程,您需要:

  • 一个新鲜的Ubuntu 14.04 腾讯云CVM
  • 一个sudo非root用户,需要一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

第1步 - 安装Riak

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

随着2.0的发布,Riak已将其软件包从自托管的apt存储库迁移到packagecloud.io服务,因此我们需要使用Riak 填充apt索引。幸运的是,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。我们将进行两项修改:设置队列扫描间隔和禁用调度程序压缩负载。

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

sudo nano /etc/riak/riak.conf

取消注释该erlang.schedulers.force_wakeup_interval = 500行,突出显示如下。确保也删除了前导空格,以便该行e是该行的第一个字符。

. . .
​
## 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重复此过程:

. . .
​
## 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 Open Files限制文档

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

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官方文档中的示例代码。

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官方建议

更多Ubuntu教程请前往腾讯云+社区学习更多知识。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备
  • 第1步 - 安装Riak
  • 第2步 - 配置和启动Riak
  • 第3步 - 构建示例Python应用程序(可选)
  • 结论
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档