|
@ -655,6 +655,84 @@ Containers. Τα Containers είναι απομονομένα το ένα από |
|
|
<pre class="highlight"><code class="language-bash" data-lang="bash">git clone git@github.com:big-data-europe/docker-hadoop.git</code></pre> |
|
|
<pre class="highlight"><code class="language-bash" data-lang="bash">git clone git@github.com:big-data-europe/docker-hadoop.git</code></pre> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="sect3"> |
|
|
|
|
|
<h4 id="_παραγωγή_των_docker_image">Παραγωγή των Docker Image</h4> |
|
|
|
|
|
<div class="paragraph"> |
|
|
|
|
|
<p>Για την παραγωγή όλων των Docker Images θα χρησιμοποιήσουμε το αρχείο <strong>Makefile</strong> που διαθέτει το project. |
|
|
|
|
|
Με την εντολή (<strong>make</strong>) γίνεται η παραγωγή των απαραίτητων Docker Images. Έπειτα τα dockers που δημιουργήθηκαν |
|
|
|
|
|
μπορούμε να τα ερευνήσουμε εκτελώντας την εντολή <strong>docker images</strong> . Ένα στιγμιότυπο της μηχανής leader παρουσιάζεται |
|
|
|
|
|
παρακάτω.</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="listingblock"> |
|
|
|
|
|
<div class="content"> |
|
|
|
|
|
<pre class="highlight"><code class="language-txt" data-lang="txt">REPOSITORY TAG IMAGE ID CREATED SIZE |
|
|
|
|
|
bde2020/hadoop-resourcemanager 1.1.0-hadoop2.7.1-java8 c1e9b215cb9b 9 hours ago 1.37GB |
|
|
|
|
|
bde2020/hadoop-historyserver 1.1.0-hadoop2.7.1-java8 495fd0b43074 9 hours ago 1.37GB |
|
|
|
|
|
bde2020/hadoop-nodemanager 1.1.0-hadoop2.7.1-java8 d61cf73e6c0c 9 hours ago 1.37GB |
|
|
|
|
|
bde2020/hadoop-datanode 1.1.0-hadoop2.7.1-java8 51340609864b 9 hours ago 1.37GB |
|
|
|
|
|
bde2020/hadoop-namenode 1.1.0-hadoop2.7.1-java8 69b2a3c5f4dd 9 hours ago 1.37GB |
|
|
|
|
|
bde2020/hadoop-submit master e9f7299c31a5 9 hours ago 1.37GB</code></pre> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="sect3"> |
|
|
|
|
|
<h4 id="_docker_compose_services">Docker Compose Services</h4> |
|
|
|
|
|
<div class="paragraph"> |
|
|
|
|
|
<p>Έπειτα μέσω ενός YAML αρχείου θα κάνουμε expose τις απαραίτητες υπηρεσίες σε κάθε κόμβο της τοπολογίας |
|
|
|
|
|
του ενός leader και των τεσσάρων slaves. Η τοπολογία που χρησιμοποιήσαμε στο cluster που διαθέτουμε είναι |
|
|
|
|
|
η εξής:</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="ulist"> |
|
|
|
|
|
<ul> |
|
|
|
|
|
<li> |
|
|
|
|
|
<p>expose τεσσάρων κόμβων ως κόμβους οι οποίοι θα προσφέρουν του υπολογιστικούς πόρους τους για |
|
|
|
|
|
την επεξεργασία δεδομένων.</p> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li> |
|
|
|
|
|
<p>expose ενός κόμβου ως manager, HDFS και YARN.</p> |
|
|
|
|
|
</li> |
|
|
|
|
|
</ul> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="imageblock"> |
|
|
|
|
|
<div class="content"> |
|
|
|
|
|
<img src="fig1.png" alt="fig1"> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="title">Figure 1. General Graph of Topology</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="paragraph"> |
|
|
|
|
|
<p>Παρακάτω θα απαριθμήσουμε την κάθε υπηρεσία όπου το <strong>docker compose</strong> κάνει expose.</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="ulist"> |
|
|
|
|
|
<ul> |
|
|
|
|
|
<li> |
|
|
|
|
|
<p><strong>nodename</strong> : Υπηρεσία η οποία γίνεται expose σε έναν κόμβο της τοπολογίας, στον leader κόμβο του |
|
|
|
|
|
cluster μας. Το NodeName αποτελεί κομβική υπηρεσία του HDFS. Πρακτικά είναι υπεύθυνος να κρατάει το |
|
|
|
|
|
<strong>direcotry tree</strong> όλων των αρχείων του System File, και καταγράφει την θέση κάθε δεδομένου (data) κατά |
|
|
|
|
|
μήκος του Cluster.</p> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li> |
|
|
|
|
|
<p><strong>datanode</strong> : Υπηρεσία η οποία γίνεται expose σε όλους τους κόμβους της τοπολογίας ως κόμβοι |
|
|
|
|
|
οι οποίοι θα μπορούν να εκτελέσουν υπολογισμούς. Τα DataNode στιγμιότυπα έχουν την ικανότητα |
|
|
|
|
|
να επικοινωνούν μεταξύ τους, το οποίο γίνεται όταν οι DataNodes αναπαράγουν τα data.</p> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li> |
|
|
|
|
|
<p><strong>resource manager</strong>: Υπηρεσία η οποία γίνεται expose μόνο στον leader κόμβο της τοπολογίας μας. |
|
|
|
|
|
Ουσιαστικά αυτή η υπηρεσία αφορά τον YARN ο οποίος είναι υπεύθυνος για την διαχείριση των υπολογιστικών |
|
|
|
|
|
πόρων και των πόρων του δικτύου που διέπει τις μηχανές, την χρονοδρομολόγηση των Tasks και τον προγραμματισμό |
|
|
|
|
|
της εφαρμογής (e.g. MapReduce jobs).</p> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li> |
|
|
|
|
|
<p><strong>node manager</strong>: Υπηρεσία που γίνεται expose σε όλους τους κόμβους της τοπολογίας. Αποτελεί μία ειδική |
|
|
|
|
|
περίπτωση <strong>TaskTracker</strong> ο οποίος είναι πιο ευέλικτος από τον TaskTracker. Είνα υπεύθυνος για τον δυναμική |
|
|
|
|
|
δέσμαυση των πόρων κάθε μηχανής. Ακόμα, για τον Node Manager ισχύει ότι αποτελεί ένα deamon του YARN.</p> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li> |
|
|
|
|
|
<p><strong>history server</strong>: Υπηρεσία που τρέχει μόνο στον leader του cluster μας. Εκτελεί ένα REST-API το οποίο |
|
|
|
|
|
επιτρέπει στον τελικό χρήστη να αποκτήσει την κατάσταση κάθε εφαρμογής MapReduce η οποία έχει τερματίσει.</p> |
|
|
|
|
|
</li> |
|
|
|
|
|
</ul> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
@ -671,12 +749,15 @@ Containers. Τα Containers είναι απομονομένα το ένα από |
|
|
</li> |
|
|
</li> |
|
|
</ul> |
|
|
</ul> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="paragraph"> |
|
|
|
|
|
<p>©</p> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div id="footer"> |
|
|
<div id="footer"> |
|
|
<div id="footer-text"> |
|
|
<div id="footer-text"> |
|
|
Last updated 2020-06-13 00:09:47 +0300 |
|
|
Last updated 2020-06-13 12:12:36 +0300 |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</body> |
|
|
</body> |
|
|