不管是源码编译还是用包安装,riak 的安装不难,只不源码编译安装的通病是不可少:对其它工具的依赖
官方的文档 说明也很清楚了,仔细看看,跟着操作,一般不会出现什么异常。
自己在 CentOS7 上尝试过两次:一次在 aliyun 上源码安装,一次在本地用下载好的包安装,测试时均不发现什么异常。
如果是源码安装,在编译的时候执行
make rel
将会生在一个结点的程序,而如果执行
make devrel
则生成 8 个结点的程序,官方的文档说是 4 个,可能还没来得及更新,实际操作的结果是生成 8 个,可在 Makefile 文件里面修改个数。
之后在 build 目录出现生成的文件。
运行前可考滤使用哪一种格式的配置文件:riak.config
或者app.config
,默认是使用 etc 下的riak.config
, 若要使用app.config
先运行
riak config generate
会生成两个文件:app.xxx.config
和vm.xxx.args
, 把这两个文件移动或者复制到 riak.config 相同目录下即可。
运行 riak 时,app.config 的配置将会覆盖 riak.config 的配置。
运行后可通过执行
riak-admin test
来查看是否可用,如出现:
>Successfully completed 1 read/write cycle to ‘[email protected]’
这样的信息说明 ok 了。默认下通过 http 方式使用 riak 服务时,app.config 中限制了只能使用本地 ip, 即如果 127.0.0.1, 如不更改只能在本机中使用,可通过设置成{http,[{"0.0.0.0",8089}]}
来取消这一限制
接下来可以通过http 端口
或tcp 端口 (pb:protobuf)
去测试:
* http 方式
curl -XPUT HTTP://192.168.100.44:8098/riak/images/1.jpg \-H "Content-type: image/jpeg" --data-binary @file
无错误返回,说明成功把文件上传到 riak, 然后就可以在浏览器中使用HTTP://192.168.100.44:8098/riak/images/1.jpg
链接查看。
在这里ip
和Content-type
根据实际情况选择,这里只是测试用。
* tcp 方式
riak 提供了不同语言的 client,在这里使用 go 的第三方 riak 客户端进行测试。
package demo
import (
"io/ioutil"
"os"
"github.com/tpjg/goriakpbc"
)
func JustDemo() {
println("<<<JustDemo start---------------------------")
filePath := "/Users/Jialin/Desktop/c.png"
f, err := os.Open(filePath)
if err != nil {
panic(err.Error())
return
}
defer f.Close()
thisb, err := ioutil.ReadAll(f)
if err != nil {
panic(err.Error())
return
}
err = SaveFile("demo", "picd.png", thisb)
if err != nil {
panic(err.Error())
return
}
println("-----------------------------JustDemo end>>>")
return
}
//visit data via http url: domain:port/riak/bucketName/key
func SaveFile(bucketName, key string, p []byte) error {
address := "192.168.100.44:8087"
// var DefaultClient *riak.Client
DefaultClient := riak.NewClient(address)
if err := DefaultClient.Connect(); err != nil {
panic("Cannot Connect to Riak Server:" + address)
}
defer DefaultClient.Close()
bucket, err := DefaultClient.NewBucket(bucketName)
if err != nil {
return err
}
obj := bucket.NewObject(key)
// obj.ContentType = "application/octet-stream"
obj.ContentType = "image/png"
obj.Data = p
return obj.Store()
}
正常情况,就可以通过192.168.100.44:8098/riak/demo/picd.png
这个地址访问刚刚上传的图片 (ip:port
/riak/bucket name
/file name
)
本来也想在 freeBSD 上试一下,不过可以是因为装了太新的版本 (freeBSD 10.2,riak 2.1.3), 不官是真接用官方编译好的二进制
程序(无法运行)还是编译安装 (缺少插件) 都没成功。
网上有一些博客作了安装和使用说明,官方也有必要的说明文档(可能更新不够及时,但安装和使用没什么问题), 但自己自己亲自操作过一遍后,以后再次安装或者实际使用过程能顺畅的查找到关键点,不至于再慢慢的看文档。