diff --git a/asciidoc/anafora1.adoc b/asciidoc/anafora1.adoc new file mode 100644 index 0000000..ae1b8c8 --- /dev/null +++ b/asciidoc/anafora1.adoc @@ -0,0 +1,96 @@ +[#img-0] +image::0.png[0,300,200] + += «Υπολογιστική Νέφους και Υπηρεσίες» + +== Docker Hadoop + + + +===== Θεόδωρος Πουρνάρας 141128 +===== Αίας Παναγιώτης Δρακόπουλος 141020 +===== Αλέξανδρος Βλαχάκης 131127 + +Στην εργασία ασχοληθήκαμε με docker hadoop. + + +Ξεκινήσαμε κάνοντας install το docker στο pc μας. +Συνεχίσαμε κάνοντας clone το hadoop απο το git με το link που μας δόθηκε + +https://github.com/big-data-europe/docker-hadoop + + +Εφόσον εγκαταστάθηκε το hadoop εκτελόντας "docker ps" βλέπουμε τα containers που στήθηκαν. +Εκτελούμε docker-compose up για να τρέχουμε τα containers. +[#img-1] +image::1.png[1,1280,1024] + +[#img-2] +image::2.png[2,1280,1024] +Για να βρούμε την ip address ενός container τρέχουμε : + +"docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id” + +έχοντας τις ip και τις πόρτες από τα containers μπορούμε να τα δούμε στο browser. +[#img-3] +image::3.png[3,1280,1024] +Με την εντολή "docker volume ls" μπορούμε να δούμε τα volumes που έχουμε δημιουργήσει. +Με "docker ps" εμφανίζονται τα docker images που έχουμε φτιάξει,κάνοντας inspect το κάθε +volume παρατηρούμε ότι είναι mount στο αντίστοιχο image. +Για να κάνουμε remove ένα volume "docker volume rm volume-name". +[#img-4] +image::4.png[4,1280,1024] +Φτιάξαμε backup images για τα handoop containers. +362backup είναι το backup image για το container με το id 362… κλπ. +Αυτό δεν είναι αρκετό για να καλύψει το data-volume. +Θα χρειαστεί να πάρουμε το backup of data-volume(εάν υπάρχει)ξεχωριστά. +Για να ξέρουμε το data-directory (data volume location) ενός container, χρησιμοποιούμε την εντολή +‘docker inspect container-name‘. + +[#img-5] +image::5.png[5,1280,1024] + +Με την εντολή "docker network ls" εμφανίζονται τα διαθέσιμα δίκτυα. +Το δίκτυο που θα χρησιμοποιήσουμε για το swarm μας είναι το hadoop-net. +Για να μπούμε εντός ενός container docker exec -t -i nodemanager /bin/bash. + +Εφόσον εγκαταστήσαμε όλα τα παραπάνω και το handoop είναι λειτουργικό,επόμενο βήμα είναι +να συνδεθούμε με ssh στα δύο vm's μας στον ωκεανό. +Το ένα θα το ορίσουμε ως master και το άλλο ως worker. + +Κάναμε ssh στο 1ο μηχάνημα στον ωκεανό με τα στοιχεία μας. + + 1. Κατεβάζουμε το docker. + + 2. Ξανακάνουμε clone το handoop από το παραπάνω link + + 3. Ορίζουμε το node ως slave στο swarm μας με την παρακάτω εντολή + + $ docker swarm join \ + --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ + 192.168.99.100:2377 + +This node joined a swarm as a worker. + +Πληροφορίες: https://docs.docker.com/engine/swarm/swarm-tutorial/add-nodes/ + +[#img-6] +image::6.png[6,1280,1024] +Σύνδεση με μηχάνημα στον ωκεανό. + +Εφόσον καταφέρουμε να ορίσουμε το παραπάνω μηχάνημα στον ωκεανό ως worker στο swarm μας +εκτελώντας "docker node ls" στον Η/Υ μας στον οποίο τρέχει ο manager node θα εμφανιστεί +πίνακας που θα δείχνει τα ID των δυο node, τα ονόματα τους, το status τους, την διαθεσιμότητα τους αλλά και αν είναι manager node. + +π.χ + +[#img-8] +image::8.png[8,1280,1024] + +== Προβλήματα που αντιμετωπίσαμε +[#img-7] +image::7.png[7,1280,1024] + +Δεν μπορέσαμε να κάνουμε Docker compose up λόγω του error "Unsupported config option for services service: 'datanode'" + +Οπότε δεν μπορέσαμε να βάλουμε σε λειτουργία τα containers.