sequenceiq / docker-ambari

Docker image with Ambari
291 stars 200 forks source link

Some questions : start, commit, restart... #104

Closed abipit closed 8 years ago

abipit commented 8 years ago

Hello,

I explain all my tasks. I installed your docker-ambari on my computer (MacOs) and on a VM Centos with your script : amb-deploy-cluster. (I just add an option " -p 32777:8080 " on the ambari-server command to have access to the UI Ambari). Everythink is ok, then I installed storm and others services and now I'm blocked. Because when I stopped containers and tried to restart using : "docker start amb-consul amb-server amb1 amb2", Ambari don't see any agents (heartbeat lost) because containers changed IP addresses. What are your recommandations about that ? And how can I do backup my actions (install and configuration of storm for example) and start all the components after a stop the containers ? If I commit the image, what command I need to use after to start my 4 containers ?

Sorry I'm a little lost now. Thank you.

abipit commented 8 years ago

Hello, As you recommand, I launch an EC2 instance on AWS. I downloaded docker-ambari-master.zip, source ambari-functions, start the cluster (amb-start-cluster 3), configure the cluster and all is complete ! But problem, I can't reach the Ambari UI on port 8080, no response. Should I manually associate the port 8080 with the host by editing your ambari-functions ? Thanks a lot for your response.

martonsereg commented 8 years ago

Hi, yes, the ambari-functions doesn't expose the container's port to the host, so you'll need to edit and add -p 8080:8080 or something similar to the docker run command of the ambari server. Also check on the EC2 console if port 8080 is open on the AWS security group.

abipit commented 8 years ago

Ok thank you martonsereg :+1: I added and it's ok, I reach the Ambari UI.

Other question please if you know, I want also open the port for storm UI, all my containers are already started, what is the procedure ? If i stop the container amb-server, commit to the new image, and start the new amb-sever, I had a new ip address for amb-server and there are conflics with the nodes. How can I do ? Thanks a lot

martonsereg commented 8 years ago

There is no way to expose a docker container's port to the host while the container is running, so you'll have to restart the container.

regarding your previous question about restarting: The ambari-functions script is not an official Hortonworks tool, just a small sandbox to try out things quickly through docker, so things like restarts or saving configurations, etc are not supported out of the box. If you're looking for something more advanced, I suggest to try out Cloudbreak: http://sequenceiq.com/cloudbreak-docs/release-1.1.0/

Btw restarting the containers can be done with a little trick: the docker service hands out IP addresses in order starting from 172.17.0.2, so if you stop the containers, restart the docker daemon and start the containers in the same order they'll get the same IP addresses. It's not that straightforward, but at the moment this is the only way to do it. I'm also not sure if this works with the latest Docker, I've tested it with an earlier version.

abipit commented 8 years ago

Ok thank you for your answer. Good idea the trick with the docker daemon but with my others containers, all the containers will be restarted.

As you suggest, I will try Cloudbreak to see.

Just a last question, there is no config file in the ambari-server where I could change the ip adress of the nodes ? Thanks

abipit commented 8 years ago

Hi @martonsereg Can I add a service when the amb-deploy-cluster is launched ? For example, I would storm directly installed & started after the amb-deploy-cluster is complete. How can I do that ? Is it possible ? Thanks a lot.

martonsereg commented 8 years ago

Hi, it is possible but afaik the amb-deploy-cluster script is not prepared to do that out of the box. Check it here. You will need to setup your custom blueprint and add the storm service (and your configuration) there, then modify the script to use your new blueprint. Here's an example of a blueprint that has storm configured.