Ambry(2)—— 分布式对象存储数据库Ambry集群搭建

分布式对象存储Ambry安装

Authorxusy

 

官网:https://github.com/linkedin/ambry

教程:http://blog.csdn.net/zhxdick/article/details/52964676

 1.从官网拉去源码 Ambry 到本地工程

https://github.com/linkedin/ambry.git

删除本地Modules ,重新加载 gradle 工程

 

执行命令 :allJar 开始打包

 

获取targetambry.jar

2.Linux环境

  - 创建目录 /home/ambry/data

  # mkdir -p /home/ambry/data

  - 创建logs config 文件目录

  # cd /home/ambry/

  # mkdir logs

  # mkdir config

 

其中ambry_1174.jar 是 以 1174 端口上传的

其中ambry.jar 是以10070 端口上传的

修改指定端口,需要在源码中进行全局修改调整

3.Config配置文件

 

- frontend.properties启动前端需要指定的文件

直接从源码中copyconfig目录下

- HardwareLayout.json 集群硬件配置文件

有多少台服务器,配置多少个这个文件

 

集群配置

 

- PartitionLayout.json 集群逻辑分片配置文件

有多少台服务器,配置多少个这个文件

 

集群配置

 

- server.properties 启动服务端指定文件

有多少台服务器,配置多少个这个文件

直接从源码中copy过去,即可

- log4j.properties 日志文件

有多少台服务器,配置多少个这个文件

直接从源码中copy过去,即可

- Server 数字证书集群配置

由于集群配置必须要SSL连接,所以,需要在每一台机器上生成数字证书。

这里用Java自带的keystore生成数字证书。 Keytool是一个Java数据证书的管理工具。Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore

在每台机器上执行:

# cd /home/ambry/config

# keytool -genkeypair -alias certificatekey -validity 7000 -keystore keystore.jks

#keytool -export -alias certificatekey -keystore keystore.jks -rfc -file selfsignedcert.cer

#keytool -import -alias certificatekey -file selfsignedcert.cer -keystore truststore.jks

记住你的配置的keytool文件位置还有密码,在每台机器上配置server.ssl.properties

 

 4.启动Ambry分布式对象存储系统

--Ambry启动命令

--启动server服务端 (以数字证书形式 公钥 私钥)
nohup java -Dlog4j.configuration=file:./config/log4j.properties -jar ambry.jar --serverPropsFilePath ./config/server.ssl.properties --hardwareLayoutFilePath ./config/HardwareLayout.json --partitionLayoutFilePath ./config/PartitionLayout.json 1>> logs/server.log 2>> logs/server-error.log &

--正常启动server服务端
nohup java -Dlog4j.configuration=file:./config/log4j.properties -jar ambry.jar --serverPropsFilePath ./config/server.properties --hardwareLayoutFilePath ./config/HardwareLayout.json --partitionLayoutFilePath ./config/PartitionLayout.json 1>> logs/server.log 2>> logs/server-error.log &

--启动frontend前端服务器
nohup java -Dlog4j.configuration=file:./config/log4j.properties -cp "*" com.github.ambry.frontend.AmbryFrontendMain --serverPropsFilePath ./config/frontend.properties --hardwareLayoutFilePath ./config/HardwareLayout.json --partitionLayoutFilePath ./config/PartitionLayout.json 1>> logs/frontend.log 2>> logs/frontend-error.log &

--Ambry停止命令

kill -9 frontendProcessID
kill -9 serverProcessID

 5.分布式对象存储系统上传文件

 

Ambry分布式对象存储系统,在测试环境搭建采用集群模式。

 

集群服务器:10.28.37.57 1007410.28.37.76 1007410.28.37.77 10074

 

部署路径:/home/ambry/

 

测试环境内网代理地址:http://10.31.78.216:10050/file/

 

测试环境外网代理地址:http://218.107.129.234:10050/file/

 

1、Ambry启动命令

 

  1. 启动服务端

 

nohup java -Dlog4j.configuration=file:./config/log4j.properties -jar ambry.jar --serverPropsFilePath ./config/server.properties --hardwareLayoutFilePath ./config/HardwareLayout.json --partitionLayoutFilePath ./config/PartitionLayout.json 1>> logs/server.log 2>> logs/server-error.log &

 

  1. 启动前端

 

nohup java -Dlog4j.configuration=file:./config/log4j.properties -cp "*" com.github.ambry.frontend.AmbryFrontendMain --serverPropsFilePath ./config/frontend.properties --hardwareLayoutFilePath ./config/HardwareLayout.json --partitionLayoutFilePath ./config/PartitionLayout.json 1>> logs/frontend.log 2>> logs/frontend-error.log &

 

2、Ambry停止命令

 

kill -9 frontendProcessID

 

kill -9 serverProcessID

 

3、验证Ambry健康情况

 

curl http://localhost:1174/healthCheck

 

4、测试Ambry图片、文件、视频上传

 

 

 

 

上传图片,直接利用运动服务现有接口就行,或者到Ambry官方根据对应地址上传:

 

curl -i -H "x-ambry-blob-size : `wc -c demo.gif | xargs | cut -d" " -f1`" -H "x-ambry-service-id : CUrlUpload"  -H "x-ambry-owner-id : `whoami`" -H "x-ambry-content-type : image/gif" -H "x-ambry-um-description : Demonstration Image" http://10.28.37.76:10074/ --data-binary @demo.gif

 

上传视频,直接根据官网地址:

 

curl -i -H "x-ambry-blob-size : `wc -c sport.mp4 | xargs | cut -d" " -f1`" -H "x-ambry-service-id : CUrlUpload"  -H "x-ambry-owner-id : `whoami`" -H "x-ambry-content-type : video/mp4" -H "x-ambry-um-description : Demonstration Image" http://10.28.37.76:10074/ --data-binary @sport.mp4

 

例子:http://10.28.37.76:10074/AAEAAQAAAAAAAAAAAAAAJDJkYThmMTM2LTJkYTEtNGExZi1hZTkzLTY1ZmFiMzQzZmQzMA

 

外网代理地址:

 

http://218.107.129.234:10050/file/AAEAAQAAAAAAAAAAAAAAJDJkYThmMTM2LTJkYTEtNGExZi1hZTkzLTY1ZmFiMzQzZmQzMA

 

 

 

 

 

http://10.28.37.76:10074/AAEAAQAAAAAAAAAAAAAAJDgzZTFlNWZhLTFlMTYtNGFkYi04OGU5LTA4ZWEyYjlmOThhOQ

 

 

 

 

 

 

 

curl -i -H "x-ambry-blob-size : `wc -c sport.flv | xargs | cut -d" " -f1`" -H "x-ambry-service-id : CUrlUpload"  -H "x-ambry-owner-id : `whoami`" -H "x-ambry-content-type : video/flv" -H "x-ambry-um-description : Demonstration Image" http://10.28.37.76:10074/ --data-binary @sport.flv

 

例子:

 

http://10.28.37.76:10074/AAEAAQAAAAAAAAAAAAAAJDAwNWNlYzY4LTBiMzctNGJhNi1iNDkwLTJiMGJjZTljMTJlZg

 

1.1. 生产环境

 

Ambry分布式对象存储系统,在生产环境搭建采用单机模式(考虑服务器资源)。

 

单机服务器:http://xx.xx.xx.xx:10074

 

生产环境外网代理地址:

http://x.xxx.com.cn/newfile

部署路径:/home/ambry/

 

数据data部署路径:/app/ambry/data/

 

 

 

 

 

posted @ 2017-07-06 16:31  xu_shuyi  阅读(1122)  评论(0编辑  收藏  举报