You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
4.5 KiB
97 lines
4.5 KiB
5 years ago
|
[#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.
|