这次用的版本是mesos-elasticsearch,基于Docker的安装及使用。
地址在http://mesos-elasticsearch.readthedocs.org/en/latest/
利用Docker安装,Docker hub里有两个images,一个是mesos/elasticsearch-scheduler,一个是mesos/elasticsearch-excutor
我的实验环境,是由三台虚拟机组成的mesos集群,ubuntu是master,两个debian是slave(debian和debian2)。
一、从Docker hub里pull下来mesos/elasticsearch-scheduler,mesos/elasticsearch-excutor两个镜像,打上tag后push到registry
二、在master上用marathon来部署elasticsearch的安装
先写一个marathon.json文件
{ "id":"elasticsearch-mesos-scheduler",
"container":{
"docker":{
"image":"ubuntu:5000/el-sc",
"network":"HOST"
}
},
"args":["--zookeeperMesosUrl","zk://ubuntu:2181/mesos","--executorImage","ubuntu:5000/el-ex","--executorForcePullImage","true"],
"cpus":0.2, "mem":512.0,
"env":{
"JAVA_OPTS":"-Xms128m -Xmx256m"},
"instances":1
}
解释一下,这里的instances为1是通过marathon安装scheduler一个,一般会装在master上,然后再通过scheduler安装excutor,默认不设参数的话是三个excutor。ubuntu是master的域名,ubuntu:5000/el-sc是我前面上传到registry的images,ubuntu:5000/el-ex是传到registry的images。
然后用curl提交的marathon
curl -k -XPOST -d @marathon.json -H "Content-Type: application/json" http://ubuntu:8080/v2/apps
3、在浏览器里输入localhost:31100就可以看见el的集群及搜索控制台。(注意:localhost:5050查看节点任务部署的情况,有时候不scheduler
不一定安装在master)
4、测试时利用curl上传json数据(注:上传得端口是31000)
$ curl -XPUT http://debian:31000/twitter/tweet/1 -d '{ "user": "kimchy", "post_date": "2009-11-15T13:12:00", "message": "Trying out elasticsearch, so far so good?" }'
即可在el里查看了。