<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Olivia's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/oliviaklose/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/oliviaklose/feed.xml</link>
    <description>All on Big Data and Windows Azure</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:46:03 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Moved / Umgezogen</title>
      <link>https://docs.microsoft.com/archive/blogs/oliviaklose/moved-umgezogen</link>
      <pubDate>Tue, 24 Feb 2015 10:43:28 GMT</pubDate>
      <dc:creator><![CDATA[OliviaKlose]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/oliviaklose/2015/02/24/moved-umgezogen/</guid>
      <description><![CDATA[I have moved my blog to http://oliviaklose.com. There I will continue to blog on anything Azure, Big...]]></description>
      <content:encoded><![CDATA[<p>I have moved my blog to <a href="http://oliviaklose.com">http://oliviaklose.com</a>. There I will continue to blog on anything Azure, Big Data, Machine Learning and the like. Do check it out! :)</p> <p>Ich bin umgezogen (blogmäßig)! Unter <a href="http://oliviaklose.com">http://oliviaklose.com</a> schreibe ich weiterhin über Azure, Big Data, Machine Learning und ähnliches. Wir sehen uns im neuen Blog :)</p>]]></content:encoded>
    </item>
    <item>
      <title>Machine Learning (1): Was, was nicht und wann?</title>
      <link>https://docs.microsoft.com/archive/blogs/oliviaklose/machine-learning-1-was-was-nicht-und-wann</link>
      <pubDate>Fri, 13 Feb 2015 08:57:11 GMT</pubDate>
      <dc:creator><![CDATA[OliviaKlose]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/oliviaklose/2015/02/13/machine-learning-1-was-was-nicht-und-wann/</guid>
      <description><![CDATA[Machine Learning (oder richtig auf Deutsch “Maschinelles Lernen”) oder Data Science ist überall, sei...]]></description>
      <content:encoded><![CDATA[<p align="justify">Machine Learning (oder richtig auf Deutsch “Maschinelles Lernen”) oder Data Science ist überall, sei es um die Ergebnisse der Fußball-WM vorherzusagen, persönliche Empfehlungen in Amazon oder Netflix zu erhalten oder in der Produktion präventive Wartunsmaßnahmen zu ergreifen. Dementsprechend sind Data Scientists eine der heiß begehrtesten Leute in der IT-Branche, um aus der Datenflut Erkenntnisse zu gewinnen.</p> <p align="justify">Diese <strong>Machine Learning</strong> Serie ist wie folgt aufgebaut (und wird natürlich stets erweitert):</p> <p align="justify"><strong><font size="6">1 Was ist das (nicht) und wann?</font></strong><br />2 Supervised versus Unsupervised Learning<br />3 Machine Learning Prozess<br />4 Azure Machine Learning: Was und Warum?<br />5 Experiment in Azure ML: Binäre Klassifizierung – Flugverspätungen</p> <p align="justify">Wie man sehen kann, wird diese Serie sich mit <strong><a href="http://studio.azureml.net/" target="_blank">Microsoft Azure Machine Learning</a></strong> beschäftigt – ein Dienst von Microsoft Azure, mit dem Entwickler Predictive Analytics-Modelle anhand von Machine Learning-Algorithmen bauen und als Web Service veröffentlichen können.</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/AzureMachineLearning_00EAB562_10C8DB06.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/AzureMachineLearning_5F00_00EAB562_5F00_10C8DB06.png"><img title="AzureMachineLearning_00EAB562" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="AzureMachineLearning_00EAB562" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/AzureMachineLearning_00EAB562_thumb_4DEC968B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/AzureMachineLearning_5F00_00EAB562_5F00_thumb_5F00_4DEC968B.png" width="400" height="400" /></a></p> <h1>Wo findet man Machine Learning?</h1> <p align="justify">Machine Learning findet man überall. Meine Lieblingsbeispiele von Machine Learning findet man auch gleich im Alltag: die Kinect, Skype Translator und Netflix.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-kinect_5AE9074D.jpg" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_kinect_5F00_5AE9074D.jpg"><img title="1 kinect" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="1 kinect" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-kinect_thumb_411761CF.jpg" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_kinect_5F00_thumb_5F00_411761CF.jpg" width="500" height="191" /></a></p> <p align="justify">Die <strong>Kinect</strong> ist ein gutes Beispiel, wo Machine Learning und Computer Vision sich überlappen. Das Ziel von Machine Learning bei der Kinect ist es, alle Körperteile in allen möglichen Positionen, Körpergrößen und –formen in Super-Echtzeit zu tracken/folgen:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-kinect_5E8C438C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_kinect_5F00_5E8C438C.png"><img title="1 kinect" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="1 kinect" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-kinect_thumb_3D9B6196.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_kinect_5F00_thumb_5F00_3D9B6196.png" width="550" height="158" /></a></p> <p align="justify">Um die Sensorik innerhalb der Kinect kümmere ich mich jetzt nicht, sondern eher, was danach kommt: die erfassten Bilder zu verstehen. Angefangen mit einem Tiefenbild wird anhand von <a href="http://de.wikipedia.org/wiki/Random_Forest" target="_blank">Random Forests</a> jedes einzelne Pixel des Tiefenbilds (ohne Hintergrund) in eines der Körperteil-Kategorien klassifiziert. Daraufhin werden die Körperbereiche in “body joints” (quasi Gelenkpositionen) mit <a href="http://de.wikipedia.org/wiki/Clusteranalyse" target="_blank">Clustering</a> “zusammengefasst”, um diese dann miteinander zu einem Skelett zu verbinden. Natürlich ist das hier sehr oberflächlich behandelt; das Paper <a href="http://research.microsoft.com/apps/pubs/default.aspx?id=145347" target="_blank">Real-Time Human Pose Recognition in Parts from a Single Depth Image</a> (2011) von MS Research&nbsp; gibt noch&nbsp; viel tiefgründigere Informationen. Was nennenswert ist, ist dass für das Trainieren der Machine Learning Modelle hinter der Kinect (u.a. Random Forests und Clustering) 100.000 verschiedene Köperhaltungen vor der Kinect “durchgespielt” wurden.</p> <p align="justify">Was für großartige Sachen das Microsoft Research (Cambridge), in den Bereichen Computer Vision und Machine Learning machen und wo man ihre Forschungen im alltäglichen Leben wiederfindet, könnt ihr in diesem <a href="http://blogs.technet.com/b/machinelearning/archive/2014/08/06/machine-learning-meet-computer-vision.aspx" target="_blank">Blog</a> nachlesen.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-skype-translator_367EB5CF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_skype_2D00_translator_5F00_367EB5CF.png"><img title="1 skype translator" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="1 skype translator" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-skype-translator_thumb_35A8E096.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_skype_2D00_translator_5F00_thumb_5F00_35A8E096.png" width="500" height="312" /></a></p> <p align="justify"><a href="http://blogs.skype.com/2014/12/15/skype-translator-preview-an-exciting-journey-to-a-new-chapter-in-communication/" target="_blank">Skype Translator</a> ist ein weiteres Beispiel, wo einige Bereiche von Machine Learning (also Spracherkennung, automatische Übersetzung und weitere Machine Learning Methoden) unseren Alltag beeinflussen. Was <strong>Skype Translator </strong>macht, ist zunächst Deine Stimme oder eher Deine Worte erkennen (<a href="http://en.wikipedia.org/wiki/Deep_learning" target="_blank">Deep Learning</a> oder Deep Neural Networks), die erkannten Worte “bereinigen” und dann in eine andere Sprache übersetzen. Beim Übersetzen sind wiederum Machine Learning Modelle im Einsatz. Natürlich kann das Modell nicht alles schon perfekt aussagen; deswegen wir das System immer weiter verbessert, indem wir Feedback geben. In diesem <a href="https://www.youtube.com/watch?v=rek3jjbYRLo" target="_blank">Video</a> kann man Skype Translator schön im Einsatz sehen – vor allem kurz nach der gewonnen Fußball-WM 2014 :)</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-netflix_471BD21F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_netflix_5F00_471BD21F.png"><img title="1 netflix" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="1 netflix" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-netflix_thumb_10D25C23.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_netflix_5F00_thumb_5F00_10D25C23.png" width="500" height="232" /></a></p>  <p align="justify">Und natürlich kann man im Wohnzimmer <strong>Netflix</strong> fast gar nicht mehr wegdenken. Hinter den persönlichen Empfehlungen versteckt ebenfalls sich Machine Learning. Diese Empfehlungen (<a href="http://en.wikipedia.org/wiki/Netflix_Prize" target="_blank">Collaborative Filtering</a>) basieren auf vielen Faktoren: was Du bisher gesehen hast, wie oft Du einen Film geschaut hast, wie schnell Du eine Serie verschlungen hast, ob und wann Du in einem Film oder einer Serie pausiert hast, etc. Langfristig soll der Empfehlungsdienst die Übersichtsseite über alle angebotenen Filme und Serien <a href="http://techcrunch.com/2014/05/19/netflix-neil-hunt-internet-week/" target="_blank">ersetzen</a>, vor allem weil die bisherigen Empfehlungen von Netflix sowieso schon als Navigation für 75% der Abonnenten dient. Sehr interessant ist, wie Netflix Big Data für die Erstellung von neuen eigenen Serien (Netflix Original Series) nutzt. So wurde 100 Millionen USD investiert, um auf eine übliche Pilotfolge zu verzichten und gleich ein 2-Staffel-Remake aus der gleichnamigen BBC-Miniserie House of Cards zu produzieren. Dieses durchdachte Risiko basiert auf Daten, die besagen, dass Fans von der Original-BBC-Serie ebenfalls Filme mit Kevin Spacey oder produziert von David Fincher verschlingen. Hat sich jedenfalls bei dem Zuwachs von 17 Millionen Abonnenten gelohnt – und für den Zuschauer selbst alle Male.</p> <p>Darüber hinaus ist <strong>Predictive Maintenance</strong> ein guter Anwendungsfall von Machine Learning in der Industrie: sei es in der Produktion, darüber benachrichtig zu werden, dass Gerät/Sensor A zu einer Wahrscheinlichkeit von 90% in den nächsten zwei Wochen ausfallen wird, oder in der Kundenansprache, wenn man als Kunde einen Anruf erhält, weil aufgrund des Fahrverhaltens die Bremsscheiben in der nächsten Woche auszutauschen.</p> <h1></h1> <h1>Was ist Machine Learning?</h1> <p align="justify">Also akzeptiert, Machine Learning kann man in allen möglichen Szenarien gut einsetzen. Was ist denn jetzt genau Machine Learning? Für Machine Learning gibt es zwei gängige Definitionen:</p> <p align="center">A computer program is said to learn from <strong>experience E </strong>with respect to <br />some class of <strong>tasks T </strong>and <strong>performance measure P</strong>, <br />if its performance at tasks in T, as measured by P <br />improves with experience E.</p> <p align="right">Tom M. Mitchell, <a href="http://www.cs.cmu.edu/~tom/mlbook.html" target="_blank"><em>Machine Learning</em></a>, 1997</p> <p align="justify">In anderen Worten, je mehr Erfahrungen E wir machen, desto besser können wir die Aufgabe T lösen (gemessen an Leistung P). </p> <p align="justify">Also ganz nach dem Motto “Übung macht den Meister”. Zum Beispiel, mein Schachspiel verbessert sich, je mehr Schach ich gegen verschiedene Spieler spiele:</p> <ul> <li> <div align="justify">T = Schach spielen,</div></li> <li> <div align="justify">P = Anzahl an Schachspielen, die ich gewonnen habe,</div></li> <li> <div align="justify">E = Anzahl an Schachspielen, die ich gegen andere gespielt habe.</div></li></ul> <p align="justify">Ein anderes Beispiel ist die Platzierung von Werbungen auf Internetseiten. Mein Ziel ist, so viele Nutzer zum Anklicken der einen Werbung zu bringen. Je mehr Leute auf die Internetseite kommen, können wir mehr über diese in Erfahrung bringen, ob sie überhaupt auf die Werbung klicken oder nicht. Dies können wir dann wiederum in die Optimierung der Werbung (in Farbe, Größe, etc.) einfließen lassen, um die Werbung und dann auch die Klickrate wieder zu verbessern.</p> <p align="justify">Eine weitere Definition von Machine Learning ist wie folgt:</p> <p align="center">Machine learning is programming computers to optimize a <br />performance criterion using <strong>example data</strong> or <strong>past experience</strong> .</p> <p align="right"><em>Introduction to Machine&nbsp; Learning</em>, Second Edition, MIT Press</p> <p align="justify">In dieser Definition ist speziell von Beispieldaten und historischen Daten die Rede. Was oft unterschätzt wird, ist, dass für das Erstellen von Machine Learning Modellen bereits vorhandene Daten nötig sind, und zwar viele von denen. Basiert auf den Modellen kann man dann bei künftigen Events “die Zukunft vorhersagen”.</p> <p align="justify">Zusammengefasst kann man Machine Learning (ML) so darstellen:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-was-ist-ml_68C23DB4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_was_2D00_ist_2D00_ml_5F00_68C23DB4.png"><img title="1 was ist ml" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="1 was ist ml" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-was-ist-ml_thumb_33B83F35.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_was_2D00_ist_2D00_ml_5F00_thumb_5F00_33B83F35.png" width="550" height="236" /></a></p> <p>Bei ML reden wir von System, die</p> <ul> <li>sich automatisch an neue Trends (durch eingeflossenes Feedback) und ohne manueller Eingabe anpassen,</li> <li>neue Daten auf Basis von historischen Daten vorhersagen bzw. Wahrscheinlichkeiten von Ausgängen berechnen,</li> <li>Aktionen optimieren (<a href="http://de.wikipedia.org/wiki/Deskriptive_Statistik" target="_blank">Deskriptive Statistik</a>),</li> <li>Informationen aus vorhandenen (Beispiel-)Daten extrahieren, oder</li> <li>aus einem großen Datentopf die relevanten Daten und Spalten/Attribute herausfinden und dementsprechend die Daten zusammenfassen.</li></ul> <p>Wir werden auf einige Punkte detaillierter in <em>3 Supervised versus Unsupervised Learning </em>eingehen.</p> <h1>Was ist Machine Learning nicht?</h1> <p align="justify">Ebenso wichtig ist schon mal im Voraus die richtige Erwartungshaltung gegenüber ML zu haben, und zu verstehen, was ML <strong>nicht</strong> ist:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-was-ist-ml-nicht_10F70778.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_was_2D00_ist_2D00_ml_2D00_nicht_5F00_10F70778.png"><img title="1 was ist ml nicht" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="1 was ist ml nicht" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-was-ist-ml-nicht_thumb_3BD1FC3B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_was_2D00_ist_2D00_ml_2D00_nicht_5F00_thumb_5F00_3BD1FC3B.png" width="550" height="236" /></a></p> <p align="justify">Machine Learning funktioniert nur, wenn man eine Datenmodellierung vornimmt und die einzelnen Spalten/Attribute/Features genauer untersucht (Feature Engineering), da nicht jedes Feature relevant ist. Die Erwartung, dass mit Machine Learning automatisch (ohne Eigenarbeit) einem gesagt wird, welche Daten denn relevant sind oder was ich am Montag machen soll, ist falsch – also kein “Garbage-In-Knowledge-Out”. Den Datenmüll muss man schon vor dem ML-Modellbau säubern.</p> <p align="justify">ML ist auch nicht dafür gedacht, Regeln auswendig zu lernen. Wenn bereits viele Regeln vorhanden sind, die alles abdecken, ist ML einfach ein Overkill. ML ist nur dann in einem Bereich gut geeignet, wenn man nicht alles mit Regeln abdecken kann, z.B. Handschrift- oder Spracherkennung.</p> <h1>Wann soll ich Machine Learning einsetzen?</h1> <p align="justify"><a href="https://twitter.com/josephsirosh" target="_blank">Joseph Sirosh</a>, CVP für Machine Learning bei Microsoft, hat auf einer Konferenz vier Regeln aufgelistet, wann ML eine gute Option ist:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-wann-ml_78F5B7C0.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_wann_2D00_ml_5F00_78F5B7C0.png"><img title="1 wann ml" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="1 wann ml" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-wann-ml_thumb_6F305048.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_wann_2D00_ml_5F00_thumb_5F00_6F305048.png" width="550" height="236" /></a></p> <p align="justify">In Deutsch:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-wann-ml---de_45BC0F08.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_wann_2D00_ml_2D002D002D00_de_5F00_45BC0F08.png"><img title="1 wann ml - de" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="1 wann ml - de" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-wann-ml---de_thumb_0588863F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_wann_2D00_ml_2D002D002D00_de_5F00_thumb_5F00_0588863F.png" width="550" height="236" /></a></p> <ul> <li> <div align="justify">Komplex, z.B. Natural Language Processing, Handschrifterkennung, Computer Vision</div></li> <li> <div align="justify">Zum Skalieren, z.B. Spam, Betrugsaufdeckung (Fraud Detection), Gesundheitswesen (CTs,…)</div></li> <li> <div align="justify">Personalisiert, z.B. Amazon, Netflix</div></li> <li> <div align="justify">Autonomes Lernen, z.B. Robotik </div></li></ul> <p align="justify">Pi mal Daumen: Wenn Du viele Daten bereits vorhanden hast (Millionen von Datenpunkten), eignet sich ML ganz gut. Wenn jedoch schon viele Regeln vorhanden sind oder man wenige Daten hat, sollte man die Finger von ML zunächst noch lassen.</p>]]></content:encoded>
    </item>
    <item>
      <title>Jumpstarting Big Data Projects / Architectural Considerations of HDInsight Applications @ OOP 2015, TechEd Europe 2014 and PASS Summit 2014</title>
      <link>https://docs.microsoft.com/archive/blogs/oliviaklose/jumpstarting-big-data-projects-architectural-considerations-of-hdinsight-applications-oop-2015-teched-europe-2014-and-pass-summit-2014</link>
      <pubDate>Tue, 03 Feb 2015 02:25:57 GMT</pubDate>
      <dc:creator><![CDATA[OliviaKlose]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/oliviaklose/2015/02/03/jumpstarting-big-data-projects-architectural-considerations-of-hdinsight-applications-oop-2015-teched-europe-2014-and-pass-summit-2014/</guid>
      <description><![CDATA[Last week, my esteemed colleague Alexei Khalyako (from AzureCAT – the Azure Customer Advisory Team)...]]></description>
      <content:encoded><![CDATA[<p align="justify">Last week, my esteemed colleague <a href="http://alexeikh.wordpress.com/" target="_blank">Alexei Khalyako</a> (from <a href="https://twitter.com/msazurecat" target="_blank">AzureCAT</a> – the Azure Customer Advisory Team) and myself were speaking at the <a href="http://www.oop-konferenz.de/" target="_blank">OOP 2015 – Software meets Business</a> in Munich on jumpstarting Big Data projects. In fact, this session was also the foundation of our talks at <a href="https://channel9.msdn.com/Events/TechEd/Europe/2014" target="_blank">TechEd Europe 2014</a> and <a href="http://www.sqlpass.org/summit/2014/Live.aspx" target="_blank">PASS Summit 2014</a>.</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/Jumpstarting-Big-Data-Projects---small_7394A3ED.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/Jumpstarting_2D00_Big_2D00_Data_2D00_Projects_2D002D002D00_small_5F00_7394A3ED.png"><img title="Jumpstarting Big Data Projects - small" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="Jumpstarting Big Data Projects - small" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/Jumpstarting-Big-Data-Projects---small_thumb_66533C3C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/Jumpstarting_2D00_Big_2D00_Data_2D00_Projects_2D002D002D00_small_5F00_thumb_5F00_66533C3C.png" width="402" height="480" /></a></p> <p align="justify">Here, we were walking through the architectural considerations and decisions made in building an HDInsight solution. Short reminder: <a href="http://azure.microsoft.com/en-us/services/hdinsight/" target="_blank">HDInsight</a> is a Hadoop implementation as a platform as a service (PaaS) on Microsoft Azure. The HDInsight solution was to drive visitor experience and provide a personalised view using recommendations.</p> <p align="justify">The session is structured along the typical Data Warehouse workflow:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/architecture_4AABEC00.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/architecture_5F00_4AABEC00.png"><img title="architecture" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="architecture" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/architecture_thumb_5E5B6645.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/architecture_5F00_thumb_5F00_5E5B6645.png" width="640" height="303" /></a></p> <p align="justify">As we go through every step we highlight the agony of choice between various technologies (both open source and Microsoft Azure services) especially in the big data space:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-agony-of-choice_34E72505.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_agony_2D00_of_2D00_choice_5F00_34E72505.png"><img title="2 agony of choice" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="2 agony of choice" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-agony-of-choice_thumb_3FA70D0B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_agony_2D00_of_2D00_choice_5F00_thumb_5F00_3FA70D0B.png" width="640" height="365" /></a></p> <p>Mapping the technology options to each step within the data warehouse workflow:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-architecture_31D757C1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_architecture_5F00_31D757C1.png"><img title="3 architecture" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 architecture" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-architecture_thumb_39EE8416.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_architecture_5F00_thumb_5F00_39EE8416.png" width="640" height="353" /></a></p> <p>And the final implementation workflow:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-implementation_5E166F56.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_implementation_5F00_5E166F56.png"><img title="4 implementation" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="4 implementation" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-implementation_thumb_290C70D7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_implementation_5F00_thumb_5F00_290C70D7.png" width="640" height="358" /></a></p> <p>You can find the presentation also <a href="http://de.slideshare.net/oliviaklose/jumpstarting-big-data-projects" target="_blank">here on slideshare</a>.</p> <p>&nbsp;</p> <p><iframe height="490" src="https://onedrive.live.com/embed?cid=067EEF54D53CF2FE&amp;resid=67EEF54D53CF2FE%21160936&amp;authkey=AGWWGYPgpMb8eKg&amp;em=2" frameborder="0" width="603" scrolling="no"></iframe></p>]]></content:encoded>
    </item>
    <item>
      <title>Hadoop on Linux on Azure – Step-by-Step: Install Hadoop (3)</title>
      <link>https://docs.microsoft.com/archive/blogs/oliviaklose/hadoop-on-linux-on-azure-step-by-step-install-hadoop-3</link>
      <pubDate>Wed, 02 Jul 2014 04:16:47 GMT</pubDate>
      <dc:creator><![CDATA[OliviaKlose]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/oliviaklose/2014/07/02/hadoop-on-linux-on-azure-step-by-step-install-hadoop-3/</guid>
      <description><![CDATA[In this article, we set up a Hadoop cluster on Azure using virtual machines running Linux. More...]]></description>
      <content:encoded><![CDATA[<p align="justify">In this article, we set up a Hadoop cluster on Azure using virtual machines running Linux. More specifically, we use the HDP 2.1 on Linux distribution by <a href="http://hortonworks.com/" target="_blank">Hortonworks</a> that also provides the HDP distributions for the Windows platform. Furthermore, we install Hadoop with <a href="http://ambari.apache.org/" target="_blank">Ambari</a>, an Apache project that provides an intuitive UI for provisioning, managing and monitoring a Hadoop cluster.</p> <h1 align="justify">Contents</h1> <p><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/06/17/hadoop-on-linux-on-azure-1.aspx">1 Introduction</a><br /><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/06/18/hadoop-on-linux-on-azure-step-by-step-build-the-infrastructure-2.aspx">2 Step-by-Step: Build the Infrastructure</a><br /><strong>3 Install a Hadoop Distribution</strong></p> <h1>Step-by-Step: Install a Hadoop Distribution</h1> <ol> <li><a href="#ambari" target="_blank">Install Ambari Server</a>  </li><li><a href="#hadoop" target="_blank">Install Hadoop</a></li></ol> <p align="justify">Now that we have set up the infrastructure for a Hadoop cluster in Azure, it is time to get our hands dirty with installing the actual Hadoop distribution.</p> <h1><a name="ambari">1. Install Ambari Server</a></h1> <p align="justify">We start off with installing an Ambari Server that allows for a “graphical” way of installing and deploying Hadoop.</p> <p align="justify"><a href="#ambari-setupbits" target="_blank">a. Set Up Bits</a><br /><a href="#ambari-setup" target="_blank">b. Set Up Ambari</a><br /><a href="#ambari-start" target="_blank">c. Start Ambari</a></p> <h2><a name="ambari-setupbits">a. Set Up Bits</a></h2> <p align="justify">Log onto your master node (in this case oldkHDPm) as <font face="Courier New">root</font>. This node will serve as the main Installation host. Download the Ambari repository. Since we use CentOS 6 as our platform, access the repository as follows:</p> <p align="left"><font size="2" face="Courier New">wget http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/1.5.1/ambari.repo</font></p> <p align="justify">Following, copy the files to your repos.d:</p> <p><font face="Courier New">cp ambari.repo /etc/yum.repos.d</font>  <p>More information can be found <a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.5.1.0/bk_using_Ambari_book/content/ambari-chap2-1.html" target="_blank">here</a> in the Hortonworks documentation.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-1-setup-1_376D3BB5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_1_2D00_setup_2D00_1_5F00_376D3BB5.png"><img title="8 ambari 1 setup (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="8 ambari 1 setup (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-1-setup-1_thumb_37039971.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_1_2D00_setup_2D00_1_5F00_thumb_5F00_37039971.png" width="644" height="348" /></a></p> <p align="justify">You can confirm that the repository is configured, by running <font face="Courier New">yum repolist</font>. You then obtain a list of repo id’s and repo names as marked in blue below. The command may vary depending on the platform (see <a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.5.1.0/bk_using_Ambari_book/content/ambari-chap2.1.2.html" target="_blank">here</a> for more information).</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-1-setup-2_2D3E31F9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_1_2D00_setup_2D00_2_5F00_2D3E31F9.png"><img title="8 ambari 1 setup (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="8 ambari 1 setup (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-1-setup-2_thumb_03C9F0B9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_1_2D00_setup_2D00_2_5F00_thumb_5F00_03C9F0B9.png" width="644" height="418" /></a></p> <p>Now, we can install the Ambari bits by running <font face="Courier New">yum install ambari-server</font>.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-1-setup-3_35C421F4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_1_2D00_setup_2D00_3_5F00_35C421F4.png"><img title="8 ambari 1 setup (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="8 ambari 1 setup (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-1-setup-3_thumb_0530A43C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_1_2D00_setup_2D00_3_5F00_thumb_5F00_0530A43C.png" width="644" height="334" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-1-setup-4_22395304.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_1_2D00_setup_2D00_4_5F00_22395304.png"><img title="8 ambari 1 setup (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="8 ambari 1 setup (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-1-setup-4_thumb_7FE44E3B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_1_2D00_setup_2D00_4_5F00_thumb_5F00_7FE44E3B.png" width="644" height="334" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-1-setup-5_1CECFD04.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_1_2D00_setup_2D00_5_5F00_1CECFD04.png"><img title="8 ambari 1 setup (5)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="8 ambari 1 setup (5)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-1-setup-5_thumb_0C748C09.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_1_2D00_setup_2D00_5_5F00_thumb_5F00_0C748C09.png" width="558" height="484" /></a></p> <p>&nbsp;</p> <h2><a name="ambari-setup">b. Set Up Ambari</a></h2> <p>Now that the Ambari server is installed, let us set it up. Run <font face="Courier New">ambari-server setup</font>.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-2-setup_69472156.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_2_2D00_setup_5F00_69472156.png"><img title="8 ambari 2 setup" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="8 ambari 2 setup" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-2-setup_thumb_6DC032CE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_2_2D00_setup_5F00_thumb_5F00_6DC032CE.png" width="554" height="577" /></a></p> <p align="justify">Here, we do not customise the user account for the ambari-server daemon since we have already changed the root password. Likewise, we accept the default settings. More Information can be found <a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.5.1.0/bk_using_Ambari_book/content/ambari-chap2-2.html" target="_blank">here</a> in the Hortonworks documentation.</p> <h2><a name="ambari-start">c. Start Ambari</a></h2> <p>The Ambari server is set up and installed – ready to be started:</p> <p><font face="Courier New">ambari-server start</font></p> <p>To have a look at the Ambari server processes, type in:</p> <p><font face="Courier New">ps –ef | grep ambari</font></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-3-start-1_5F844A8F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_3_2D00_start_2D00_1_5F00_5F844A8F.png"><img title="8 ambari 3 start (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="8 ambari 3 start (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-3-start-1_thumb_211E86DC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_3_2D00_start_2D00_1_5F00_thumb_5F00_211E86DC.png" width="644" height="390" /></a></p> <p>In case, more than one process is running ambari, kill the other process as follows:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-3-start-2_12E29E9D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_3_2D00_start_2D00_2_5F00_12E29E9D.png"><img title="8 ambari 3 start (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="8 ambari 3 start (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/8-ambari-3-start-2_thumb_5725969A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/8_2D00_ambari_2D00_3_2D00_start_2D00_2_5F00_thumb_5F00_5725969A.png" width="644" height="343" /></a></p> <h1><a name="hadoop">2 Install Hadoop</a></h1> <p align="justify">Now we are ready to install the Hadoop distribution, i.e. HDP 2.1, using Ambari. Likewise, we will go along the Hortonworks documentation (<a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.5.1.0/bk_using_Ambari_book/content/ambari-chap3_2x.html" target="_blank">here</a>).</p> <p align="justify">Log into your DNS server and open an internet browser pointint to</p> <p align="justify"><font face="Courier New">http://{ambari-server}:8080</font></p> <p align="justify">In this case: <a href="http://oldkHDPm.oldkHDP.oliviak.com:8080"><font face="Courier New">http://oldkHDPm.oldkHDP.oliviak.com:8080</font></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-1_516D0DA5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_1_5F00_516D0DA5.png"><img title="9 hdp 1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-1_thumb_05A3C79D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_1_5F00_thumb_5F00_05A3C79D.png" width="644" height="304" /></a></p> <p>Name your cluster (see <a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.5.1.0/bk_using_Ambari_book/content/ambari-chap3-2_2x.html" target="_blank">Hortonworks documentation</a>), e.g. <font face="Courier New">oldkHDPcluster</font>:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-2_3DE4CF66.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_2_5F00_3DE4CF66.png"><img title="9 hdp 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-2_thumb_1B2397A9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_2_5F00_thumb_5F00_1B2397A9.png" width="644" height="408" /></a></p> <p>Select your desired stack (see <a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.5.1.0/bk_using_Ambari_book/content/ambari-chap3-2a_2x.html" target="_blank">Hortonworks docs</a>). We choose the latest for the time being, i.e. HDP 2.1:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-3_4A750D33.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_3_5F00_4A750D33.png"><img title="9 hdp 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-3_thumb_0EB80531.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_3_5F00_thumb_5F00_0EB80531.png" width="644" height="408" /></a></p> <p align="justify">The next window specifies the install options. Before we go into it, we take a little de-tour, i.e. how to copy the SSH private key onto the DNS server.</p> <h2 align="justify">Detour: How to Copy the SSH Private Key to the Local Machine</h2> <h2></h2> <p align="justify">For that purpose, we install <a href="http://winscp.net/eng/download.php" target="_blank">WinSCP</a> that enables the secure file Transfer between a local and a remote computer. Once installed, log in using the credentials to the master node (i.e. oldkHDP.cloudapp.net, port 22):</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-1_250DAA76.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_1_5F00_250DAA76.png"><img title="9 hdp 4 (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 4 (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-1_thumb_2986BBEE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_1_5F00_thumb_5F00_2986BBEE.png" width="644" height="427" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-2_56320678.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_2_5F00_56320678.png"><img title="9 hdp 4 (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 4 (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-2_thumb_6C87ABBD.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_2_5F00_thumb_5F00_6C87ABBD.png" width="454" height="270" /></a></p> <p>Use the WinSCP client to download the private SSH key (i.e. <font face="Courier New">id_rsa</font>) of the master node into the DNS server:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-3_29AB6743.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_3_5F00_29AB6743.png"><img title="9 hdp 4 (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 4 (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-3_thumb_6258A201.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_3_5F00_thumb_5F00_6258A201.png" width="644" height="384" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-4_38782DCC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_4_5F00_38782DCC.png"><img title="9 hdp 4 (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 4 (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-4_thumb_55ED0F89.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_4_5F00_thumb_5F00_55ED0F89.png" width="504" height="216" /></a></p> <p align="justify">Once downloaded into the “local” machine, i.e. our DNS server, we can browse for it in the “Install Options” window:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-5_3A4B1444.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_5_5F00_3A4B1444.png"><img title="9 hdp 4 (5)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 4 (5)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-5_thumb_699C89CE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_5_5F00_thumb_5F00_699C89CE.png" width="644" height="474" /></a></p> <p>Additionally, type in all the target hosts of your Hadoop cluster. In this case, it includes the master node and the three worker nodes:</p> <p><font face="Courier New">oldkHDPm.oldkHDP.oliviak.com<br />oldkHDPw[1-3].oldkHDP.oliviak.com</font></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-6_74C8A4C9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_6_5F00_74C8A4C9.png"><img title="9 hdp 4 (6)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 4 (6)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-6_thumb_11D15392.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_6_5F00_thumb_5F00_11D15392.png" width="644" height="474" /></a></p> <p align="justify">When registering and confirming, you will be prompted with another window containing the host name pattern expressions:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-7_56144B8F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_7_5F00_56144B8F.png"><img title="9 hdp 4 (7)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 4 (7)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-4-7_thumb_3EE8D111.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_4_2D00_7_5F00_thumb_5F00_3EE8D111.png" width="504" height="233" /></a></p> <p>Success – the hosts are confirmed. Have a look at the <a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.5.1.0/bk_using_Ambari_book/content/ambari-chap3-4_2x.html" target="_blank">Hortonworks documentation</a> for more information.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-1_2E706016.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_1_5F00_2E706016.png"><img title="9 hdp 5 (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 5 (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-1_thumb_0B42F564.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_1_5F00_thumb_5F00_0B42F564.png" width="644" height="474" /></a></p> <p>You may or may not receive some warnings as shown in the yellowish area:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-2_0426499D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_2_5F00_0426499D.png"><img title="9 hdp 5 (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 5 (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-2_thumb_058A6C6F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_2_5F00_thumb_5F00_058A6C6F.png" width="440" height="484" /></a></p> <p align="center"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-4_29B257AF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_4_5F00_29B257AF.png"><img title="9 hdp 5 (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 5 (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-4_thumb_4DDA42EF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_4_5F00_thumb_5F00_4DDA42EF.png" width="440" height="484" /></a></p> <p align="justify">It turns out that the ntpd services are not running but are required to be. You could run the HostCleanup Python script on each host…</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-5_59065DEA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_5_5F00_59065DEA.png"><img title="9 hdp 5 (5)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 5 (5)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-5_thumb_2CE960F9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_5_5F00_thumb_5F00_2CE960F9.png" width="644" height="407" /></a></p> <p>…or manually get the ntpd services to run, by running</p> <p align="justify"><font face="Courier New">chkconfig ntpd on</font></p> <p>on each host, i.e. the master and all three worker nodes:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-7_0CD0E4ED.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_7_5F00_0CD0E4ED.png"><img title="9 hdp 5 (7)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 5 (7)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-7_thumb_279D0AF9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_7_5F00_thumb_5F00_279D0AF9.png" width="644" height="407" /></a></p> <p>To check the status of the ntpd services, run</p> <p align="justify"><font face="Courier New">service ntpd status</font></p> <p>Back in the browser on the DNS server, rerun the checks:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-6_3DF2B03E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_6_5F00_3DF2B03E.png"><img title="9 hdp 5 (6)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 5 (6)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-6_thumb_1DDA3432.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_6_5F00_thumb_5F00_1DDA3432.png" width="440" height="484" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-8_25F16087.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_8_5F00_25F16087.png"><img title="9 hdp 5 (8)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 5 (8)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-5-8_thumb_05D8E47B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_5_2D00_8_5F00_thumb_5F00_05D8E47B.png" width="644" height="475" /></a></p> <p>Next, you can choose the services you wish to install on your Hadoop Cluster (see <a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.5.1.0/bk_using_Ambari_book/content/ch04s06.html" target="_blank">HDP documentation)</a>.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-6_1C2E89C0.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_6_5F00_1C2E89C0.png"><img title="9 hdp 6" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 6" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-6_thumb_748A9E46.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_6_5F00_thumb_5F00_748A9E46.png" width="580" height="484" /></a></p> <p>Next, select the hosts on which certain master components should run (see <a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.5.1.0/bk_using_Ambari_book/content/ambari-chap3-5_2x.html" target="_blank">HDP doc</a>). In this case, I choose to assign the master components of the Hive Server and the Oozie Server to the master node.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-7_2A8F1D54.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_7_5F00_2A8F1D54.png"><img title="9 hdp 7" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 7" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-7_thumb_3144B788.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_7_5F00_thumb_5F00_3144B788.png" width="549" height="772" /></a></p> <p>With the Ambari wizard, slave components (i.e. DataNodes, NodeManagers and RegionServers) can be appropriately assigned to certain hosts in the next window (see <a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.5.1.0/bk_using_Ambari_book/content/ambari-chap3-6_2x.html" target="_blank">HDP doc</a>).</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-8_4DE1335B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_8_5F00_4DE1335B.png"><img title="9 hdp 8" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 8" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-8_thumb_691C1D0D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_8_5F00_thumb_5F00_691C1D0D.png" width="644" height="334" /></a></p> <p>Now you can manage the configuration settings for the Hadoop components along the tabs:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-0_5837791D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_0_5F00_5837791D.png"><img title="9 hdp 9 0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 9 0" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-0_thumb_5CB08A95.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_0_5F00_thumb_5F00_5CB08A95.png" width="644" height="183" /></a></p> <p>For instance, under HDFS we change the directories from</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-2-hdfs-1_333C4955.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_2_2D00_hdfs_2D00_1_5F00_333C4955.png"><img title="9 hdp 9 2 hdfs (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 9 2 hdfs (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-2-hdfs-1_thumb_71C427AC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_2_2D00_hdfs_2D00_1_5F00_thumb_5F00_71C427AC.png" width="383" height="484" /></a></p> <p>to the following:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-2-hdfs-2_5D4168DF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_2_2D00_hdfs_2D00_2_5F00_5D4168DF.png"><img title="9 hdp 9 2 hdfs (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 9 2 hdfs (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-2-hdfs-2_thumb_3A803122.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_2_2D00_hdfs_2D00_2_5F00_thumb_5F00_3A803122.png" width="622" height="772" /></a></p> <p>For the remaining tabs marked with warnings, credentials are required, such as <a href="http://www.nagios.org/" target="_blank">Nagios</a>,</p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-1-nagios-1_3BE453F4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_1_2D00_nagios_2D00_1_5F00_3BE453F4.png"><img title="9 hdp 9 1 nagios (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 9 1 nagios (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-1-nagios-1_thumb_19231C37.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_1_2D00_nagios_2D00_1_5F00_thumb_5F00_19231C37.png" width="625" height="484" /></a>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-1-nagios-2_0B5366ED.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_1_2D00_nagios_2D00_2_5F00_0B5366ED.png"><img title="9 hdp 9 1 nagios (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 9 1 nagios (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-1-nagios-2_thumb_0D23BCB4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_1_2D00_nagios_2D00_2_5F00_thumb_5F00_0D23BCB4.png" width="644" height="165" /></a></p> <p>…<a href="http://hive.apache.org/" target="_blank">Hive</a>…</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-3-hive_75F84235.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_3_2D00_hive_5F00_75F84235.png"><img title="9 hdp 9 3 hive" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 9 3 hive" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-3-hive_thumb_27F27371.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_3_2D00_hive_5F00_thumb_5F00_27F27371.png" width="563" height="484" /></a></p> <p>…and <a href="http://oozie.apache.org/" target="_blank">Oozie</a>:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-4-oozie_5743E8FB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_4_2D00_oozie_5F00_5743E8FB.png"><img title="9 hdp 9 4 oozie" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 9 4 oozie" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-9-4-oozie_thumb_5A7AF245.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_9_2D00_4_2D00_oozie_5F00_thumb_5F00_5A7AF245.png" width="560" height="484" /></a></p> <p>More Information on customising the services related to your Hadoop cluster can be found <a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.5.1.0/bk_using_Ambari_book/content/ambari-chap3-7_2x.html" target="_blank">here</a>.</p> <p>Finally, before deploying the Hadoop cluster you obtain the usual summary of configuration settings:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-10_1EBDEA43.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_10_5F00_1EBDEA43.png"><img title="9 hdp 10" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 10" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-10_thumb_1E5447FF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_10_5F00_thumb_5F00_1E5447FF.png" width="566" height="484" /></a></p> <p>It contains the following information:</p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="126">Admin Name</td> <td valign="top" width="474">admin</td></tr> <tr> <td valign="top" width="126">Cluster Name</td> <td valign="top" width="474">oldkHDPcluster</td></tr> <tr> <td valign="top" width="126">Total Hosts</td> <td valign="top" width="474">4 (4 new)</td></tr> <tr> <td valign="top" width="126">Repositories</td> <td valign="top" width="474"> <ul> <li>RHEL 5/CentOS 5/Oracle Linux 5 : <a href="http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.1.2.1">http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.1.2.1</a>  </li><li>RHEL 6/CentOS 6/Oracle Linux 6 : <a href="http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.1.2.1">http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.1.2.1</a>  </li><li>SLES 11/SUSE 11 : <a href="http://public-repo-1.hortonworks.com/HDP/suse11/2.x/updates/2.1.2.1">http://public-repo-1.hortonworks.com/HDP/suse11/2.x/updates/2.1.2.1</a> </li></ul></td></tr></tbody></table> <p><strong>Services</strong></p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="126">HDFS</td> <td valign="top" width="474"> <p>NameNode : oldkHDPm.oldkHDP.oliviak.com<br />SecondaryNameNode : oldkHDPw1.oldkHDP.oliviak.com<br />DataNodes : 3 Hosts<br /></p></td></tr> <tr> <td valign="top" width="126">YARN + MapReduce2</td> <td valign="top" width="474"> <p>NodeManager : 3 hosts <br />ResourceManager : oldkHDPw1.oldkHDP.oliviak.com <br />History Server : oldkHDPw1.oldkHDP.oliviak.com <br />App Timeline Server : oldkHDPw1.oldkHDP.oliviak.com <br /></p></td></tr> <tr> <td valign="top" width="126">Tez</td> <td valign="top" width="474"> <p>Clients : 1 host <br /></p></td></tr> <tr> <td valign="top" width="126">Nagios</td> <td valign="top" width="474"> <p>Server : oldkHDPm.oldkHDP.oliviak.com <br />Administrator : nagiosadmin / (&lt;your-email-address&gt;@blabla.com) <br /></p></td></tr> <tr> <td valign="top" width="126">Ganglia</td> <td valign="top" width="474"> <p>Server : oldkHDPm.oldkHDP.oliviak.com <br /></p></td></tr> <tr> <td valign="top" width="126">Hive + HCatalog</td> <td valign="top" width="474"> <p>Hive Metastore : oldkHDPm.oldkHDP.oliviak.com <br />Database : MySQL (New Database) <br /></p></td></tr> <tr> <td valign="top" width="126">HBase</td> <td valign="top" width="474"> <p>Master : oldkHDPm.oldkHDP.oliviak.com <br />RegionServers : 3 hosts <br /></p></td></tr> <tr> <td valign="top" width="126">Pig</td> <td valign="top" width="474"> <p>Clients : 1 host <br /></p></td></tr> <tr> <td valign="top" width="126">Sqoop</td> <td valign="top" width="474"> <p>Clients : 1 host <br /></p></td></tr> <tr> <td valign="top" width="126">Oozie</td> <td valign="top" width="474"> <p>Server : oldkHDPm.oldkHDP.oliviak.com <br />Database : Derby (New Derby Database) <br /></p></td></tr> <tr> <td valign="top" width="126">Zookeeper</td> <td valign="top" width="474"> <p>Servers : 3 hosts <br /></p></td></tr> <tr> <td valign="top" width="126">Falcon</td> <td valign="top" width="474"> <p>Server : oldkHDPw1.oldkHDP.oliviak.com <br /></p></td></tr> <tr> <td valign="top" width="126">Storm</td> <td valign="top" width="474"> <p>Nimbus : oldkHDPm.oldkHDP.oliviak.com <br />Storm REST API Server : oldkHDPm.oldkHDP.oliviak.com <br />Storm UI Server : oldkHDPm.oldkHDP.oliviak.com <br />DRPC Server : oldkHDPm.oldkHDP.oliviak.com <br />Supervisor : 3 Hosts</p></td></tr></tbody></table> <p>And away you deploy:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-11-1_6D549751.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_11_2D00_1_5F00_6D549751.png"><img title="9 hdp 11 (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 11 (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-11-1_thumb_56291CD3.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_11_2D00_1_5F00_thumb_5F00_56291CD3.png" width="504" height="124" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-11-2_3EFDA255.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_11_2D00_2_5F00_3EFDA255.png"><img title="9 hdp 11 (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 11 (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-11-2_thumb_78171008.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_11_2D00_2_5F00_thumb_5F00_78171008.png" width="644" height="409" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-11-3_27688593.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_11_2D00_3_5F00_27688593.png"><img title="9 hdp 11 (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 11 (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-11-3_thumb_5962B6CE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_11_2D00_3_5F00_thumb_5F00_5962B6CE.png" width="644" height="411" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-11-4_487E12DE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_11_2D00_4_5F00_487E12DE.png"><img title="9 hdp 11 (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 11 (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-11-4_thumb_3AAE5D94.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_11_2D00_4_5F00_thumb_5F00_3AAE5D94.png" width="644" height="457" /></a></p> <p>Finally, you obtain a summary of your Hadoop installation efforts:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-11-5_1EA02F5A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_11_2D00_5_5F00_1EA02F5A.png"><img title="9 hdp 11 (5)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 11 (5)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-11-5_thumb_21D738A4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_11_2D00_5_5F00_thumb_5F00_21D738A4.png" width="644" height="449" /></a></p> <h1>Done!</h1> <p>You have the Ambari GUI nicely displayed in front of you:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-12-1_57DBB7B1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_12_2D00_1_5F00_57DBB7B1.png"><img title="9 hdp 12 (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 12 (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-12-1_thumb_32E087E9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_12_2D00_1_5F00_thumb_5F00_32E087E9.png" width="644" height="474" /></a></p> <p>While hovering over the tiles, you obtain more information, such as on the network usage:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-12-4_21FBE3F9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_12_2D00_4_5F00_21FBE3F9.png"><img title="9 hdp 12 (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="9 hdp 12 (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-12-4_thumb_118372FE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_12_2D00_4_5F00_thumb_5F00_118372FE.png" width="304" height="208" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-12-3_15FC8476.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_12_2D00_3_5F00_15FC8476.png"><img title="9 hdp 12 (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 12 (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-12-3_thumb_7A5A8930.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_12_2D00_3_5F00_thumb_5F00_7A5A8930.png" width="644" height="449" /></a></p> <p>or the cluster load:</p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-12-2_30CB3B33.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_12_2D00_2_5F00_30CB3B33.png"><img title="9 hdp 12 (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="9 hdp 12 (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/9-hdp-12-2_thumb_2705D3BB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/9_2D00_hdp_2D00_12_2D00_2_5F00_thumb_5F00_2705D3BB.png" width="644" height="451" /></a></p></p>]]></content:encoded>
    </item>
    <item>
      <title>Hadoop on Linux on Azure – Step-by-Step: Build the Infrastructure (2)</title>
      <link>https://docs.microsoft.com/archive/blogs/oliviaklose/hadoop-on-linux-on-azure-step-by-step-build-the-infrastructure-2</link>
      <pubDate>Wed, 18 Jun 2014 00:01:22 GMT</pubDate>
      <dc:creator><![CDATA[OliviaKlose]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/oliviaklose/2014/06/18/hadoop-on-linux-on-azure-step-by-step-build-the-infrastructure-2/</guid>
      <description><![CDATA[In this blog series (Hadoop on Linux on Azure), we set up a Hadoop cluster on Azure using virtual...]]></description>
      <content:encoded><![CDATA[<p align="justify">In this blog series (Hadoop on Linux on Azure), we set up a Hadoop cluster on Azure using virtual machines running Linux. More specifically, we use the HDP 2.1 on Linux distribution by <a href="http://hortonworks.com/" target="_blank">Hortonworks</a> that also provides the HDP distributions for the Windows platform. Furthermore, we install Hadoop with <a href="http://ambari.apache.org/" target="_blank">Ambari</a>, an Apache project that provides an intuitive UI for provisioning, managing and monitoring a Hadoop cluster.</p> <h1 align="justify">Contents</h1> <p align="left"><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/06/17/hadoop-on-linux-on-azure-1.aspx">1 Introduction</a><br /><strong><font size="3">2 Step-by-Step: Build the Infrastructure</font><br /></strong><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/07/02/hadoop-on-linux-on-azure-step-by-step-install-hadoop-3.aspx">3 Step-by-Step: Install a Hadoop Distribution</a></p> <h1>Step-by-Step: Build the Infrastructure</h1> <p align="justify">In this article, we set up the infrastructure and configure the virtual machines to enable the installation of a Hadoop cluster via an Ambari Server.</p> <p align="justify">We heavily base our step-by-step guide on Benjamin’s great article <a href="http://blogs.msdn.com/b/benjguin/archive/2013/04/05/how-to-install-hadoop-on-windows-azure-linux-virtual-machines.aspx" target="_blank">How to install Hadoop on Windows Azure Linux virtual machines</a> and Hortonworks’ documentation <a title="Hortonworks Data Platform &ndash; Automated Install with Ambari" href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.6.0.0/bk_using_Ambari_book/content/index.html" target="_blank">Hortonworks Data Platform – Automated Install with Ambari</a>.</p> <p align="justify">The infrastructure is set up as follows:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/0-architecture-2_3F6994E4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/0_2D00_architecture_2D00_2_5F00_3F6994E4.png"><img title="0 architecture 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="0 architecture 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/0-architecture-2_thumb_11129FE8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/0_2D00_architecture_2D00_2_5F00_thumb_5F00_11129FE8.png" width="644" height="415" /></a></p> <p>What you will learn in this post (amongst others):</p> <ul> <li>Create a DNS Server in Azure IaaS  </li><li>Linux on Azure:  <ul> <li>Create a Linux VM  </li><li>Log on to a Linux VM  </li><li>Capture a Linux VM  </li><li>Authenticate using SSH Keys  </li><li>Set up passwordless SSH  </li><li>Attach Disks</li></ul> </li><li>Create several virtual machines using PowerShell</li></ul> <p>The article is structured as follows:</p> <ol> <li><a href="#vn">Create Virtual Network</a>  </li><li><a href="#storage">Create Storage Account</a>  </li><li><a href="#dns">Create DNS Server</a>  </li><li><a href="#linux">Create Linux Image</a>  </li><li><a href="#nodes">Create Master and Worker Nodes</a>  </li><li><a href="#dnsconfig">Configure DNS Server</a>  </li><li><a href="#nodesconfig">Configure all nodes (root password, network, iptables, passwordless SSH, format empty disk)</a></li></ol> <p>&nbsp;</p> <h2></h2> <h1><a name="vn">1. Create Virtual Network</a></h1> <p>First, we will create a virtual Network in which the nodes for the Hadoop cluster will be created. In the Azure management portal, you simply click on New and custom create a virtual Network:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-vn-1_6327DDE0.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_vn_2D00_1_5F00_6327DDE0.png"><img title="1 vn (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="1 vn (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-vn-1_thumb_00308CA9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_vn_2D00_1_5F00_thumb_5F00_00308CA9.png" width="644" height="296" /></a></p> <p>Choose a name for your virtual network of your liking. The datacenter location best suited for your Hadoop cluster is one nearby yours. <a title="Azure Regions" href="http://azure.microsoft.com/en-us/regions" target="_blank">Here</a> you find an overview of all available Azure regions.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-vn-2_1DA56E66.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_vn_2D00_2_5F00_1DA56E66.png"><img title="1 vn (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="1 vn (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-vn-2_thumb_5F3FAAB2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_vn_2D00_2_5F00_thumb_5F00_5F3FAAB2.png" width="644" height="431" /></a></p> <p>Later on, we will create a DNS server for distributing domain names for the nodes as well as acting as a desktop environment:</p> <table cellspacing="0" cellpadding="2" width="400" border="0"> <tbody> <tr> <td valign="top" width="200"><strong>DNS Server</strong></td> <td valign="top" width="200"><strong>IP Address</strong></td></tr> <tr> <td valign="top" width="200">&lt;DNS_Server_name&gt;</td> <td valign="top" width="200">10.124.1.4</td></tr></tbody></table> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-vn-3_3CEAA5EA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_vn_2D00_3_5F00_3CEAA5EA.png"><img title="1 vn (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="1 vn (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-vn-3_thumb_27FBB428.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_vn_2D00_3_5F00_thumb_5F00_27FBB428.png" width="644" height="432" /></a></p> <p>Let’s add some subnets: the first one for the DNS server,</p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="205"><strong>Subnet</strong></td> <td valign="top" width="186"><strong>Starting IP</strong></td> <td valign="top" width="207"><strong>CIDR (Address Count)</strong></td></tr> <tr> <td valign="top" width="205">Subnet-1 (or DNS-Subnet)</td> <td valign="top" width="186">10.124.1.0</td> <td valign="top" width="207">/24</td></tr> <tr> <td valign="top" width="205">Subnet-2 (or Master-Subnet)</td> <td valign="top" width="186">10.124.2.0</td> <td valign="top" width="207">/24</td></tr> <tr> <td valign="top" width="205">Subnet-3 (or Worker-Subnet)</td> <td valign="top" width="186">10.124.3.0</td> <td valign="top" width="207">/24</td></tr></tbody></table> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-vn-4_7E8772E7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_vn_2D00_4_5F00_7E8772E7.png"><img title="1 vn (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="1 vn (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-vn-4_thumb_5BC63B2A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_vn_2D00_4_5F00_thumb_5F00_5BC63B2A.png" width="644" height="431" /></a></p> <p>In summary:</p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="192"><strong>Name</strong></td> <td valign="top" width="408">&lt;virtual-network-name&gt; e.g. oldkHDP</td></tr> <tr> <td valign="top" width="192"><strong>Location</strong></td> <td valign="top" width="408">e.g. North Europe</td></tr> <tr> <td valign="top" width="192"><strong>DNS Server</strong></td> <td valign="top" width="408">&lt;dns-server&gt; e.g. oldkHDPdns</td></tr> <tr> <td valign="top" width="192"><strong>IP address for DNS server</strong></td> <td valign="top" width="408">10.124.1.4</td></tr> <tr> <td valign="top" width="192"><strong>Subnet-1</strong></td> <td valign="top" width="408">10.124.1.4 /24</td></tr> <tr> <td valign="top" width="192"><strong>Subnet-2</strong></td> <td valign="top" width="408">10.124.2.4 /24</td></tr> <tr> <td valign="top" width="192"><strong>Subnet-3</strong></td> <td valign="top" width="408">10.124.3.4 /24</td></tr></tbody></table> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-vn-5_1D607777.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_vn_2D00_5_5F00_1D607777.png"><img title="1 vn (5)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="1 vn (5)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-vn-5_thumb_73800341.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_vn_2D00_5_5F00_thumb_5F00_73800341.png" width="644" height="306" /></a></p> <p>In the <a title="Configure a Cloud-Only Virtual Network in the Management Portal" href="http://msdn.microsoft.com/library/azure/dn631643.aspx" target="_blank">Azure documentation</a> you can find more information on configuring a cloud-only virtual network in the management portal.</p> <h1><a name="storage">2. Create Storage Account</a></h1> <p>Each virtual machine requires a storage account. Either you can use an automatically generated storage account when creating a VM, but this usually ends up being some ugly looking name that noone can remember. Hence, take the proactive route and create a storage account beforehand:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-storage-2_10F4E4FF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_storage_2D00_2_5F00_10F4E4FF.png"><img title="2 storage (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="2 storage (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-storage-2_thumb_630A22F7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_storage_2D00_2_5F00_thumb_5F00_630A22F7.png" width="644" height="281" /></a></p> <p>We choose the locally redundant replication option to minimise costs.</p> <p>In short:</p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="206"><strong>URL</strong></td> <td valign="top" width="394">&lt;storage-account&gt;.core.windows.net e.g. oldkhdpstrg</td></tr> <tr> <td valign="top" width="206"><strong>Location</strong></td> <td valign="top" width="394">North Europe</td></tr> <tr> <td valign="top" width="206"><strong>Replication</strong></td> <td valign="top" width="394">Locally Redundant</td></tr></tbody></table> <p>Note that the location chosen here must be the same as the one from the virtual network created beforehand.</p> <p>Some more Information on how to create a storage account can be found <a href="http://azure.microsoft.com/en-us/documentation/articles/storage-create-storage-account/" target="_blank">here</a> in the Azure documentation.</p> <h1><a name="dns">3. Create DNS Server</a></h1> <p>In this paragraph, we will create the DNS Server for our Hadoop cluster. For simplicity, we use a VM based on Windows Server, but a Linux-based VM can obviously be also used for the purpose of a DNS Server.</p> <p>We first will create an ordinary Windows Server VM, and then will assign the DNS role to it in the second step.</p> <ol> <li><a href="#wsvm">Create Windows Server VM</a>  </li><li><a href="#dnsrole">Add DNS Role</a>  </li><li><a href="#dnszone">Create New DNS Zone</a></li></ol> <p>&nbsp;</p> <h2><a name="wsvm">3.1 Create Windows Server VM</a></h2> <p>Let’s get started with creating our first VM in the virtual network. The short summary is as follows: </p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="206"><strong>Image</strong></td> <td valign="top" width="394">Windows Server 2012 R2 Datacenter</td></tr> <tr> <td valign="top" width="206"><strong>Virtual Machine Name</strong></td> <td valign="top" width="394">&lt;dns-server&gt; e.g. oldkHDPdns</td></tr> <tr> <td valign="top" width="206"><strong>Size</strong></td> <td valign="top" width="394">A1 (Small)</td></tr> <tr> <td valign="top" width="206"><strong>User name</strong></td> <td valign="top" width="394">&lt;dns-user&gt; e.g. dnsadmin</td></tr> <tr> <td valign="top" width="206"><strong>Cloud Service DNS name</strong></td> <td valign="top" width="394">[Create new] &lt;cloud-service&gt; e.g. oldkHDP</td></tr> <tr> <td valign="top" width="206"><strong>Region/Affinity Group/Virtual Network</strong></td> <td valign="top" width="394">&lt;virtual-network&gt; (i.e. oldkHDP from <a href="#vn" target="_blank">1. Create Virtual Network</a>)</td></tr> <tr> <td valign="top" width="206"><strong>Virtual Network Subnets</strong></td> <td valign="top" width="394">Subnet-1</td></tr> <tr> <td valign="top" width="206"><strong>Storage Account</strong></td> <td valign="top" width="394">&lt;storage-account&gt; (i.e. oldkhdpstrg from <a href="#storage" target="_blank">2. Create Storage Account</a>)</td></tr> <tr> <td valign="top" width="206"><strong>Availability Set</strong></td> <td valign="top" width="394">None</td></tr></tbody></table> <p>In longer version: click on New in the bottom left corner of the Azure management portal:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-0_3DA02F89.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_0_5F00_3DA02F89.png"><img title="3 dns (0)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (0)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-0_thumb_48CC4A84.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_0_5F00_thumb_5F00_48CC4A84.png" width="644" height="176" /></a></p> <p>You choose your Image, i.e. Windows Server 2012 R2 Datacenter:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-0a_514FA9CE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_0a_5F00_514FA9CE.png"><img title="3 dns (0a)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (0a)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-0a_thumb_111C2105.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_0a_5F00_thumb_5F00_111C2105.png" width="644" height="410" /></a></p> <p>Now you specify the virtual machine’s name, e.g. oldkHDPdns, and its credentials:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-1_596966D4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_1_5F00_596966D4.png"><img title="3 dns (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-1_thumb_3950EAC8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_1_5F00_thumb_5F00_3950EAC8.png" width="644" height="410" /></a></p> <p>We create a new cloud service (named &lt;cloud-service&gt; i.e. oldkHDP), and use the previously created virtual network to specify the first subnet. Likewise, we use the previously created storage account:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-2_28D879CD.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_2_5F00_28D879CD.png"><img title="3 dns (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-2_thumb_5EDCF8DA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_2_5F00_thumb_5F00_5EDCF8DA.png" width="644" height="410" /></a></p> <p>Once created, you obtain a nice overview of all important info on our DNS VM, such as the associated disk, its DNS name, internal IP address and much more:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-4_0304E41B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_4_5F00_0304E41B.png"><img title="3 dns (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-4_thumb_6043AC5D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_4_5F00_thumb_5F00_6043AC5D.png" width="644" height="397" /></a></p> <h2><a name="dnsrole">3.2 Add DNS Role</a></h2> <p>So far we have created a general VM. To make it a DNS server, we will have to remotely connect to the virtual machine and add the DNS role. With Windows Server 2012 R2, this is easily done from the Server Manager:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-5_6B6FC758.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_5_5F00_6B6FC758.png"><img title="3 dns (5)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (5)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-5_thumb_48425CA6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_5_5F00_thumb_5F00_48425CA6.png" width="644" height="421" /></a></p> <p>This will take you through a nice and easy wizard to add the necessary roles and features for it to be a DNS server:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-6_1A579A9F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_6_5F00_1A579A9F.png"><img title="3 dns (6)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (6)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-6_thumb_04FC75E8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_6_5F00_thumb_5F00_04FC75E8.png" width="644" height="450" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-7_16DB9A66.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_7_5F00_16DB9A66.png"><img title="3 dns (7)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (7)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-7_thumb_0D1632EE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_7_5F00_thumb_5F00_0D1632EE.png" width="644" height="449" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-8_5F2B70E6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_8_5F00_5F2B70E6.png"><img title="3 dns (8)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (8)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-8_thumb_431D42AC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_8_5F00_thumb_5F00_431D42AC.png" width="644" height="449" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-9_270F1472.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_9_5F00_270F1472.png"><img title="3 dns (9)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (9)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-9_thumb_5D13937F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_9_5F00_thumb_5F00_5D13937F.png" width="644" height="449" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-10_3CFB1773.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_10_5F00_3CFB1773.png"><img title="3 dns (10)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 dns (10)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-10_thumb_3335AFFB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_10_5F00_thumb_5F00_3335AFFB.png" width="404" height="276" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-11_70596B80.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_11_5F00_70596B80.png"><img title="3 dns (11)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (11)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-11_thumb_265DEA8E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_11_5F00_thumb_5F00_265DEA8E.png" width="644" height="449" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-12_7153EC0E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_12_5F00_7153EC0E.png"><img title="3 dns (12)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (12)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-12_thumb_2A0126CD.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_12_5F00_thumb_5F00_2A0126CD.png" width="644" height="449" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-13_74F7284D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_13_5F00_74F7284D.png"><img title="3 dns (13)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (13)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-13_thumb_58E8FA13.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_13_5F00_thumb_5F00_58E8FA13.png" width="644" height="449" /></a></p> <p>Voila, the VM can now be called a DNS Server!</p> <h2><a name="dnszone">3.3 Create New DNS Zone</a></h2> <p align="justify">Let’s now define zones in the DNS Server via the DNS Manager. You can reach it as usual from the ubiquitous Server Manager:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-14_43FA0851.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_14_5F00_43FA0851.png"><img title="3 dns (14)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (14)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-14_thumb_3C712995.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_14_5F00_thumb_5F00_3C712995.png" width="644" height="421" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-15_2062FB5B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_15_5F00_2062FB5B.png"><img title="3 dns (15)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (15)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-15_thumb_4FB470E5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_15_5F00_thumb_5F00_4FB470E5.png" width="644" height="442" /></a></p> <p>We add a new zone for the virtual network oldkHDP, in typical Windows style – a wizard! In short, you configure the following:</p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="189"><strong>Type of zone</strong></td> <td valign="top" width="411">Primary</td></tr> <tr> <td valign="top" width="189"><strong>Type of lookup zone</strong></td> <td valign="top" width="411">Forward lookup zone</td></tr> <tr> <td valign="top" width="189"><strong>Zone name</strong></td> <td valign="top" width="411">&lt;zone-name&gt; e.g. oldkHDP.oliviak.com</td></tr> <tr> <td valign="top" width="189"><strong>Zone file</strong></td> <td valign="top" width="411">[Create new] e.g. oldkHDP.oliviak.com.dns</td></tr> <tr> <td valign="top" width="189"><strong>Dynamic update</strong></td> <td valign="top" width="411">Do not allow dynamic updates</td></tr></tbody></table> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-16_01AEA221.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_16_5F00_01AEA221.png"><img title="3 dns (16)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 dns (16)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-16_thumb_0CDABD1C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_16_5F00_thumb_5F00_0CDABD1C.png" width="504" height="387" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-17_69AD5269.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_17_5F00_69AD5269.png"><img title="3 dns (17)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 dns (17)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-17_thumb_74D96D64.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_17_5F00_thumb_5F00_74D96D64.png" width="504" height="384" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-18_521835A7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_18_5F00_521835A7.png"><img title="3 dns (18)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 dns (18)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-18_thumb_764020E7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_18_5F00_thumb_5F00_764020E7.png" width="504" height="386" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-19_1E7259FA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_19_5F00_1E7259FA.png"><img title="3 dns (19)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 dns (19)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-19_thumb_708797F2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_19_5F00_thumb_5F00_708797F2.png" width="504" height="386" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-20_4DC66035.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_20_5F00_4DC66035.png"><img title="3 dns (20)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 dns (20)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-20_thumb_6ACF0EFD.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_20_5F00_thumb_5F00_6ACF0EFD.png" width="504" height="385" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-21_07D7BDC6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_21_5F00_07D7BDC6.png"><img title="3 dns (21)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 dns (21)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-21_thumb_4084F884.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_21_5F00_thumb_5F00_4084F884.png" width="504" height="385" /></a></p> <p>As a result, you will find the newly created forward lookup zone with two files contained:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-22_20004983.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_22_5F00_20004983.png"><img title="3 dns (22)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (22)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-22_thumb_2F36B250.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_22_5F00_thumb_5F00_2F36B250.png" width="644" height="442" /></a></p> <p>Same will be done for creating the corresponding reverse lookup zone to translate IP addresses into DNS names:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-23_3A62CD4B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_23_5F00_3A62CD4B.png"><img title="3 dns (23)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (23)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-23_thumb_10825916.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_23_5F00_thumb_5F00_10825916.png" width="644" height="442" /></a></p> <p>In short:</p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="300"><strong>Type of zone</strong></td> <td valign="top" width="300">Primary zone</td></tr> <tr> <td valign="top" width="300"><strong>IPv4 or IPv6</strong></td> <td valign="top" width="300">IPv4 reverse lookup zone</td></tr> <tr> <td valign="top" width="300"><strong>Reverse lookup zone name</strong></td> <td valign="top" width="300">124.10.in-addr.arpa</td></tr> <tr> <td valign="top" width="300"><strong>Zone file</strong></td> <td valign="top" width="300">[Create new] 124.10.in-addr.arpa</td></tr> <tr> <td valign="top" width="300"><strong>Dynamic Update</strong></td> <td valign="top" width="300">Do not allow dynamic updates</td></tr></tbody></table> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-24_34AA4456.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_24_5F00_34AA4456.png"><img title="3 dns (24)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (24)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-24_thumb_38B722D9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_24_5F00_thumb_5F00_38B722D9.png" width="504" height="385" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-25_55BFD1A1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_25_5F00_55BFD1A1.png"><img title="3 dns (25)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (25)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-25_thumb_5319A6A1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_25_5F00_thumb_5F00_5319A6A1.png" width="504" height="385" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-26_30586EE4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_26_5F00_30586EE4.png"><img title="3 dns (26)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (26)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-26_thumb_0D973727.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_26_5F00_thumb_5F00_0D973727.png" width="504" height="385" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-27_718908EC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_27_5F00_718908EC.png"><img title="3 dns (27)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (27)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-27_thumb_5C9A172A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_27_5F00_thumb_5F00_5C9A172A.png" width="504" height="385" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-28_67C63225.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_28_5F00_67C63225.png"><img title="3 dns (28)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (28)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-28_thumb_04CEE0EE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_28_5F00_thumb_5F00_04CEE0EE.png" width="504" height="386" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-29_21D78FB6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_29_5F00_21D78FB6.png"><img title="3 dns (29)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (29)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-29_thumb_2C9777BC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_29_5F00_thumb_5F00_2C9777BC.png" width="504" height="386" /></a></p> <p>You may want to turn off enhanced security for the Internet Explorer to simplify things later on:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-30_7A3634ED.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_30_5F00_7A3634ED.png"><img title="3 dns (30)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 dns (30)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-dns-30_thumb_125C2FFA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_dns_2D00_30_5F00_thumb_5F00_125C2FFA.png" width="644" height="421" /></a></p> <p>&nbsp;</p> <h1><a name="linux">4. Create Linux Image</a></h1> <ol> <li><a href="#linuxvm">Create Linux VM</a>  </li><li><a href="#selinux">Disable SELinux</a>  </li><li><a href="#hosts">Edit hosts file</a>  </li><li><a href="#packagekit">Disable PackageKit</a>  </li><li><a href="#linuximg">Capture Image</a></li></ol> <p align="justify">Here we want to create a custom Linux image that we will then use for creating the master node and the three worker nodes comprising our Hadoop cluster. Why the hassle? Well, alternatively we could use a normal Linux image but then will have to repeat certain configurations for each node. Now instead we are making the configurations once and create all nodes based on that.</p> <h2><a name="linuxvm">4.1 Create Linux VM</a></h2> <p>In short:</p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="159"><strong>Image</strong></td> <td valign="top" width="441">OpenLogic</td></tr> <tr> <td valign="top" width="159"><strong>Virtual Machine Name</strong></td> <td valign="top" width="441">&lt;Linux-Image&gt; e.g. oldkHDPimage</td></tr> <tr> <td valign="top" width="159"><strong>Size</strong></td> <td valign="top" width="441">A1 (small)</td></tr> <tr> <td valign="top" width="159"><strong>New user name</strong></td> <td valign="top" width="441">&lt;user-name&gt; e.g. olivia</td></tr> <tr> <td valign="top" width="159"><strong>Authentication</strong></td> <td valign="top" width="441">Password</td></tr> <tr> <td valign="top" width="159"><strong>Cloud Service</strong></td> <td valign="top" width="441">&lt;cloud-service&gt; (i.e. the one created in <a title="Create Windows Server VM" href="#wsvm">3.1 Create WS VM</a>: oldkHDP)</td></tr> <tr> <td valign="top" width="159"><strong>Virtual Network Subnet</strong></td> <td valign="top" width="441">Subnet-3</td></tr> <tr> <td valign="top" width="159"><strong>Storage Account</strong></td> <td valign="top" width="441">&lt;storage-account&gt; (i.e. the one created in <a title="Create Storage Account" href="#storage">2. Create Storage Account</a>: oldkhdpstrg)</td></tr> <tr> <td valign="top" width="159"><strong>Availability Set</strong></td> <td valign="top" width="441">None</td></tr></tbody></table> <p align="justify">More elaborate, let’s create a new virtual machine from the Azure management portal and choose the OpenLogic Image. Alternatively, one can also use an Image based on Ubuntu or Suse.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-00_3D3724BD.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_00_5F00_3D3724BD.png"><img title="4 linuximg (00)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (00)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-00_thumb_733BA3CA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_00_5F00_thumb_5F00_733BA3CA.png" width="644" height="410" /></a></p> <p align="justify">You can provide any name of your liking. Note that this VM will later be used as a custom image for the nodes of the Hadoop cluster, so a name with image or template might be suitable. For authentication we will provide a Password.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-0_5E4CB208.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_0_5F00_5E4CB208.png"><img title="4 linuximg (0)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (0)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-0_thumb_3061F001.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_0_5F00_thumb_5F00_3061F001.png" width="644" height="410" /></a></p> <p align="justify">We use the cloud service we have created with the DNS server beforehand. Similarly, select the storage account created in <a href="#storage">2. Create Storage Account</a>.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-1_71FC2C4D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_1_5F00_71FC2C4D.png"><img title="4 linuximg (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-1_thumb_3CF22DCE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_1_5F00_thumb_5F00_3CF22DCE.png" width="644" height="410" /></a></p> <p align="justify">And now we have created a Linux VM. More Information on how to create a virtual machine running Linux on Azure can be found <a title="How to create the virtual machine" href="http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-tutorial/#custommachine" target="_blank">here</a>.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-2_45758D18.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_2_5F00_45758D18.png"><img title="4 linuximg (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-2_thumb_178ACB11.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_2_5F00_thumb_5F00_178ACB11.png" width="644" height="317" /></a></p> <p>To remotely connect to our Linux VM, I recommend using <a title="PuTTY" href="http://www.putty.org/" target="_blank">PuTTY</a> – a free SSH and telnet client for Windows. Type in the SSH Details marked above into the host name to connect with the Linux VM. To make life easier later, save the session as well.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-3_200E2A5B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_3_5F00_200E2A5B.png"><img title="4 linuximg (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="4 linuximg (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-3_thumb_0F95B960.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_3_5F00_thumb_5F00_0F95B960.png" width="502" height="484" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-4_164B5394.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_4_5F00_164B5394.png"><img title="4 linuximg (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-4_thumb_181BA95B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_4_5F00_thumb_5F00_181BA95B.png" width="644" height="407" /></a></p> <p>And then log in with the credentials that you have provided when creating the virtual machine:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-5_755A719D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_5_5F00_755A719D.png"><img title="4 linuximg (5)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (5)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-5_thumb_3760E0DF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_5_5F00_thumb_5F00_3760E0DF.png" width="554" height="350" /></a></p> <p>For more Information on logging on to a Linux VM, have a look at the <a href="http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-tutorial/#logon" target="_blank">Azure documentation</a>.</p> <h2><a name="selinux">4.2 Disable SELinux</a></h2> <p>The <a title="Hortonworks Data Platform - Automated Install with Ambari" href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.6.0.0/bk_using_Ambari_book/content/index.html" target="_blank">documentation provided by Hortonworks</a> provides a very nice step-by-step guide. Disable SELinux to setup the Ambari server later on, see <a title="4.7. Disable SELinux and PackageKit and check the umask Value" href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.6.0.0/bk_using_Ambari_book/content/ambari-chap1-5-7.html" target="_blank">here in the Hortonworks documentation</a>.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-6_01EAAF6B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_6_5F00_01EAAF6B.png"><img title="4 linuximg (6)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (6)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-6_thumb_5F95AAA2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_6_5F00_thumb_5F00_5F95AAA2.png" width="644" height="407" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-7_3CD472E5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_7_5F00_3CD472E5.png"><img title="4 linuximg (7)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (7)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-7_thumb_57A098F1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_7_5F00_thumb_5F00_57A098F1.png" width="644" height="407" /></a></p> <h2><a name="hosts">4.3. Edit Hosts file</a></h2> <p align="justify">The hosts file on each host within our to-be-created cluster needs to include the IP address and FQDN of each host, as written in the <a title="Check DNS - Edit the Host File" href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.6.0.0/bk_using_Ambari_book/content/ambari-chap1-5-5.html#ambari-chap1-5-5-1" target="_blank">Hortonworks documentation</a>. As opposed to doing it later on every single host, do these changes to the hosts file now in the Linux template that serves as the foundation for each node later on. In the Hortonworks docu</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-9_10BA06A5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_9_5F00_10BA06A5.png"><img title="4 linuximg (9)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (9)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-9_thumb_7D98D9F8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_9_5F00_thumb_5F00_7D98D9F8.png" width="644" height="407" /></a></p> <p>Our cluster will consist of 1 DNS server, 1 master node and 3 worder nodes. In the hosts file, you specify the IP address, the FQDN and the shortname, corresponding to the primary zone you have created in the DNS (<a href="#dns" target="_blank">2.3.2</a>):</p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="180"><strong>IP Address</strong></td> <td valign="top" width="220"><strong>FQDN (fully qualified domain name)</strong></td> <td valign="top" width="200"><strong>Shortname</strong></td></tr> <tr> <td valign="top" width="180">10.124.1.4</td> <td valign="top" width="220">oldkHDPdns.oldkHDP.oliviak.com</td> <td valign="top" width="200">oldkHDPdns</td></tr> <tr> <td valign="top" width="180">10.124.2.4</td> <td valign="top" width="220">oldkHDPm.oldkHDP.oliviak.com</td> <td valign="top" width="200">oldkHDPm</td></tr> <tr> <td valign="top" width="180">10.124.3.4</td> <td valign="top" width="220">oldkHDPw1.oldkHDP.oliviak.com</td> <td valign="top" width="200">oldkHDPw1</td></tr> <tr> <td valign="top" width="180">10.124.3.5</td> <td valign="top" width="220">oldkHDPw2.oldkHDP.oliviak.com</td> <td valign="top" width="200">oldkHDPw2</td></tr> <tr> <td valign="top" width="180">10.124.3.6</td> <td valign="top" width="220">oldkHDPw3.oldkHDP.oliviak.com</td> <td valign="top" width="200">oldkHDPw3</td></tr></tbody></table> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-8_5D805DEC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_8_5F00_5D805DEC.png"><img title="4 linuximg (8)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (8)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-8_thumb_316360FB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_8_5F00_thumb_5F00_316360FB.png" width="644" height="407" /></a></p> <h2><a name="packagekit">4.4. Disable PackageKit</a></h2> <p>Since we have CentOS installed, disable PackageKit as follows:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-11_6A7CCEAE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_11_5F00_6A7CCEAE.png"><img title="4 linuximg (11)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (11)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-11_thumb_3E5FD1BD.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_11_5F00_thumb_5F00_3E5FD1BD.png" width="644" height="407" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-10_5B688085.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_10_5F00_5B688085.png"><img title="4 linuximg (10)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (10)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-10_thumb_3260723A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_10_5F00_thumb_5F00_3260723A.png" width="644" height="407" /></a></p> <p>In the Hortonworks documentation, refer to <a title="4.7. Disable SELinux and PackageKit and check the umask Value" href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.6.0.0/bk_using_Ambari_book/content/ambari-chap1-5-7.html" target="_blank">here</a>.</p> <h2><a name="linuximg">4.5. Capture Image</a></h2> <p align="justify">In Azure we can capture the state of this virtual machine into an image to deploy several virtual machine instances, i.e. master and worker nodes, later on. First, undo provisioning customisation by running</p> <p align="center"><font face="Courier New">waagent –deprovision</font></p> <p>and shut down the VM running</p> <p align="center"><font face="Courier New">shutdown –h now</font></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-14_621E1AB9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_14_5F00_621E1AB9.png"><img title="4 linuximg (14)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (14)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-14_thumb_51A5A9BE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_14_5F00_thumb_5F00_51A5A9BE.png" width="644" height="407" /></a></p> <p>In the Azure management portal, click on <strong>Capture </strong>in the bottom.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-15_75616209.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_15_5F00_75616209.png"><img title="4 linuximg (15)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (15)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-15_thumb_796E408C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_15_5F00_thumb_5F00_796E408C.png" width="644" height="337" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-16_4D53D44C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_16_5F00_4D53D44C.png"><img title="4 linuximg (16)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="4 linuximg (16)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-16_thumb_2F091D56.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_16_5F00_thumb_5F00_2F091D56.png" width="504" height="393" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-17_1E90AC5B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_17_5F00_1E90AC5B.png"><img title="4 linuximg (17)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 linuximg (17)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-linuximg-17_thumb_3C058E18.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_linuximg_2D00_17_5F00_thumb_5F00_3C058E18.png" width="644" height="153" /></a></p> <p>More information on capturing a Linux virtual machine can be found <a title="How to Capture a Linux Virtual Machine to Use as a Template" href="http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-capture-image/" target="_blank">here in the Azure documentation</a>.</p> <h1><a name="nodes">5. Create Master and Worker Nodes</a></h1> <ol> <li><a href="#master">Create Master Node and Attach Empty Disk</a>  </li><li><a href="#workers">Create Worker Nodes</a></li></ol> <p align="justify">Now we can create the nodes for our Hadoop cluster using the template we have created in <a href="#linux" target="_blank">2.4 Capture Linux Image</a>.</p> <h2 align="justify"><a name="master">5.1. Create Master Node and Attach Empty Disk</a></h2> <p align="justify">Start with creating a master node in the Azure management portal. In short:</p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="153"><strong>Image</strong></td> <td valign="top" width="447">Image created in <a href="#linux" target="_blank">4. Create Linux Image</a> e.g. oldkHDPimage</td></tr> <tr> <td valign="top" width="153"><strong>Name</strong></td> <td valign="top" width="447">&lt;master-node&gt;, e.g. oldkHDPm</td></tr> <tr> <td valign="top" width="153"><strong>Size</strong></td> <td valign="top" width="447">A2 (medium)</td></tr> <tr> <td valign="top" width="153"><strong>User name</strong></td> <td valign="top" width="447">e.g. olivia</td></tr> <tr> <td valign="top" width="153"><strong>Authentication</strong></td> <td valign="top" width="447">Provide a password</td></tr> <tr> <td valign="top" width="153"><strong>Cloud Service</strong></td> <td valign="top" width="447">Cloud Service created in <a href="#wsvm" target="_blank">3.1 Create Windows Server VM</a>, e.g. oldkHDP</td></tr> <tr> <td valign="top" width="153"><strong>Virtual Network Subnet</strong></td> <td valign="top" width="447">Subnet-2</td></tr></tbody></table> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-0_2B8D1D1D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_0_5F00_2B8D1D1D.png"><img title="5 master (0)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="5 master (0)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-0_thumb_64A68AD0.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_0_5F00_thumb_5F00_64A68AD0.png" width="644" height="410" /></a></p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-1_542E19D5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_1_5F00_542E19D5.png"><img title="5 master (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="5 master (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-1_thumb_316CE218.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_1_5F00_thumb_5F00_316CE218.png" width="644" height="410" /></a></p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-2_20F4711D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_2_5F00_20F4711D.png"><img title="5 master (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="5 master (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-2_thumb_7E33395F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_2_5F00_thumb_5F00_7E33395F.png" width="644" height="410" /></a></p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-3_6DBAC864.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_3_5F00_6DBAC864.png"><img title="5 master (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="5 master (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-3_thumb_0AC3772D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_3_5F00_thumb_5F00_0AC3772D.png" width="644" height="410" /></a></p> <p align="justify">As described beforehand when connecting to our Linux image, we can check the internal IP address and SSH details on the dashboard of the newly created master node in the Azure Management portal, and connect via PuTTY:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-4_7A4B0631.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_4_5F00_7A4B0631.png"><img title="5 master (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="5 master (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-4_thumb_5E3CD7F7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_4_5F00_thumb_5F00_5E3CD7F7.png" width="644" height="386" /></a></p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-5_0264C338.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_5_5F00_0264C338.png"><img title="5 master (5)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="5 master (5)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-5_thumb_3FF4B1B2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_5_5F00_thumb_5F00_3FF4B1B2.png" width="504" height="485" /></a></p> <p align="justify">Once logged in, we can check the internal IP address one more time running <strong>sudo ifconfig</strong>.</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-6_5CFD607A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_6_5F00_5CFD607A.png"><img title="5 master (6)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="5 master (6)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-6_thumb_136E127D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_6_5F00_thumb_5F00_136E127D.png" width="644" height="394" /></a></p> <p align="justify">Back in the Azure management portal, attach an empty disk to the master node of size 100 GB:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-7_5E6413FD.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_7_5F00_5E6413FD.png"><img title="5 master (7)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="5 master (7)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-7_thumb_295A157E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_7_5F00_thumb_5F00_295A157E.png" width="644" height="386" /></a></p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-8_0698DDC1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_8_5F00_0698DDC1.png"><img title="5 master (8)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="5 master (8)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-8_thumb_1D5AB5FB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_8_5F00_thumb_5F00_1D5AB5FB.png" width="454" height="490" /></a></p> <p align="justify">Shortly after, we see the empty disk listed on the dashboard of the master node:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-9_014C87C1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_9_5F00_014C87C1.png"><img title="5 master (9)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="5 master (9)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-master-9_thumb_4C428941.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_master_2D00_9_5F00_thumb_5F00_4C428941.png" width="644" height="301" /></a></p> <p align="justify">&nbsp;</p> <h2 align="justify"><a name="workers">5.2. Create Worker Nodes</a></h2> <p align="justify">The same applies to the three worker nodes, with the difference that they will be in Subnet-3. We can do this via the Azure management portal as done before in <a href="#master">5.1 Create master node</a>, but since we would repeat the whole process three times, this literally calls out for PowerShell!</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006<br />007<br />008<br />009<br />010<br />011<br />012<br />013<br />014<br />015<br />016<br />017<br />018<br />019<br />020<br />021<br />022<br />023<br />024<br />025<br />026<br />027<br />028<br />029</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#006400"><font style="font-size:10pt;"># Create three VMs i.e. worker nodes</font></font></span><font style="font-size:10pt;"><br /><span><font color="#00008b">for</font></span><span><font color="#000000">(</font></span><span><font color="#ff4500">$i</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#800080">1</font></span><font color="#000000"><span>;</span><span>&nbsp;</span></font><span><font color="#ff4500">$i</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">-le</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">3</font></span><font color="#000000"><span>;</span><span>&nbsp;</span></font><span><font color="#ff4500">$i</font></span><span><font color="#a9a9a9">++</font></span></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#000000"><span>)</span><br /><span>{</span><br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#0000ff">Write-Host</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;creating oldkHDP${i}OS&quot;</font></span><br /><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp; </font></span><span><font color="#006400"># SSH port is unique to each VM</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp; </font></span><span><font color="#ff4500">$sshPort</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">52200</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">+</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$i</font></span><br /><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp; </font></span><span><font color="#006400">#create a new VM Config</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp; </font></span><span><font color="#006400"># Specify: VM image, size, name, availability set, label and disk label. Use Subnet-3</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp; </font></span><span><font color="#ff4500">$newVM</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font><span><font color="#0000ff">New-AzureVMConfig</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-ImageName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">oldkHDPimage</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-InstanceSize</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">Medium</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Name</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;oldkHDPw$i&quot;</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-AvailabilitySetName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;oldkHDPwAS&quot;</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-DiskLabel</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;oldkHDPw${i}os&quot;</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-HostCaching</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">ReadWrite</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Label</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;oldkHDPw$i&quot;</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">|</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font color="#0000ff">Add-AzureProvisioningConfig</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Linux</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-LinuxUser</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;olivia&quot;</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Password</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$adminPassword</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">|</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font color="#0000ff">Add-AzureEndpoint</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-LocalPort</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">22</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Name</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;SSH$i&quot;</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Protocol</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">tcp</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-PublicPort</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$sshPort</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">|</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span><font color="#0000ff">Set-AzureSubnet</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&#39;Subnet-3&#39;</font></span><br /></font><font face="Consolas"><font color="#000000"><span>&nbsp;&nbsp;&nbsp; </span><br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#006400">#create the VM</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp; </font></span><span><font color="#0000ff">Write-Host</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;creating VM oldkHDP${i}&quot;</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp; </font></span><span><font color="#0000ff">New-AzureVM</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-ServiceName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&#39;oldkHDP&#39;</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-VMs</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$newVM</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-VNetName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&#39;oldkHDP&#39;</font></span><br /></font><font face="Consolas"><font color="#000000"><span>&nbsp;&nbsp;&nbsp; </span><br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#006400">#attach empty disk</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp; </font></span><span><font color="#0000ff">write-host</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;attaching empty disk&quot;</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp; </font></span><span><font color="#0000ff">Get-AzureVM</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-ServiceName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&#39;oldkHDP&#39;</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Name</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;oldkHDPw$i&quot;</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font><span><font color="#a9a9a9">|</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Add-AzureDataDisk</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-CreateNew</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-DiskLabel</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;oldkHDPw${i}data1&quot;</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-DiskSizeInGB</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">100</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-LUN</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">0</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font><span><font color="#a9a9a9">|</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Update-AzureVM</font></span><br /><br /><font color="#000000"><span>}</span> </font></font></font></div></td></tr></tbody></table></div> <p align="justify">It essentially creates three VMs, each with following Information:</p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="300"><strong>Image</strong></td> <td valign="top" width="300">oldkHDPimage</td></tr> <tr> <td valign="top" width="300"><strong>Size</strong></td> <td valign="top" width="300">Medium (A2)</td></tr> <tr> <td valign="top" width="300"><strong>Name</strong></td> <td valign="top" width="300">oldkHDPw{i} (i=1-3)</td></tr> <tr> <td valign="top" width="300"><strong>Availability set</strong></td> <td valign="top" width="300">oldkHDPwAS</td></tr> <tr> <td valign="top" width="300"><strong>User</strong></td> <td valign="top" width="300">olivia</td></tr> <tr> <td valign="top" width="300"><strong>SSH</strong></td> <td valign="top" width="300">5220{i} and 22</td></tr> <tr> <td valign="top" width="300"><strong>Cloud Service</strong></td> <td valign="top" width="300">oldkHDP</td></tr> <tr> <td valign="top" width="300"><strong>Virtual Network</strong></td> <td valign="top" width="300">oldkHDP</td></tr></tbody></table> <p align="justify">In the PowerShell script, an empty disk is attached to each VM, followed by the command updating the VM itself.</p> <h1 align="justify"><a name="dnsconfig">6. Configure DNS Server</a>&nbsp;</h1> <p align="justify">Now that the master node and the three worker nodes have been created, the DNS server needs to be configured. In other words, the nodes have to be inserted manually as hosts in the zone we have created in <a href="#dnsrole" target="_blank">3. 2 Add DNS Role</a>. Add a new host for each node with the same information provided in <a href="#hosts" target="_blank">4.3 Edit Hosts File</a>.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-1_148FCF11.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_1_5F00_148FCF11.png"><img title="6 dns (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="6 dns (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-1_thumb_266EF38F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_1_5F00_thumb_5F00_266EF38F.png" width="644" height="442" /></a></p> <p>So adding the master node as a host looks as follows:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-3_03ADBBD2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_3_5F00_03ADBBD2.png"><img title="6 dns (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="6 dns (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-3_thumb_680BC08C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_3_5F00_thumb_5F00_680BC08C.png" width="333" height="331" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-4_57934F91.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_4_5F00_57934F91.png"><img title="6 dns (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="6 dns (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-4_thumb_0750F811.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_4_5F00_thumb_5F00_0750F811.png" width="438" height="159" /></a></p> <p>Eventually, you have inserted four additional hosts:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-5_09214DD8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_5_5F00_09214DD8.png"><img title="6 dns (5)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="6 dns (5)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-5_thumb_516E93A7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_5_5F00_thumb_5F00_516E93A7.png" width="644" height="442" /></a></p> <p align="justify">Following, edit the hosts file to be found in <font face="Courier New">C:\Windows\System32\drivers\etc</font> by inserting the new Information as follows:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-6_439EDE5D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_6_5F00_439EDE5D.png"><img title="6 dns (6)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="6 dns (6)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-6_thumb_72F053E7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_6_5F00_thumb_5F00_72F053E7.png" width="644" height="266" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-7_7E1C6EE2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_7_5F00_7E1C6EE2.png"><img title="6 dns (7)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="6 dns (7)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-7_thumb_6D37CAF2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_7_5F00_thumb_5F00_6D37CAF2.png" width="518" height="484" /></a></p> <p align="justify">Checking if the Connections have been established correctly, you can ping all nodes from the DNS Server…</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-8_382DCC73.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_8_5F00_382DCC73.png"><img title="6 dns (8)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="6 dns (8)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-8_thumb_4596702A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_8_5F00_thumb_5F00_4596702A.png" width="389" height="484" /></a></p> <p>…and from the master node:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-9_108C71AB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_9_5F00_108C71AB.png"><img title="6 dns (9)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="6 dns (9)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/6-dns-9_thumb_71D587BF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/6_2D00_dns_2D00_9_5F00_thumb_5F00_71D587BF.png" width="536" height="484" /></a></p> <p>&nbsp;</p> <h1><a name="nodesconfig">7. Configure all nodes</a></h1> <ol> <li><a href="#hdpconfig">Hadoop-specific and little configurations </a> <ol> <li><a href="#root">Change root password </a> </li><li><a href="#network">Edit network configuration file </a> </li><li><a href="#iptables">Configure iptables </a> </li><li><a href="#repeat">Repeat for all nodes</a></li></ol> </li><li><a href="#ssh">Set Up Password-less SSH </a> </li><li><a href="#format">Format empty attached disks </a> <ol> <li><a href="#formatm">Master node</a>  </li><li><a href="#formatw">Worker nodes</a></li></ol></li></ol> <p>&nbsp;</p> <h2><a name="hdpconfig">7.1 Hadoop-specific and little configurations </a></h2> <p align="justify">Here, we configure each node regarding aspects to either enable passwordless SSH or the installation of the Ambari Server later on.</p> <h3><a name="root">7.1.1 Change root password</a></h3> <p align="justify">Why change the root password? Later on we want to install the Ambari server using the root account so that no password will be required. For that, change the root password in each host using the commend <strong>sudo passwd root</strong>. Start with the master node:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-1-config_m-1_1839FBBC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_1_2D00_config_5F00_m_2D00_1_5F00_1839FBBC.png"><img title="7 1 config_m (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 1 config_m (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-1-config_m-1_thumb_47F7A43B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_1_2D00_config_5F00_m_2D00_1_5F00_thumb_5F00_47F7A43B.png" width="644" height="393" /></a></p> <h3><a name="network">7.1.2 Edit network configuration file</a></h3> <p>As the <a title="Edit the Network Configuration File" href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.6.0.0/bk_using_Ambari_book/content/ambari-chap1-5-5.html#d6e660" target="_blank">Hortonworks documentation</a> specifies, the desired network configuration for each host needs to be set, i.e. specifying the FQDN for each host.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-1-config_m-3_2C55A8F6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_1_2D00_config_5F00_m_2D00_3_5F00_2C55A8F6.png"><img title="7 1 config_m (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 1 config_m (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-1-config_m-3_thumb_0757E87D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_1_2D00_config_5F00_m_2D00_3_5F00_thumb_5F00_0757E87D.png" width="644" height="393" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-1-config_m-2_0FDB47C7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_1_2D00_config_5F00_m_2D00_2_5F00_0FDB47C7.png"><img title="7 1 config_m (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 1 config_m (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-1-config_m-2_thumb_18CADA06.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_1_2D00_config_5F00_m_2D00_2_5F00_thumb_5F00_18CADA06.png" width="644" height="393" /></a></p> <h3><a name="iptables">7.1.3 Configure iptables</a></h3> <p align="justify">The setup of the Ambari Server requires certain ports to be open and available. Easiest option is to disable iptables temporarily:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-1-config_m-4_0852690B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_1_2D00_config_5F00_m_2D00_4_5F00_0852690B.png"><img title="7 1 config_m (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 1 config_m (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-1-config_m-4_thumb_65FD6442.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_1_2D00_config_5F00_m_2D00_4_5F00_thumb_5F00_65FD6442.png" width="644" height="393" /></a></p> <p>See <a title="Configuring iptables" href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.6.0.0/bk_using_Ambari_book/content/ambari-chap1-5-6.html" target="_blank">here</a> in the Hortonworks documentation.</p> <h3><a name="repeat">7.1.4 Repeat for all nodes</a></h3> <p align="justify">Now repeat these three steps (1. change root password, 2. edit the network configuration file, 3. configure iptables) for each node, i.e. the three worker nodes. Connect to each worker node given the SSH details on the Azure management portal.</p> <p align="justify">Worker node 1:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-1_409370D4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_1_5F00_409370D4.png"><img title="7 2 config_w (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 2 config_w (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-1_thumb_6044DB4D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_1_5F00_thumb_5F00_6044DB4D.png" width="644" height="381" /></a></p> <p align="justify">Change root password for worker node 1:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-2_567F73D5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_2_5F00_567F73D5.png"><img title="7 2 config_w (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 2 config_w (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-2_thumb_140F6250.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_2_5F00_thumb_5F00_140F6250.png" width="644" height="407" /></a></p> <p align="justify">Edit network configuration file in worker node 2:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-4_714E2A92.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_4_5F00_714E2A92.png"><img title="7 2 config_w (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 2 config_w (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-4_thumb_47D9E952.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_4_5F00_thumb_5F00_47D9E952.png" width="644" height="407" /></a></p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-3_5710521F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_3_5F00_5710521F.png"><img title="7 2 config_w (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 2 config_w (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-3_thumb_47041419.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_3_5F00_thumb_5F00_47041419.png" width="644" height="407" /></a></p> <p align="justify">Configure iptables in worker node 1:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-5_6478F5D6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_5_5F00_6478F5D6.png"><img title="7 2 config_w (5)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 2 config_w (5)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-5_thumb_2D326E9B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_5_5F00_thumb_5F00_2D326E9B.png" width="644" height="407" /></a></p> <p align="justify">Worker node 2:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-6_0A7136DE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_6_5F00_0A7136DE.png"><img title="7 2 config_w (6)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 2 config_w (6)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-6_thumb_5E5439EC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_6_5F00_thumb_5F00_5E5439EC.png" width="644" height="407" /></a></p> <p align="justify">Worker node 3:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-7_229731EA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_7_5F00_229731EA.png"><img title="7 2 config_w (7)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 2 config_w (7)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-2-config_w-7_thumb_246787B1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_2_2D00_config_5F00_w_2D00_7_5F00_thumb_5F00_246787B1.png" width="644" height="407" /></a></p> <h2 align="justify"><a name="ssh">7.2. Set Up Password-less SSH</a></h2> <p align="justify">Have a look at the Hortonworks documentation in <a href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.6.0.0/bk_using_Ambari_book/content/ambari-chap1-5-2.html" target="_blank">here</a>.</p> <p align="justify">Start off with generating public and private SSH keys on the master node (i.e. Ambari Server host), by running</p> <p align="justify"><font face="Courier New">ssh-keygen –t rsa –P “”</font></p> <p align="justify">Use default values.</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-3-ssh-1_28746634.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_3_2D00_ssh_2D00_1_5F00_28746634.png"><img title="7 3 ssh (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 3 ssh (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-3-ssh-1_thumb_6D239126.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_3_2D00_ssh_2D00_1_5F00_thumb_5F00_6D239126.png" width="644" height="393" /></a></p> <p align="justify">Copy the SSH public key to the root account on all target hosts, i.e. worker nodes, by running</p> <p align="justify"><font face="Courier New">ssh-copy-id –i ~/.ssh/id_rsa.pub root@oldkHDPw1</font></p> <p align="justify">Here, the root’s password is required, which is the reason for changing it beforehand. Check if you can connect to specified host by running ssh <strong>root@oldkHDPw1</strong>.</p> <p align="justify">Once connected, set permissions on the .ssh directory and authorized_keys:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-3-ssh-3_4A625969.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_3_2D00_ssh_2D00_3_5F00_4A625969.png"><img title="7 3 ssh (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 3 ssh (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-3-ssh-3_thumb_0BFC95B6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_3_2D00_ssh_2D00_3_5F00_thumb_5F00_0BFC95B6.png" width="644" height="324" /></a></p> <p align="justify">Repeat for all worker nodes and the master node itself:</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-3-ssh-4_302480F6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_3_2D00_ssh_2D00_4_5F00_302480F6.png"><img title="7 3 ssh (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 3 ssh (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-3-ssh-4_thumb_1FAC0FFB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_3_2D00_ssh_2D00_4_5F00_thumb_5F00_1FAC0FFB.png" width="644" height="324" /></a></p> <p align="justify">Now, if you connect to the other nodes from the master node via SSH, you shall not be asked for a Password. Check it!</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-3-ssh-5_6AA2117B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_3_2D00_ssh_2D00_5_5F00_6AA2117B.png"><img title="7 3 ssh (5)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 3 ssh (5)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-3-ssh-5_thumb_5A29A080.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_3_2D00_ssh_2D00_5_5F00_thumb_5F00_5A29A080.png" width="644" height="356" /></a></p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-3-ssh-6_0C23D1BC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_3_2D00_ssh_2D00_6_5F00_0C23D1BC.png"><img title="7 3 ssh (6)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 3 ssh (6)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-3-ssh-6_thumb_429483BE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_3_2D00_ssh_2D00_6_5F00_thumb_5F00_429483BE.png" width="643" height="484" /></a></p> <p>&nbsp;</p> <h2><a name="format">7.3. Format empty attached disks (for all nodes)</a></h2> <ol> <li><a href="#formatm">Master node</a>  </li><li><a href="#formatw">Worker nodes</a></li></ol> <p align="justify">Each node contained in our to-be-Hadoop-cluster as an empty data disk attached to it, but each is still offline. Hence, some initialisation is required, i.e. creating a new partition, a file system and a directory, for the data disk to be ready for use. Extensive information on how to attach a data disk to a Linux VM can be found <a title="Linux VM - How to attach a data disk to the new virtual machine" href="http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-tutorial/#attachdisk" target="_blank">here</a> in the Azure documentation. We start with the master node:</p> <h3><a name="formatm">7.3.1 Master node</a></h3> <p align="justify">List all partitions in the master node running <strong>fdisk –l</strong>. We obtain Information on the empty attached disk marked in blue:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-1_3B0BA502.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_1_5F00_3B0BA502.png"><img title="7 4 format_m (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 4 format_m (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-1_thumb_2A933407.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_1_5F00_thumb_5F00_2A933407.png" width="644" height="459" /></a></p> <p>Running the command <strong>grep SCSI /var/log/messages </strong>helps you find the identifier of the last data disk added (also marked in blue):</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-2_2780D612.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_2_5F00_2780D612.png"><img title="7 4 format_m (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 4 format_m (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-2_thumb_052BD14A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_2_5F00_thumb_5F00_052BD14A.png" width="644" height="202" /></a></p> <p>Now, we will create a new device on the empty attached disk, by first running <strong>fdisk /dev/sdc</strong>, and then typing in the following commands:</p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="102"><strong>Command</strong></td> <td valign="top" width="498"><strong>What is happening?</strong></td></tr> <tr> <td valign="top" width="102">p</td> <td valign="top" width="498">See details about the disk to be partitioned.</td></tr> <tr> <td valign="top" width="102">n</td> <td valign="top" width="498">Create a new partition.</td></tr> <tr> <td valign="top" width="102">p</td> <td valign="top" width="498">Make the partition the primary partition</td></tr> <tr> <td valign="top" width="102">1</td> <td valign="top" width="498">Make it the first partition.</td></tr></tbody></table> <p>and accept default values:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-3_6AEDF8D6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_3_5F00_6AEDF8D6.png"><img title="7 4 format_m (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 4 format_m (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-3_thumb_0862DA94.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_3_5F00_thumb_5F00_0862DA94.png" width="591" height="484" /></a></p> <table cellspacing="0" cellpadding="2" width="600" border="0"> <tbody> <tr> <td valign="top" width="130"><strong>Command</strong></td> <td valign="top" width="470"><strong>What is happening?</strong></td></tr> <tr> <td valign="top" width="130">p</td> <td valign="top" width="470">See details about the disk that is being partitioned.</td></tr> <tr> <td valign="top" width="130">w</td> <td valign="top" width="470">Write settings for the disk.</td></tr></tbody></table> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-4_1A41FF12.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_4_5F00_1A41FF12.png"><img title="7 4 format_m (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 4 format_m (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-4_thumb_0720D266.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_4_5F00_thumb_5F00_0720D266.png" width="644" height="341" /></a></p> <p align="justify">Now, create the file system on the new partition, in this case an ext2/3 filesystem running <strong>mkfs.ext3 /dev/sdc1</strong>.</p> <p align="justify">Following that, we need a directory to mount the new file system. Hence, run <strong>mkdir /mnt/datadrive </strong>to create the directory /mnt/datadrive. To mount the drive, run</p> <p align="justify"><font face="Courier New">mount /dev/sdc1 /mnt/datadrive</font></p> <p align="justify">such that the data disk is ready to use as <strong>/mnt/datadrive</strong>.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-7_5216D3E6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_7_5F00_5216D3E6.png"><img title="7 4 format_m (7)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 4 format_m (7)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-7_thumb_419E62EB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_7_5F00_thumb_5F00_419E62EB.png" width="644" height="442" /></a></p> <p>Add the new drive to <font face="Courier New">/etc/fstab</font>:</p> <p><font face="Courier New">/dev/sdc1 /mnt/datadrive ext3 defaults 1 2</font></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-6_73989426.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_6_5F00_73989426.png"><img title="7 4 format_m (6)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 4 format_m (6)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_m-6_thumb_6A3F5FA3.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_m_2D00_6_5F00_thumb_5F00_6A3F5FA3.png" width="644" height="427" /></a></p> <h3><a name="formatw">7.3.2. Format empty attached disk: Worker Nodes</a></h3> <p>You repeat the same for all three worker nodes:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_w-1_477E27E6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_w_2D00_1_5F00_477E27E6.png"><img title="7 4 format_w (1)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 4 format_w (1)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_w-1_thumb_64F309A3.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_w_2D00_1_5F00_thumb_5F00_64F309A3.png" width="575" height="484" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_w-2_01FBB86C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_w_2D00_2_5F00_01FBB86C.png"><img title="7 4 format_w (2)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 4 format_w (2)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_w-2_thumb_55DEBB7A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_w_2D00_2_5F00_thumb_5F00_55DEBB7A.png" width="644" height="341" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_w-3_40EFC9B8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_w_2D00_3_5F00_40EFC9B8.png"><img title="7 4 format_w (3)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 4 format_w (3)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_w-3_thumb_5E64AB75.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_w_2D00_3_5F00_thumb_5F00_5E64AB75.png" width="644" height="442" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_w-4_42567D3B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_w_2D00_4_5F00_42567D3B.png"><img title="7 4 format_w (4)" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="7 4 format_w (4)" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/7-4-format_w-4_thumb_5FCB5EF8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/7_2D00_4_2D00_format_5F00_w_2D00_4_5F00_thumb_5F00_5FCB5EF8.png" width="644" height="442" /></a></p> <p>Now, the infrastructure is all set up and ready for the <a href="http://blogs.technet.com/b/oliviaklose/archive/2014/07/02/hadoop-on-linux-on-azure-step-by-step-install-hadoop-3.aspx">Hadoop installation</a>!</p> <p>Big thanks also go to <a href="http://blogs.msdn.com/b/benjguin/" target="_blank">Benjamin Guinebertière</a> and <a target="_blank">Hans Laubisch</a> for their support.</p>]]></content:encoded>
    </item>
    <item>
      <title>Hadoop on Linux on Azure (1)</title>
      <link>https://docs.microsoft.com/archive/blogs/oliviaklose/hadoop-on-linux-on-azure-1</link>
      <pubDate>Tue, 17 Jun 2014 06:43:49 GMT</pubDate>
      <dc:creator><![CDATA[OliviaKlose]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/oliviaklose/2014/06/17/hadoop-on-linux-on-azure-1/</guid>
      <description><![CDATA[In this blog series, we set up a Hadoop cluster on Azure using virtual machines running Linux. More...]]></description>
      <content:encoded><![CDATA[<p>In this blog series, we set up a Hadoop cluster on Azure using virtual machines running Linux. More specifically, we use the HDP 2.1 on Linux distribution by <a href="http://hortonworks.com/" target="_blank">Hortonworks</a> that also provides the HDP distributions for the Windows platform. Furthermore, we install Hadoop with <a href="http://ambari.apache.org/" target="_blank">Ambari</a>, an Apache project that provides an intuitive UI for provisioning, managing and monitoring a Hadoop cluster.</p> <h1 align="justify">Contents</h1> <p><font size="3"><strong>1 Introduction</strong><br /></font><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/06/18/hadoop-on-linux-on-azure-step-by-step-build-the-infrastructure-2.aspx">2 Step-by-Step: Build the Infrastructure</a><br /><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/07/02/hadoop-on-linux-on-azure-step-by-step-install-hadoop-3.aspx">3 Step-by-Step: Install a Hadoop Distribution</a></p> <h1>Introduction</h1> <p align="justify">While <a href="http://azure.microsoft.com/en-us/documentation/services/hdinsight" target="_blank">HDInsight</a> is the Platform as a Service (PaaS) option for building and running a Hadoop cluster in Microsoft Azure, this article specifies its IaaS (Infrastructure as a Service) counterpart. With the IaaS option you have more flexibility in the choice of Hadoop distributions, Hadoop components and platform (e.g. Linux), amongst others.</p> <p align="justify">This blog series elaborates the install of Hortonworks’ Hadoop distribution for Linux, <a href="http://hortonworks.com/hdp/downloads/" target="_blank">HDP 2.1 for Linux</a>. Alternatives for commercial Hadoop distributions on Linux include <a href="http://www.cloudera.com/content/support/en/downloads/cdh/cdh-5-0-2.html" target="_blank">Cloudera (CDH)</a> and <a href="http://www.mapr.com/products/hadoop-download" target="_blank">MapR</a>. Moreover, we will use CentOS as the Linux platform. In the end, we will have a four-node Hadoop cluster: one master node (also called NameNode) and three worker nodes (also called DataNode):</p> <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/0-architecture-3_7223EAAC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/0_2D00_architecture_2D00_3_5F00_7223EAAC.png"><img title="0 architecture 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="0 architecture 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/0-architecture-3_thumb_01C6866F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/0_2D00_architecture_2D00_3_5F00_thumb_5F00_01C6866F.png" width="500" height="158" /></a></p> <p align="justify">We heavily base our step-by-step guide on Benjamin’s great article <a href="http://blogs.msdn.com/b/benjguin/archive/2013/04/05/how-to-install-hadoop-on-windows-azure-linux-virtual-machines.aspx" target="_blank">How to install Hadoop on Windows Azure Linux virtual machines</a> and Hortonworks’ documentation <a title="Hortonworks Data Platform &ndash; Automated Install with Ambari" href="http://docs.hortonworks.com/HDPDocuments/Ambari-1.6.0.0/bk_using_Ambari_book/content/index.html" target="_blank">Hortonworks Data Platform – Automated Install with Ambari</a>.</p> <h1></h1> <p>Before installing a Hadoop distribution though, the required environment needs to be prepared. Thus, the next article walks through the infrastructure setup for such a cluster on Microsoft Azure.</p>]]></content:encoded>
    </item>
    <item>
      <title>Mahout for Dummies (3) – Step-by-Step: Mahout with HDInsight PowerShell Style</title>
      <link>https://docs.microsoft.com/archive/blogs/oliviaklose/mahout-for-dummies-3-step-by-step-mahout-with-hdinsight-powershell-style</link>
      <pubDate>Mon, 26 May 2014 07:28:07 GMT</pubDate>
      <dc:creator><![CDATA[OliviaKlose]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/oliviaklose/2014/05/26/mahout-for-dummies-3-step-by-step-mahout-with-hdinsight-powershell-style/</guid>
      <description><![CDATA[In the blog series Mahout for Dummies options on how to use Mahout in HDInsight are being explored...]]></description>
      <content:encoded><![CDATA[ <p>In the blog series <a href="http://blogs.technet.com/b/oliviaklose/archive/2014/04/15/mahout-for-dummies-1.aspx" target="_blank">Mahout for Dummies</a> options on how to use Mahout in HDInsight are being explored and elaborated.</p> <h1>Contents</h1> <p><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/04/15/mahout-for-dummies-1.aspx">1 What is Mahout?</a><br /><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/04/14/mahout-for-dummies-2-step-by-step-mahout-and-hdinsight-interactive-style.aspx">2 Step-by-Step: Mahout with HDInsight Interactive Style</a><br /><strong><font size="4">3 Step-by-Step: Mahout with HDInsight PowerShell Style</font></strong></p> <p>&nbsp;</p> <h1>Step-by-Step: Mahout with HDInsight PowerShell Style</h1> <p align="justify">In this episode of the series Mahout for Dummies, we deal with Mahout on HDInsight in a PowerShell manner. Ultimately, we go through the Random Forest Scenario detailed in <a href="http://bit.ly/1eOOBIp" target="_blank">previous post</a>.</p> <ol> <li><a href="#data">Upload Data</a>  </li><li><a href="#hdinsight">Create HDInsight Cluster</a>  </li><li><a href="#general">Mahout: general PowerShell command</a>  </li><li><a href="#randomforest">Scenario: Random Forest</a>  <ol> <li><a href="#train">Build forest</a>  </li><li><a href="#test">Classify test data</a></li></ol> </li><li><a href="#clean">Clean up</a>  </li><li><a href="#recommender">Scenario: Recommender Job</a>  </li><li><a href="#end">Wrapping up…</a></li></ol> <h1><a name="data">1. Upload Data</a></h1> <p>Here, we upload all data to the Azure blob storage necessary to build a random forest model from and then to test the model on. More specifically, training and test data will be uploaded. Note that information on the storage account (e.g. container name and storage context) must already be known.</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006<br />007<br />008<br />009<br />010<br />011<br />012<br />013</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font color="#006400"><span><font style="font-size:10pt;">## 1. File Paths</font></span><font style="font-size:10pt;"><br /><span># Data stored locally</span></font></font><font style="font-size:10pt;"><br /><span><font color="#ff4500">$localTrain</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;C:\&lt;TrainingDataPath&gt;\KDDTrain+.arff&quot;</font></span><br /><span><font color="#ff4500">$localTest</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;C:\&lt;TestDataPath&gt;\KDDTest+.arff&quot;</font></span><br /><span><font color="#006400"># Data to be stored in Azure Blob Storage</font></span><br /><span><font color="#ff4500">$blobTrain</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;testdata/KDDTrain+.arff&quot;</font></span><br /><span><font color="#ff4500">$blobTest</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;testdata/KDDTest+.arff&quot;</font></span><br /><br /><span><font color="#006400">## 2. Upload file from local to Azure Blob Storage</font></span><br /><span><font color="#0000ff">Set-AzureStorageBlobContent</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-File</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$localTrain</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$blobTrain</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><br /><span><font color="#0000ff">Set-AzureStorageBlobContent</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-File</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$localTest</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$blobTest</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-Data-1-MS-eg_7442CCE6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_Data_2D00_1_2D00_MS_2D00_eg_5F00_7442CCE6.png"><img title="3 Data 1 MS eg" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 Data 1 MS eg" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-Data-1-MS-eg_thumb_215A4A66.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_Data_2D00_1_2D00_MS_2D00_eg_5F00_thumb_5F00_215A4A66.png" width="640" height="406" /></a></p> <p>Since Mahout is not installed on any HDInsight cluster by default (and hence not supported by Microsoft), the Mahout jar files also shall have to be uploaded to the blob storage.</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006<br />007<br />008<br />009<br />010<br />011<br />012<br />013</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font color="#006400"><span><font style="font-size:10pt;">## 1. File Paths</font></span><font style="font-size:10pt;"><br /><span># Mahout jar files stored locally</span></font></font><font style="font-size:10pt;"><br /><span><font color="#ff4500">$localMahoutJar</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;C:\&lt;PathToMahoutDistribution&gt;\mahout-core-0.9-job.jar&quot;</font></span><br /><span><font color="#ff4500">$localMahoutEx</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;C:\&lt;PathToMahoutDistribution&gt;\mahout-examples-0.9-job.jar&quot;</font></span><br /><span><font color="#006400"># Mahout jar files to be stored in Azure Blob Storage</font></span><br /><span><font color="#ff4500">$blobMahoutJar</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;mahout/mahout-core-0.9-job.jar&quot;</font></span><br /><span><font color="#ff4500">$blobMahoutEx</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;mahout/mahout-examples-0.9-job.jar&quot;</font></span><br /><br /><span><font color="#006400">## 2. Upload file from local to Azure Blob Storage</font></span><br /><span><font color="#0000ff">Set-AzureStorageBlobContent</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-File</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$localMahoutJar</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$blobMahoutJar</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><br /><span><font color="#0000ff">Set-AzureStorageBlobContent</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-File</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$localMahoutEx</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$blobMahoutEx</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>&nbsp;</p> <h1><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-Data-1-MS-eg-3_1E47EC71.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_Data_2D00_1_2D00_MS_2D00_eg_2D00_3_5F00_1E47EC71.png"><img title="3 Data 1 MS eg 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 Data 1 MS eg 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-Data-1-MS-eg-3_thumb_4B5F69F0.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_Data_2D00_1_2D00_MS_2D00_eg_2D00_3_5F00_thumb_5F00_4B5F69F0.png" width="640" height="409" /></a></h1> <h1><a name="hdinsight">2. Create HDInsight Cluster</a></h1> <p>We just create a simple HDInsight cluster, just like in the <a href="http://blogs.technet.com/b/oliviaklose/archive/2014/03/07/azure-powershell-serie-simple-hdinsight.aspx" target="_blank">Azure PowerShell Series: Simple HDInsight</a>. Alternatively, you could create one with additional functionality; see <a href="http://blogs.technet.com/b/oliviaklose/archive/2014/03/09/azure-powershell-serie-custom-create-hdinsight.aspx" target="_blank">Azure PowerShell Series: Custom Create HDInsight</a>.</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006<br />007<br />008<br />009<br />010<br />011</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#006400"><font style="font-size:10pt;"># Input</font></font></span><font style="font-size:10pt;"><br /><span><font color="#ff4500">$clusterName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;HDInsightClusterName&gt;&quot;</font></span><br /><span><font color="#ff4500">$clusterCreds</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Get-Credential</font></span><br /><span><font color="#ff4500">$numNodes</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">4</font></span><br /><br /><span><font color="#006400"># Simple create</font></span><br /><span><font color="#0000ff">New-AzureHDInsightCluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Name</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Subscription</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$subID</font></span></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-Location</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$location</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-DefaultStorageAccountName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageAccount</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-DefaultStorageAccountKey</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageKey</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-DefaultStorageContainerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Credential</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterCreds</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-ClusterSizeInNodes</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$numNodes</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Version</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">2.1</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>In the Azure Explorer, you observe some libraries being uploaded, such as mapred, hive, etc.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-HDInsight-1_484D0BFB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_HDInsight_2D00_1_5F00_484D0BFB.png"><img title="2 HDInsight 1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="2 HDInsight 1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-HDInsight-1_thumb_50D2FBF6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_HDInsight_2D00_1_5F00_thumb_5F00_50D2FBF6.png" width="640" height="409" /></a></p> <p>Just like in the previous post <a href="http://bit.ly/1eOOBIp" target="_blank">Step-by-Step: Mahout with HDInsight Interactive Style</a>, both the training and test data need to be located in the directory <font face="Courier New">user/hdp/</font></p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#ff4500"><font style="font-size:10pt;">$blobHDPtrain</font></font></span><font style="font-size:10pt;"><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;user/hdp/testdata/KDDTrain+.arff&quot;</font></span><br /><span><font color="#ff4500">$blobHDPtest</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;user/hdp/testdata/KDDTest+.arff&quot;</font></span><br /><span><font color="#0000ff">Set-AzureStorageBlobContent</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-File</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$localTrain</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$blobHDPtrain</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><br /><span><font color="#0000ff">Set-AzureStorageBlobContent</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-File</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$localTest</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$blobHDPtest</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>&nbsp;</p> <h1><a name="general">3. Mahout: General PowerShell Command</a></h1> <p>The typical command for invoking Mahout from the Hadoop Command Line via RDP connection looks as follows:</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#0000ff"><font style="font-size:10pt;">hadoop</font></font></span><font style="font-size:10pt;"><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">jar</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">C:\apps\dist\mahout-0.9\mahout-core-0.9-job.jar</font></span><span><font color="#000000">&nbsp;</font></span><br /><span><font color="#0000ff">org.apache.mahout.classifier.df.tools.Describe</font></span><span><font color="#000000">&nbsp;</font></span><br /><span><font color="#0000ff">-p</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">wasb:///user/hdp/testdata/KDDTrain+.arff</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">...</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>Thus, it is an ordinary command running the program contained in specified JAR file. <font face="Courier New">org.apache.mahout.classifier.df.tool.Describe</font> is the class name being invoked, followed by mandatory and optional arguments. Translated into PowerShell:</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#ff4500"><font style="font-size:10pt;">$mahoutJob</font></font></span><font style="font-size:10pt;"><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">New-AzureHDInsightMapReduceJobDefinition</font></span></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-JarFile</font></span><span><font color="#000000">&nbsp; </font></span><span><font color="#8b0000">&quot;&lt;PathToMahoutJAR&gt;/mahout-core-0.9-job.jar&quot;</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-ClassName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;ClassName&gt;&quot;</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-Arguments</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;-p wasb:///user/hdp/testdata/KDDTrain+.arff …&quot;</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>In the case above, this translates into the following PowerShell command:</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#ff4500"><font style="font-size:10pt;">$mahoutJob</font></font></span><font style="font-size:10pt;"><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">New-AzureHDInsightMapReduceJobDefinition</font></span></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-JarFile</font></span><span><font color="#000000">&nbsp; </font></span><span><font color="#8b0000">&quot;wasb://$containerName@$storageAccount.blob.core.windows.net/$blobMahoutJar&quot;</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-ClassName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;org.apache.mahout.classifier.df.tools.Describe&quot;</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-Arguments</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;-p wasb:///user/hdp/$blobTrain -f testdata/KDDTrain+.info -d N 3 C 2 N C 4 N C 8 N 2 C 19 N L&quot;</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>or a little more elaborate:</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006<br />007<br />008<br />009<br />010<br />011<br />012<br />013<br />014<br />015<br />016<br />017<br />018<br />019<br />020<br />021<br />022<br />023<br />024<br />025<br />026<br />027<br />028<br />029<br />030</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#ff4500"><font style="font-size:10pt;">$mahoutJob</font></font></span><font style="font-size:10pt;"><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">New-AzureHDInsightMapReduceJobDefinition</font></span></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-JarFile</font></span><span><font color="#000000">&nbsp; </font></span><span><font color="#8b0000">&quot;wasb://$containerName@$storageAccount.blob.core.windows.net/$blobMahoutJar&quot;</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-ClassName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;org.apache.mahout.classifier.df.tools.Describe&quot;</font></span><br /><br /><span><font color="#006400"># path to training data</font></span><br /><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-p&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;wasb:///user/hdp/$blobTrain&quot;</font></span><span><font color="#000000">)</font></span><br /><br /><span><font color="#006400"># path to generated descriptor file</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-f&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;wasb:///user/hdp/testdata/KDDTrain+.info&quot;</font></span><span><font color="#000000">)</font></span><br /><br /><span><font color="#006400"># attributes of given training data</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-d&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;N&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;3&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;C&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;2&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;N&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;C&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;4&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;N&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;C&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;8&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;N&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;2&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;C&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;19&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;N&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutDescriptor</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;L&quot;</font></span><font color="#000000"><span>)</span> </font></font></font></div></td></tr></tbody></table></div> <p>Note that the PowerShell commandlets have so far only defined the job but not triggered it yet. The Hadoop Job is started by the following command:</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#ff4500"><font style="font-size:10pt;">$mahoutJobProcessing</font></font></span><font style="font-size:10pt;"><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Start-AzureHDInsightJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Cluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-JobDefinition</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Credential</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterCreds</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>To automatically wait for the HDInsight job to process, you can insert the following</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#0000ff"><font style="font-size:10pt;">Wait-AzureHDInsightJob</font></font></span><font style="font-size:10pt;"><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Job</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutJobProcessing</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-WaitTimeoutInSeconds</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">3600</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>It gives an hour (i.e. 3600 seconds) for the HDInsight job to process . You can print out any output error as follows:</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#0000ff"><font style="font-size:10pt;">Get-AzureHDInsightJobOutput</font></font></span><font style="font-size:10pt;"><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Cluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Subscription</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$subID</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-JobId</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutJobProcessing</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>JobId</span><span>&nbsp;</span></font><span><font color="#000080">-StandardError</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>&nbsp;</p> <h1><a name="randomforest">4. Scenario: Random Forest</a></h1> <p>In the previous section, we elaborated on how to construct a Mahout Job as a PowerShell command. Here, we go through an example using the Random Forest, just like in the previous post <a href="http://blogs.technet.com/b/oliviaklose/archive/2014/04/14/mahout-for-dummies-2-step-by-step-mahout-and-hdinsight-interactive-style.aspx#rf" target="_blank">Step-by-Step: Mahout with HDInsight Interactive Style – Scenario Random Forest</a>.</p> <h2><a name="train">4.1. Build Forest</a></h2> <p>As a reminder, the command we used to build a forest in <a href="http://blogs.technet.com/b/oliviaklose/archive/2014/04/14/mahout-for-dummies-2-step-by-step-mahout-and-hdinsight-interactive-style.aspx#build" target="_blank">Interactive Style</a> is the following:</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#0000ff"><font style="font-size:10pt;">hadoop</font></font></span><font style="font-size:10pt;"><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">jar</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">C:\apps\dist\mahout-0.9\mahout-examples-0.9-job.jar</font></span><span><font color="#000000">&nbsp;</font></span><br /><span><font color="#0000ff">org.apache.mahout.classifier.df.mapreduce.BuildForest</font></span><span><font color="#000000">&nbsp;</font></span><br /><span><font color="#0000ff">-Dmapred</font></span><span><font color="#8a2be2">.max.split.size=1874231</font></span><span><font color="#000000">&nbsp;</font></span><br /><span><font color="#0000ff">-d</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">wasb:///user/hdp/testdata/KDDTrain+.arff</font></span><span><font color="#000000">&nbsp;</font></span><br /><span><font color="#0000ff">-ds</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">wasb:///user/hdp/testdata/KDDTrain+.info</font></span><span><font color="#000000">&nbsp;</font></span><br /><span><font color="#0000ff">-sl</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">5</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-p</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-t</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">100</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-o</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">nsl-forest</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>Thus, the “translated” PowerShell command is</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006<br />007<br />008<br />009<br />010<br />011<br />012<br />013<br />014<br />015<br />016<br />017<br />018<br />019<br />020<br />021<br />022<br />023<br />024<br />025<br />026<br />027<br />028<br />029<br />030<br />031<br />032<br />033<br />034<br />035<br />036</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#006400"><font style="font-size:10pt;">## build forest</font></font></span><font style="font-size:10pt;"><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">New-AzureHDInsightMapReduceJobDefinition</font></span></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-JarFile</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;wasb://$containerName@$storageAccount.blob.core.windows.net/$blobMahoutEx&quot;</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-ClassName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;org.apache.mahout.classifier.df.mapreduce.BuildForest&quot;</font></span><br /><br /><span><font color="#006400"># maximum data size per node</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-Dmapred.max.split.size=1874231&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#006400"># data path</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-d&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;wasb:///user/hdp/testdata/KDDTrain+.arff&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#006400"># dataset path</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-ds&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;wasb:///user/hdp/testdata/KDDTrain+.info&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#006400"># number of variables being randomly selected at each node</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-sl&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;5&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#006400"># flag for partial implementation</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-p&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#006400"># number of trees</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-t&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;100&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#006400"># output path for generated forest</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-o&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutForest</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;nsl-forest&quot;</font></span><span><font color="#000000">)</font></span><br /><br /><span><font color="#006400"># start job</font></span><br /><span><font color="#ff4500">$mahoutForestProcessing</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Start-AzureHDInsightJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Cluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-JobDefinition</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutForest</font></span><br /><br /><span><font color="#006400"># wait for job</font></span><br /><span><font color="#0000ff">Wait-AzureHDInsightJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Subscription</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$subID</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Job</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutForestProcessing</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-WaitTimeoutInSeconds</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">3600</font></span><br /><br /><span><font color="#006400"># print out error if any</font></span><br /><span><font color="#0000ff">Get-AzureHDInsightJobOutput</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Cluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Subscription</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$subID</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-JobId</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutForestProcessing</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>JobId</span><span>&nbsp;</span></font><span><font color="#000080">-StandardError</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>The output in PowerShell should look like this:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-RF-1_5B92E3FC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_RF_2D00_1_5F00_5B92E3FC.png"><img title="4 RF 1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="4 RF 1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-RF-1_thumb_26AD90D2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_RF_2D00_1_5F00_thumb_5F00_26AD90D2.png" width="600" height="619" /></a></p> <p>&nbsp;</p> <h2><a name="test">4.2. Classify Test Data</a></h2> <p>The “converted” PowerShell command of the classifying command proposed in <a href="http://blogs.technet.com/b/oliviaklose/archive/2014/04/14/mahout-for-dummies-2-step-by-step-mahout-and-hdinsight-interactive-style.aspx#test" target="_blank">Interactive Style</a> is as follows:</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006<br />007<br />008<br />009<br />010<br />011<br />012<br />013<br />014<br />015<br />016<br />017<br />018</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#ff4500"><font style="font-size:10pt;">$mahoutClassify</font></font></span><font style="font-size:10pt;"><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">New-AzureHDInsightMapReduceJobDefinition</font></span></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-JarFile</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;wasb://$containerName@$storageAccount.blob.core.windows.net/$blobMahoutEx&quot;</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-ClassName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;org.apache.mahout.classifier.df.mapreduce.TestForest&quot;</font></span><br /><br /><span><font color="#ff4500">$mahoutClassify</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-i&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutClassify</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;wasb:///user/hdp/testdata/KDDTest+.arff&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutClassify</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-ds&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutClassify</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;wasb:///user/hdp/testdata/KDDTrain+.info&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutClassify</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-m&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutClassify</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;wasb:///user/hdp/nsl-forest&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutClassify</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-a&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutClassify</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-mr&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutClassify</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-o&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutClassify</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;predictions&quot;</font></span><span><font color="#000000">)</font></span><br /><br /><span><font color="#ff4500">$mahoutClassifyJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Start-AzureHDInsightJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Cluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-JobDefinition</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutClassify</font></span><br /><span><font color="#0000ff">Wait-AzureHDInsightJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Job</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutClassifyJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-WaitTimeoutInSeconds</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">3600</font></span><br /><span><font color="#0000ff">Get-AzureHDInsightJobOutput</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Cluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-JobId</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutClassifyJob</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>JobId</span><span>&nbsp;</span></font><span><font color="#000080">-StandardError</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-RF-2_1808064F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_RF_2D00_2_5F00_1808064F.png"><img title="4 RF 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="4 RF 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-RF-2_thumb_54C21F90.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_RF_2D00_2_5F00_thumb_5F00_54C21F90.png" width="450" height="152" /></a></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-RF-3_38B3F156.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_RF_2D00_3_5F00_38B3F156.png"><img title="4 RF 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="4 RF 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/4-RF-3_thumb_56B720AC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/4_2D00_RF_2D00_3_5F00_thumb_5F00_56B720AC.png" width="640" height="768" /></a></p> <p>Note that the Output shown above has the same format and very similar results to the previous <a href="http://blogs.technet.com/b/oliviaklose/archive/2014/04/14/mahout-for-dummies-2-step-by-step-mahout-and-hdinsight-interactive-style.aspx#test" target="_blank">post</a> when done in interactive style.</p> <h1><a name="clean">5. Clean Up</a></h1> <p>Cleaning up involves the likes of removing and HDInsight cluster but also removing temporary directories. While the PowerShell command for deleting a single file is pretty straight forward, i.e.</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#0000ff"><font style="font-size:10pt;">Remove-AzureStorageBlob</font></font></span><font style="font-size:10pt;"><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$file</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>deleting a folder structure comprises a loop in which every single file with specified file path prefix is removed.</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006<br />007<br />008<br />009<br />010<br />011<br />012<br />013<br />014</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><span><font color="#006400"><font style="font-size:10pt;">## a. Remove temp directory</font></font></span><font style="font-size:10pt;"><br /><span><font color="#ff4500">$blobPrefix</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;user/hdp/temp&quot;</font></span><br /><span><font color="#ff4500">$tempFiles</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Get-AzureStorageBlob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-prefix</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$blobPrefix</font></span><br /><br /><span><font color="#0000ff">Write-Host</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;Removing temp directory&quot;</font></span><br /><span><font color="#00008b">foreach</font></span><font color="#000000"><span>&nbsp;</span><span>(</span></font><span><font color="#ff4500">$item</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#00008b">in</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$tempFiles</font></span></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#000000"><span>)</span><span>{</span><br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#ff4500">$tmpFile</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$item</font></span><span><font color="#a9a9a9">.</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>Name</span><br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#0000ff">Write-Host</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;Deleting $tmpFile&quot;</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp; </font></span><span><font color="#0000ff">Remove-AzureStorageBlob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$tmpFile</font></span><br /><span><font color="#000000">}</font></span><br /><br /><br /><span><font color="#006400">## b. Delete HDInsight cluster</font></span><br /><span><font color="#0000ff">Remove-AzureHDInsightCluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Name</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <h1><a name="recommender">6. Scenario: Recommender Job</a></h1> <p>As we saw in the <a href="http://blogs.technet.com/b/oliviaklose/archive/2014/04/15/mahout-for-dummies-1.aspx#what" target="_blank">first part</a> of our Mahout for Dummies series, there are many algorithms included in the Mahout library other than the random forest.</p> <p>In the <a title="Big Data Support Team Blog" href="http://blogs.msdn.com/b/bigdatasupport" target="_blank">blog by the Big Data Support team at Microsoft</a>, there is a good post demonstrating the use of the RecommenderJob class on an HDInsight Cluster using PowerShell that you can read <a title="Mahout with HDInsight" href="http://blogs.msdn.com/b/bigdatasupport/archive/2014/02/19/mahout-with-hdinsight.aspx" target="_blank">here</a>. The source code of the RecommenderJob class can be looked up <a title="GitHub: RecommenderJob" href="https://github.com/apache/mahout/blob/master/mrlegacy/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java" target="_blank">here</a> on GitHub. </p> <p>In this scenario, we are given two data files: one containing user ID’s and the other comprising the degrees of preference of users towards given items:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-rec-items-2_3D7BDC0F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_rec_2D00_items_2D00_2_5F00_3D7BDC0F.png"><img title="5 rec items 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="5 rec items 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-rec-items-2_thumb_1644238B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_rec_2D00_items_2D00_2_5F00_thumb_5F00_1644238B.png" width="220" height="300" /></a> In ItemID.txt, the first column indicates the user ID, the second the item IDs and the final one denotes the degree of preference. Thus, ItemID.txt can be expressed in a more intuitive Format of a matrix, where the rows indicate the user and the columns denote the item IDs. The values inside the matrix themselves display the degree of preference, as given in the third column in ItemID.txt.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-rec-items-3_5367DF10.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_rec_2D00_items_2D00_3_5F00_5367DF10.png"><img title="5 rec items 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="5 rec items 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-rec-items-3_thumb_30A6A753.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_rec_2D00_items_2D00_3_5F00_thumb_5F00_30A6A753.png" width="496" height="250" /></a></p> <p>Here is the comprised PowerShell script for running RecommenderJob as in the Big Data Support blog.</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006<br />007<br />008<br />009<br />010<br />011<br />012<br />013<br />014<br />015<br />016<br />017<br />018<br />019<br />020<br />021<br />022<br />023<br />024<br />025<br />026<br />027<br />028<br />029<br />030<br />031<br />032<br />033<br />034<br />035<br />036<br />037<br />038<br />039<br />040<br />041<br />042<br />043<br />044<br />045<br />046<br />047<br />048<br />049<br />050<br />051<br />052<br />053<br />054<br />055<br />056<br />057<br />058<br />059<br />060<br />061<br />062<br />063<br />064<br />065<br />066<br />067<br />068<br />069<br />070<br />071<br />072<br />073<br />074<br />075<br />076<br />077<br />078<br />079<br />080<br />081<br />082<br />083<br />084<br />085<br />086<br />087<br />088<br />089<br />090<br />091<br />092<br />093<br />094<br />095<br />096<br />097<br />098<br />099<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font color="#006400"><span><font style="font-size:10pt;">##########################################################################################</font></span><font style="font-size:10pt;"><br /><span># Mahout with HDInsight: RecommenderJob (Collaborative Filtering)</span><br /><span>#</span><br /><span># Check out Microsoft&#39;s Big Data Support blog</span><br /><span># http://blogs.msdn.com/b/bigdatasupport/archive/2014/02/19/mahout-with-hdinsight.aspx</span><br /><span>#</span><br /><span># Source code in GitHub:</span><br /><span># <a href="https://gfdithub.com/apache/mahout/blob/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java">https://gfdithub.com/apache/mahout/blob/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java</a></span><br /><br /><br /><br /><span>##########################################################################################</span><br /><span># 0. Azure Account Details</span></font></font><font style="font-size:10pt;"><br /><span><font color="#0000ff">Add-AzureAccount</font></span><br /><span><font color="#ff4500">$subName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;AzureSbscriptionName&gt;&quot;</font></span><br /><span><font color="#0000ff">Select-AzureSubscription</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$subName</font></span><br /><br /><span><font color="#006400"># Azure account details automatically set</font></span><br /><span><font color="#ff4500">$subID</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Get-AzureSubscription</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Current</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">|</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">%</font></span><font color="#000000"><span>{</span><span>&nbsp;</span></font><span><font color="#ff4500">$_</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>SubscriptionId</span><span>&nbsp;</span><span>}</span><span>&nbsp;</span></font><br /><br /><br /><br /></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#006400"><span>##########################################################################################</span><br /><span>## 1. Input information</span><br /><br /><br /><span>## a. storage account</span></font><br /><span><font color="#ff4500">$storageAccount</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;StorageAccountName&gt;&quot;</font></span><br /><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;StorageContainerName&gt;&quot;</font></span><br /><span><font color="#ff4500">$location</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;DatacenterLocation&gt;&quot;</font></span><span><font color="#000000">&nbsp;</font></span></font><font face="Consolas"><font color="#006400"><span>#e.g. North Europe</span><br /><br /><span># if storage account not created yet</span><br /><span>#New-AzureStorageAccount -StorageAccountName $storageAccount -Location $location</span><br /><span>#Set-AzureStorageAccount -StorageAccountName $storageAccount -GeoReplicationEnabled $false</span><br /><br /><span># Variables automatically set for you</span></font><br /><span><font color="#ff4500">$storageKey</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Get-AzureStorageKey</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageAccount</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">|</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">%</font></span><font color="#000000"><span>{</span><span>&nbsp;</span></font><span><font color="#ff4500">$_</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Primary</span><span>&nbsp;</span><span>}</span><span>&nbsp;</span></font><br /><span><font color="#ff4500">$storageContext</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">New-AzureStorageContext</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-StorageAccountName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageAccount</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-StorageAccountKey</font></span><span><font color="#000000">&nbsp;</font></span></font><font face="Consolas"><font color="#ff4500"><span>$storageKey</span><br /><span>$fullStorage</span></font><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;${storageAccount}.blob.core.windows.net&quot;</font></span><br /><br /><span><font color="#006400"># if container not created yet</font></span><br /><span><font color="#0000ff">New-AzureStorageContainer</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Name</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><br /><br /><br /><br /><span><font color="#006400">## b. HDInsight Cluster</font></span><br /><span><font color="#ff4500">$clusterName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;HDInsightClusterName&gt;&quot;</font></span><br /><span><font color="#ff4500">$clusterCreds</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Get-Credential</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Message</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;New admin account to be created for your HDInsight cluster&quot;</font></span><br /><span><font color="#006400"># best: user name = admin</font></span><br /><span><font color="#ff4500">$numNodes</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">4</font></span><br /><br /><br /><br /></font><font face="Consolas"><font color="#006400"><span>## c. Data</span><br /><span># Data stored locally</span></font><br /><span><font color="#ff4500">$localFolder</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;C:\&lt;localFilesPath&gt;&quot;</font></span><br /><span><font color="#ff4500">$localItems</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;$localFolder\ItemID.txt&quot;</font></span><br /><span><font color="#ff4500">$localUsers</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;$localFolder\users.txt&quot;</font></span><br /><span><font color="#ff4500">$localMahoutJar</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;C:\&lt;PathToMahoutDistribution&gt;\mahout-core-0.9-job.jar&quot;</font></span><br /><br /><span><font color="#006400"># Data to be stored in Azure Blob Storage</font></span><br /><span><font color="#ff4500">$blobMahoutJar</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;mahout/mahout-core-0.9-job.jar&quot;</font></span><br /><span><font color="#ff4500">$blobFolder</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;testdata&quot;</font></span><br /><span><font color="#ff4500">$blobItems</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;$blobFolder/ItemID.txt&quot;</font></span><br /><span><font color="#ff4500">$blobUsers</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;$blobFolder/users.txt&quot;</font></span><br /><br /><br /><br /></font><font face="Consolas"><font color="#006400"><span>##########################################################################################</span><br /><span># 2. Upload file from local to Azure Blob Storage</span><br /><br /><span># Mahout jar</span></font><br /><span><font color="#0000ff">Write-Host</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;Copying Mahout JAR into Blob Storage&quot;</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-BackgroundColor</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">Green</font></span><br /><span><font color="#0000ff">Set-AzureStorageBlobContent</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-File</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$localMahoutJar</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$blobMahoutJar</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><br /><br /><span><font color="#006400"># data for RecommenderJob</font></span><br /><span><font color="#0000ff">Write-Host</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;Copying necessary data into Blob Storage&quot;</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-BackgroundColor</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">Green</font></span><br /><span><font color="#0000ff">Set-AzureStorageBlobContent</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-File</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$localItems</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$blobItems</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><br /><span><font color="#0000ff">Set-AzureStorageBlobContent</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-File</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$localUsers</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$blobUsers</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><br /><br /><br /><br /><br /></font><font face="Consolas"><font color="#006400"><span>##########################################################################################</span><br /><span># 3. Create HDInsight Cluster</span><br /><br /><span># Simple create</span></font><br /><span><font color="#0000ff">New-AzureHDInsightCluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Name</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Subscription</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$subID</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Location</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$location</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-DefaultStorageAccountName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageAccount</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-DefaultStorageAccountKey</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageKey</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-DefaultStorageContainerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Credential</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterCreds</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-ClusterSizeInNodes</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$numNodes</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-Version</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">2.1</font></span><br /><br /><br /><br /></font><font face="Consolas"><font color="#006400"><span>##########################################################################################</span><br /><span># 4. Mahout</span><br /><br /><br /><span># Mahout Job defining the appropriate JAR file and the class name</span></font><br /><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">New-AzureHDInsightMapReduceJobDefinition</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-JarFile</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;wasb:///$blobMahoutJar&quot;</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-ClassName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;org.apache.mahout.cf.taste.hadoop.item.RecommenderJob&quot;</font></span><br /><br /></font><font face="Consolas"><font color="#006400"><span># Similarity class name.</span><br /><span># Alternative similarity classes: loglikelihood, tanimoto coeff, </span><br /><span># city block, cosine, pearson correlation, euclidean distance</span></font><br /><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-s&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;SIMILARITY_COOCCURRENCE&quot;</font></span><span><font color="#000000">)</font></span><br /><br /><span><font color="#006400"># Input path to file with preference data</font></span><br /><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;-i&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;wasb:///$blobItem&quot;</font></span><span><font color="#000000">)</font></span><br /><br /><span><font color="#006400"># path to file containing use IDs for which recommendations will be computed</font></span><br /><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;--usersFile&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;wasb:///$blobUsers&quot;</font></span><span><font color="#000000">)</font></span><br /><br /><span><font color="#006400"># path for recommender output</font></span><br /><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;--output&quot;</font></span><span><font color="#000000">)</font></span><br /><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#a9a9a9">.</font></span><span><font color="#000000">Arguments</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>Add</span><span>(</span></font><span><font color="#8b0000">&quot;wasb:///$blobFolder/output&quot;</font></span><span><font color="#000000">)</font></span><br /><br /><span><font color="#006400"># Starting job</font></span><br /><span><font color="#ff4500">$mahoutJobProcessing</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Start-AzureHDInsightJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Cluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-JobDefinition</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Debug</font></span><br /><br /><span><font color="#006400"># Waiting Job for completion</font></span><br /><span><font color="#0000ff">Wait-AzureHDInsightJob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Job</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutJobProcessing</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-WaitTimeoutInSeconds</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">3600</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Debug</font></span><br /><br /><span><font color="#006400"># Getting error if any</font></span><br /><span><font color="#0000ff">Get-AzureHDInsightJobOutput</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Cluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-JobId</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$mahoutJobProcessing</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>JobId</span><span>&nbsp;</span></font><span><font color="#000080">-StandardError</font></span><br /><br /><br /><br /></font><font face="Consolas"><font color="#006400"><span>##########################################################################################</span><br /><span># 5. Clean up, i.e. remove temp directory</span><br /><br /><br /><span>## a. Remove temp directory</span></font><br /><span><font color="#ff4500">$blobPrefix</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;user/hdp/temp&quot;</font></span><br /><span><font color="#ff4500">$tempFiles</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Get-AzureStorageBlob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-prefix</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$blobPrefix</font></span><br /><br /><span><font color="#0000ff">Write-Host</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;Removing temp directory&quot;</font></span><br /><span><font color="#00008b">foreach</font></span><font color="#000000"><span>&nbsp;</span><span>(</span></font><span><font color="#ff4500">$item</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#00008b">in</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$tempFiles</font></span></font><font face="Consolas"><font color="#000000"><span>)</span><span>{</span><br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#ff4500">$tmpFile</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$item</font></span><span><font color="#a9a9a9">.</font></span></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#000000"><span>Name</span><br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#0000ff">Write-Host</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;Deleting $tmpFile&quot;</font></span><br /><span><font color="#000000">&nbsp;&nbsp;&nbsp; </font></span><span><font color="#0000ff">Remove-AzureStorageBlob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Container</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$containerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Context</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$storageContext</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Blob</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$tmpFile</font></span><br /><span><font color="#000000">}</font></span><br /><br /><br /><span><font color="#006400">## b. Delete HDInsight cluster</font></span><br /><span><font color="#0000ff">Remove-AzureHDInsightCluster</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Name</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$clusterName</font></span><font color="#000000"> </font></font></font></div></td></tr></tbody></table></div> <p>&nbsp;</p> <p>The output files can be seen in the Azure Blob Storage Explorer as ususal:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-rec-output-1_4E1B8910.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_rec_2D00_output_2D00_1_5F00_4E1B8910.png"><img title="5 rec output 1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="5 rec output 1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-rec-output-1_thumb_5947A40B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_rec_2D00_output_2D00_1_5F00_thumb_5F00_5947A40B.png" width="640" height="326" /></a></p> <p>The output file itself gives information on how likely which items could be of interest to which users, i.e. &lt;user_id&gt; [&lt;item_id&gt;: &lt;degree-of-preference/interest&gt;,…].</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-rec-output-2_3A90BA20.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_rec_2D00_output_2D00_2_5F00_3A90BA20.png"><img title="5 rec output 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="5 rec output 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-rec-output-2_thumb_7820A89A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_rec_2D00_output_2D00_2_5F00_thumb_5F00_7820A89A.png" width="379" height="100" /></a></p> <p>In such a way, we can insert the recommendations with their scores in the matrix from above:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-rec-output-3_2E915A9D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_rec_2D00_output_2D00_3_5F00_2E915A9D.png"><img title="5 rec output 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="5 rec output 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/5-rec-output-3_thumb_3714B9E7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/5_2D00_rec_2D00_output_2D00_3_5F00_thumb_5F00_3714B9E7.png" width="496" height="250" /></a></p> <p>&nbsp;</p> <h1><a name="end">7. Wrapping Up…</a></h1> <p>In this blog post, we went through two scenarios applying Mahout on HDInsight in PowerShell style: <a href="#randomforest" target="_blank">random forest</a> and <a href="#recommender" target="_blank">recommender</a>. These scenarios are nicely wrapped around the usual suspects: <a href="#data" target="_blank">uploading data</a>, <a href="#hdinsight" target="_blank">creating the HDInsight cluster</a> and <a href="#clean" target="_blank">cleaning up</a> afterwards.</p> <p>Many thanks go to <a href="http://alexeikh.wordpress.com/" target="_blank">Alexei Khalyako</a> and <a href="http://blogs.msdn.com/b/bigdatasupport/" target="_blank">Bill Carroll</a> for their support on Mahouting on HDInsight!</p>]]></content:encoded>
    </item>
    <item>
      <title>Mahout for Dummies (1)</title>
      <link>https://docs.microsoft.com/archive/blogs/oliviaklose/mahout-for-dummies-1</link>
      <pubDate>Tue, 15 Apr 2014 00:25:13 GMT</pubDate>
      <dc:creator><![CDATA[OliviaKlose]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/oliviaklose/2014/04/15/mahout-for-dummies-1/</guid>
      <description><![CDATA[Contents  1 What is Mahout?2 Step-by-Step: Mahout with HDInsight Interactive Style3 Step-by-Step:...]]></description>
      <content:encoded><![CDATA[<h1><font size="1"></font>Contents </h1> <p><strong><font size="4">1 What is Mahout?</font></strong><br /><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/04/14/mahout-for-dummies-2-step-by-step-mahout-and-hdinsight-interactive-style.aspx">2 Step-by-Step: Mahout with HDInsight Interactive Style</a><br /><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/05/26/mahout-for-dummies-3-step-by-step-mahout-with-hdinsight-powershell-style.aspx">3 Step-by-Step: Mahout with HDInsight PowerShell Style</a></p> <h1></h1> <h1>What is Mahout?</h1> <p><a href="https://mahout.apache.org/" target="_blank"><font size="1"><img title="mahout-logo-300" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="mahout-logo-300" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/mahout-logo-300_6798360D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/mahout_2D00_logo_2D00_300_5F00_6798360D.png" width="240" height="100" /></font></a></p> <p align="right"><a href="https://mahout.apache.org/" target="_blank"><em><font size="1">Apache Mahout</font></em></a><font size="1">, 15.04.2014</font></p> <h1></h1> <p align="justify"><a href="https://mahout.apache.org/" target="_blank">Mahout</a> is one of many <a href="http://hadoop.apache.org/" target="_blank">Hadoop</a>-related projects at Apache. Its mission is to build a <strong>scalable machine learning and data mining library</strong>. In other words, Mahout provides data science tools useful for detecting meaningful patterns in given data sets that are stored in HDFS (Hadoop Distributed File System). It is implemented on top of Hadoop and as of version 0.9 based on the infamous MapReduce paradigm.</p> <p align="justify">Why the word Mahout? Traditionally, a mahout is an elephant rider and has its origins in the Hindi language. The mahout starts early on as a boy when being assigned an elephant.</p> <p>Well, back to the machine learning library – that would contain numerous algorithms! Mahout is based on three “C-pillars” of machine learning implementations:</p> <ul> <li>Collaborative filtering (aka recommendation),  </li><li>Clustering, and  </li><li>Classification.</li></ul> <p>&nbsp;</p> <h2>Collaborative Filtering (aka Recommendation)</h2> <p><a href="http://www.paulshealthblog.com/2012/05/customers-who-bought-this-item-also.html"><img title="Amazon_Funny" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="Amazon_Funny" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/Amazon_Funny_293D6866.jpg" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/Amazon_5F00_Funny_5F00_293D6866.jpg" width="400" height="333" /></a></p> <p align="right"><a href="http://www.paulshealthblog.com/2012/05/customers-who-bought-this-item-also.html"><em><font size="1">Customers Who Bought This Item Also Bought</font></em></a><font size="1">, PaulsHealthBlog.com, 11.04.2014</font></p> <p align="justify">You were looking at a product in Amazon, and there it is – a list of items recommended to you based on what other users also considered buying when looking at “your” product. Such recommender engines (also to be found in Netflix, Spotify, etc.) comprises all kinds of collaborative filtering algorithms. User behaviour is being mined to observe patterns and use as a recommendation for other users with similar likes and dislikes.</p> <h2>Clustering</h2> <p><a href="http://technet.microsoft.com/en-us/library/ms174879.aspx"><img title="grid.ai" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="grid.ai" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/clustering2_35CDA633.gif" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/clustering2_5F00_35CDA633.gif" width="300" height="149" /></a></p> <h2 align="right"><em><a href="http://technet.microsoft.com/en-us/library/ms174879.aspx"><font size="1">Microsoft Clustering Algorithm</font></a></em><font size="1">, 11.04.2014</font></h2> <p align="justify">This family of machine learning entails the grouping of data units into natural clusters since they share similar characteristics. For instance, you tend to cluster customers into groups according to demographic information, say, without labelling these groups yet. Or we naturally group most food into sweet or salty things.</p> <h2>Classification</h2> <p align="justify">Given a dataset that we can learn from and build a data model, we then can classify new unknown data items. For instance, the eye colour is genetically influenced by more than one gene. By learning which genes would result in blue eyes, we can predict the eye colour of other people based on their genetic information.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/classification_0C5964F3.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/classification_5F00_0C5964F3.png"><img title="classification" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="classification" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/classification_thumb_14097FB5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/classification_5F00_thumb_5F00_14097FB5.png" width="400" height="297" /></a></p> <p align="justify">What is the difference between clustering and classification? While in classification you are already given certain categories to classify your data, clustering involves naturally similar items. In other words, in the example of the blue eyes, we know from the beginning what we are looking for: blue eyes or no blue eyes, whereas labelling the groups shall still be established after clustering.</p> <h2>How does Mahout work?</h2> <p align="justify">Mahout provides the implementations of various ML algorithms – a list of them can be found on their site in the <a href="https://mahout.apache.org/users/basics/algorithms.html" target="_blank">list of algorithms</a>. Each one of them can be invoked via a command line. How it is done with HDInsight and PowerShell will be shown in the upcoming blog entries: <a href="http://bit.ly/1eOOBIp" target="_blank">Step-by-Step: Mahout with HDInsight Interactive Style</a> and <a href="http://bit.ly/1tdzLSx" target="_blank">Step-by-Step: HDInsight with Mahout PowerShell Style</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Mahout for Dummies (2) – Step-by-Step: Mahout and HDInsight Interactive Style</title>
      <link>https://docs.microsoft.com/archive/blogs/oliviaklose/mahout-for-dummies-2-step-by-step-mahout-and-hdinsight-interactive-style</link>
      <pubDate>Mon, 14 Apr 2014 08:57:58 GMT</pubDate>
      <dc:creator><![CDATA[OliviaKlose]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/oliviaklose/2014/04/14/mahout-for-dummies-2-step-by-step-mahout-and-hdinsight-interactive-style/</guid>
      <description><![CDATA[In the blog series on Mahout for Dummies, we now get our hands dirty. Let’s see Mahout in action on...]]></description>
      <content:encoded><![CDATA[<p>In the blog series on <a href="http://blogs.technet.com/b/oliviaklose/archive/2014/04/15/mahout-for-dummies-1.aspx" target="_blank">Mahout for Dummies</a>, we now get our hands dirty. Let’s see Mahout in action on an HDInsight cluster.</p> <h1>Contents</h1> <p><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/04/15/mahout-for-dummies-1.aspx">1 What is Mahout?</a><br /><strong><font size="4">2 Step-by-Step: Mahout with HDInsight Interactive Style</font></strong><br /><a href="http://blogs.technet.com/b/oliviaklose/archive/2014/05/26/mahout-for-dummies-3-step-by-step-mahout-with-hdinsight-powershell-style.aspx">3 Step-by-Step: Mahout with HDInsight PowerShell Style</a>  <p>&nbsp; <h1>Step-by-Step: Mahout with HDInsight Interactive Style</h1> <p>But before heading right into Mahout, the HDInsight cluster shall be created. <strike>Please note that as of now, Mahout is NOT supported by Microsoft. Mahout is by default not installed on any HDInsight Cluster, but can be done in various ways, such as connecting to the head node via RDP or using PowerShell (see </strike><a href="http://bit.ly/1tdzLSx" target="_blank"><strike>next article</strike></a><strike>).</strike> </p> <p><strong>Update: Mahout is contained in the HDInsight Version 3.1 by default</strong>; more information can be found in the documentation <a href="http://azure.microsoft.com/en-us/documentation/articles/hdinsight-component-versioning/" target="_blank">What’s new in the Hadoop cluster Versions provided by HDInsight?</a> Thus the second step <a href="#install">Install Mahout on HDInsight</a> can be skipped.</p> <p>This article is a step-by-step guide on how to install and use Mahout on an HDInsight Cluster with a specific scenario involving Random Forests.</p> <ol> <li><a href="#create">Create HDInsight Cluster</a>  </li><li><a href="#install">Install Mahout on HDInsight</a>  </li><li><a href="#rf">Scenario: Random Forest</a>  <ol> <li><a href="#data">Get data</a>  </li><li><a href="#descriptor">Generate descriptor file</a>  </li><li><a href="#build">Build forest</a>  </li><li><a href="#test">Classify test data</a>  </li><li><a href="#what">What is Happening?</a></li></ol> </li><li><a href="#final">Wrapping up…</a></li></ol> <h1><a name="create">1. Create HDInsight Cluster</a></h1> <p>Prerequisite: You have already created a storage account.</p> <p>Start off with going to the Microsoft Azure portal and click on new.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-0_47BEF670.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_0_5F00_47BEF670.png"><img title="1 HDInsight 0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="1 HDInsight 0" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-0_thumb_7B897D72.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_0_5F00_thumb_5F00_7B897D72.png" width="588" height="162" /></a></p> <p>Pick a Name for your HDInsight cluster. Please note that we are using HDInsight Version 2.1. Set the datacenter region to the same region that your storage account is located in, in this case North Europe.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-1_669A8BB0.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_1_5F00_669A8BB0.png"><img title="1 HDInsight 1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="1 HDInsight 1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-1_thumb_23BE4736.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_1_5F00_thumb_5F00_23BE4736.png" width="556" height="380" /></a></p> <p>Obviously you configure credentials to your HDInsight Cluster:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-2_2E7E2F3C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_2_5F00_2E7E2F3C.png"><img title="1 HDInsight 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="1 HDInsight 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-2_thumb_2BD8043C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_2_5F00_thumb_5F00_2BD8043C.png" width="556" height="380" /></a></p> <p>As mentioned above, the prerequisite is that you have already created a storage account. To have a clean slate, I create a default container on which the HDInsight Cluster is based.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-3_7DED4234.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_3_5F00_7DED4234.png"><img title="1 HDInsight 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="1 HDInsight 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-3_thumb_33F1C142.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_3_5F00_thumb_5F00_33F1C142.png" width="556" height="382" /></a></p> <p>The process of creating an HDInsight Cluster includes a few Milestones such as configuring the provisioned virtual machines. The beauty of HDInsight is that you do not need to provision so-and-so-many virtual machines and install Hadoop on them – HDInsight provides this as a Service and does it automatically.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-4_17E39308.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_4_5F00_17E39308.png"><img title="1 HDInsight 4" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="1 HDInsight 4" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-4_thumb_65161D44.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_4_5F00_thumb_5F00_65161D44.png" width="240" height="118" /></a></p> <p>Once created, let us enable a remote desktop connection:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-5_26B05991.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_5_5F00_26B05991.png"><img title="1 HDInsight 5" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="1 HDInsight 5" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-5_thumb_636A72D2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_5_5F00_thumb_5F00_636A72D2.png" width="600" height="450" /></a></p> <p>And let’s connect!</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-6_07262B1E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_6_5F00_07262B1E.png"><img title="1 HDInsight 6" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="1 HDInsight 6" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/1-HDInsight-6_thumb_1B41D858.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/1_2D00_HDInsight_2D00_6_5F00_thumb_5F00_1B41D858.png" width="560" height="301" /></a></p> <p>&nbsp;</p> <h1><a name="install">2. Install Mahout</a></h1> <p>Mahout is provided by HDInsight Version 3.1 by default. As you have connected remotely to it, open the file explorer and browse to C:\apps\dist. There you can see a list of Hadoop components supported by HDInsight 3.1:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/mahout-on-hdinsight_58C0CFDF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/mahout_2D00_on_2D00_hdinsight_5F00_58C0CFDF.png"><img title="mahout on hdinsight" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="mahout on hdinsight" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/mahout-on-hdinsight_thumb_15E48B65.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/mahout_2D00_on_2D00_hdinsight_5F00_thumb_5F00_15E48B65.png" width="640" height="480" /></a></p> <p>Hence, you can ignore the rest of this paragraph and skip right to <a href="#rf">3. Scenario: Random Forest</a>.</p> <p>In case you do deal with an earlier HDInsight Version (earlier than 3.1), then follow the steps described in this paragraph.</p> <p>You can find the latest release version of Mahout on <a title="http://mahout.apache.org/" href="http://mahout.apache.org/" target="_blank">http://mahout.apache.org/</a> that you can download locally on your computer.</p> <p><a title="Apache Mahout" href="http://mahout.apache.org/"><img title="2 Install 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="2 Install 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-Install-2_03AA2AE5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_Install_2D00_2_5F00_03AA2AE5.png" width="600" height="508" /></a></p> <p>In the head node of your HDInsight Cluster (you have connected to it via RDPin the end of 1. Create HDInsight Cluster), open the File Explorer to create a new folder C:\ , such as C:\MyFiles.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-Install-1_2A9F7D2B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_Install_2D00_1_5F00_2A9F7D2B.png"><img title="2 Install 1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="2 Install 1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-Install-1_thumb_7938BAEA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_Install_2D00_1_5F00_thumb_5F00_7938BAEA.png" width="600" height="360" /></a></p> <p>Copy the Mahout Distribution zip file into C:\MyFiles in the head node. In this case, the latest release is version 0.9.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-Install-3_10F28302.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_Install_2D00_3_5F00_10F28302.png"><img title="2 Install 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="2 Install 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-Install-3_thumb_723E29C7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_Install_2D00_3_5F00_thumb_5F00_723E29C7.png" width="600" height="358" /></a></p> <p>Extract the zip-file into C:\apps\dist.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-Install-4_6AB54B0B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_Install_2D00_4_5F00_6AB54B0B.png"><img title="2 Install 4" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="2 Install 4" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-Install-4_thumb_1EEC0503.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_Install_2D00_4_5F00_thumb_5F00_1EEC0503.png" width="600" height="360" /></a></p> <p>Rename the extracted folder into mahout-x.x where x.x is the version number.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-Install-5_3DC50992.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_Install_2D00_5_5F00_3DC50992.png"><img title="2 Install 5" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="2 Install 5" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/2-Install-5_thumb_7362770C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/2_2D00_Install_2D00_5_5F00_thumb_5F00_7362770C.png" width="600" height="262" /></a></p> <p>And that’s it – Mahout is installed on your HDInsight cluster!</p> <h1><a name="rf">3. Scenario: Random Forest</a></h1> <p>This step-by-step guide is based on the one documented in <a href="http://mahout.apache.org/users/classification/partial-implementation.html" target="_blank">Mahout – Classifying with random forests</a> only tailored to HDInsight 2.1.</p> <h2><a name="data">1. Get Data</a></h2> <p>Before building a forest model, we need data to learn from as well as data to test our model from. The data sets used here can be downloaded from <a href="http://nsl.cs.unb.ca/NSL-KDD/" target="_blank">http://nsl.cs.unb.ca/NSL-KDD</a><a href="http://nsl.cs.unb.ca/NSL-KDD/">/</a>. I am using <a href="http://nsl.cs.unb.ca/NSL-KDD/KDDTrain+.arff" target="_blank">KDDTrain+ARFF</a> and <a href="http://nsl.cs.unb.ca/NSL-KDD/KDDTest+.arff" target="_blank">KDDTest+.ARFF</a>.</p> <p><a href="http://nsl.cs.unb.ca/NSL-KDD"><img title="3 RF 1 data 1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 1 data 1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-1_52056221.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_1_5F00_52056221.png" width="600" height="332" /></a></p> <p>Check in the downloaded files that unnecessary lines are removed. More specifically, in KDDTrain+.arff remove the first 44 lines (i.e. all lines starting with @attribute). Otherwise, we will not be able to generate a descriptor file later on in 3.2.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-2_5A1F1F27.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_2_5F00_5A1F1F27.png"><img title="3 RF 1 data 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 1 data 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-2_thumb_121DC0B3.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_2_5F00_thumb_5F00_121DC0B3.png" width="600" height="525" /></a></p> <p>Copy these two data files into C:\MyFiles in the head node (just like with the Mahout Distribution earlier).</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-3_621B2144.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_3_5F00_621B2144.png"><img title="3 RF 1 data 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 1 data 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-3_thumb_2CA4EFD0.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_3_5F00_thumb_5F00_2CA4EFD0.png" width="600" height="360" /></a></p> <p>Ok, we have our training and test data in our HDInsight cluster, but for Mahout do its magic on the precious data, the data needs to be in the HDFS (Hadoop Distributed File System). Yes, you are right – in HDInsight, we do not use HDFS; all data is stored in the Azure Blob Storage. Instead, the HDFS API is still used in HDInsight. So, all we need to do is copy local data into the Blob Storage. </p> <p>There are many ways transferring local data into the blob storage. Here, we use the Hadoop shell commands. First we create a directory called testdata. Then we copy.</p><pre class="brush: ps; ruler: true;">hdfs dfs -mkdir testdata
hdfs dfs -copyFromLocal C:/MyFiles/KDDTrain+.arff testdata/KDDTrain+.arff
hdfs dfs -copyFromLocal C:/MyFiles/KDDTest+.arff testdata/KDDTest+.arff
</pre>
<p>Many use the shell command </p><pre class="brush: ps; ruler: true;">hadoop fs
</pre>
<p>but this command is deprecated.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-5_60DBA9C7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_5_5F00_60DBA9C7.png"><img title="3 RF 1 data 5" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 1 data 5" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-5_thumb_70394E9A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_5_5F00_thumb_5F00_70394E9A.png" width="600" height="535" /></a></p>
<p>Here’s a tip to avoid typing in the whole path: Copy path in the file explorer.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-4_62F7E6E9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_4_5F00_62F7E6E9.png"><img title="3 RF 1 data 4" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 RF 1 data 4" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-4_thumb_3BE4D9BA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_4_5F00_thumb_5F00_3BE4D9BA.png" width="600" height="278" /></a></p>
<p>To see what is stored in all my storage accounts, I often use cerebrata’s <a href="http://www.cerebrata.com/products/azure-explorer/introduction" target="_blank">Azure Explorer</a>, but there are many other storage explorers recommended by us all listed <a href="http://blogs.msdn.com/b/windowsazurestorage/archive/2014/03/11/windows-azure-storage-explorers-2014.aspx" target="_blank">here</a>. </p>
<p>To double check, we see that the now copied data files are located in user/testdata/. Note that olivia is the user I configured to be the remote user, hence can remotely connect to the head node of my HDInsight cluster.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-6_262012BF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_6_5F00_262012BF.png"><img title="3 RF 1 data 6" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 1 data 6" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-6_thumb_5B514D44.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_6_5F00_thumb_5F00_5B514D44.png" width="600" height="368" /></a></p>
<p>The way Mahout is compiled, the data needs to be in user/hdp/ though. In the Hadoop command line we’ll type in:</p><pre class="brush: ps; ruler: true;">hdfs dfs -cp wasb://oliviakrf@oliviakstor.blob.core.windows.net/user/olivia/testdata/KDDTrain+.arff 
    wasb://oliviakrf@oliviakstor.blob.core.windows.net/user/hdp/testdata/KDDTrain+.arff
hdfs dfs -cp wasb://oliviakrf@oliviakstor.blob.core.windows.net/user/olivia/testdata/KDDTest+.arff 
    wasb://oliviakrf@oliviakstor.blob.core.windows.net/user/hdp/testdata/KDDTest+.arff

</pre>
<p>More generally, just replace the variables in &lt;&gt; with the names you have chosen accordingly (i.e. container, storage account and remote user):</p><pre class="brush: ps; ruler: true;">hdfs dfs -cp wasb://&lt;container&gt;@&lt;storage-account&gt;.blob.core.windows.net/user/&lt;remote-user&gt;/testdata/KDDTrain+.arff 
    wasb://&lt;container&gt;@&lt;storage-account&gt;.blob.core.windows.net/user/hdp/testdata/KDDTrain+.arff
hdfs dfs -cp wasb://&lt;container&gt;@&lt;storage-account&gt;.blob.core.windows.net/user/&lt;remote-user&gt;/testdata/KDDTest+.arff 
    wasb://&lt;container&gt;@&lt;storage-account&gt;.blob.core.windows.net/user/hdp/testdata/KDDTest+.arff
<font face="Segoe UI"></font></pre>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-8_1C81E74D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_8_5F00_1C81E74D.png"><img title="3 RF 1 data 8" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 1 data 8" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-8_thumb_47C90F05.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_8_5F00_thumb_5F00_47C90F05.png" width="640" height="279" /></a></p>
<p>Checking in Azure Explorer, the two data files can be found under user/hdp/testdata as desired.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-7_4DA6434F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_7_5F00_4DA6434F.png"><img title="3 RF 1 data 7" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 1 data 7" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-1-data-7_thumb_54EA2B1C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_1_2D00_data_2D00_7_5F00_thumb_5F00_54EA2B1C.png" width="600" height="330" /></a></p>
<p>&nbsp;</p>
<h2><a name="descriptor">2. Generate descriptor file</a></h2>
<p>Before building a random forest model based on the training data in KDDTrain+.arff, a descriptor file is essential. Why? When building the model, all information in the training data needs to be labelled for the algorithm to know, which one is numerical, categorical or a label.</p>
<p>The command is as follows:</p><pre class="brush: ps; ruler: true;">hadoop jar C:\apps\dist\mahout-0.9\mahout-core-0.9-job.jar 
org.apache.mahout.classifier.df.tools.Describe 
-p wasb:///user/hdp/testdata/KDDTrain+.arff 
-f testdata/KDDTrain+.info 
-d N 3 C 2 N C 4 N C 8 N 2 C 19 N L
</pre>
<p>Here, the main class of <font face="Courier New">org.apache.mahout.classifier.df.tools.Describe </font>is invoked; for more information on the source code, check out Mahout’s GitHub site on <a href="https://github.com/apache/mahout/blob/master/mrlegacy/src/main/java/org/apache/mahout/classifier/df/tools/Describe.java" target="_blank">Describe.java</a>. It takes three mandatory arguments, namely: <font face="Courier New">p</font> (short for <font face="Courier New">path</font>), <font face="Courier New">f</font> (short for <font face="Courier New">file</font>) and <font face="Courier New">d</font> (short for <font face="Courier New">descriptor</font>). Other optional arguments are <font face="Courier New">h</font> (<font face="Courier New">help</font>), <font face="Courier New">r</font> (<font face="Courier New">regression</font>) and <font face="Courier New">Options</font>. The p argument specifies the path where the data to be described is located, f defines the location for generated descriptor file and d provides Information on all attributes of given data, where N=numerical, C=categorical and L=label. More specifically, “<font face="Courier New">N 3 C 2 N C 4 N C 8 N 2 C 19 N L</font>” means that given data set starts off with a numerical attribute (N), followed by 3 categorical attributes (C), etc. and lastly with a Label (L).</p>
<p><strong>Update: Note that if you use an HDInsight cluster based on version 3.1, change the path specifying the mahout jar file to<br /><font face="Courier New">C:\apps\dist\mahout-0.9.0.2.1.5.0-2057\core\target\mahout-core-0.9.0.2.1.5.0-2057-job.jar</font></strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/mahout-core-job-on-hdinsight_60DA8CE5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/mahout_2D00_core_2D00_job_2D00_on_2D00_hdinsight_5F00_60DA8CE5.png"><img title="mahout core job on hdinsight" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="mahout core job on hdinsight" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/mahout-core-job-on-hdinsight_thumb_7010F5B2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/mahout_2D00_core_2D00_job_2D00_on_2D00_hdinsight_5F00_thumb_5F00_7010F5B2.png" width="640" height="480" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-2-descriptor-1_6F4CAEE4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_2_2D00_descriptor_2D00_1_5F00_6F4CAEE4.png"><img title="3 RF 2 descriptor 1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 RF 2 descriptor 1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-2-descriptor-1_thumb_6CA683E4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_2_2D00_descriptor_2D00_1_5F00_thumb_5F00_6CA683E4.png" width="600" height="218" /></a></p>
<p>Since the descriptor file also needs to be in the directory <font face="Courier New">user/hdp/</font>, you either then copy the generated descriptor file into user/hdp/ or you might as well set parametre <font face="Courier New">f</font> to <font face="Courier New">wasb:///user/hdp/testdata/KDDTrain+.info</font></p><pre class="brush: ps; ruler: true;">hdsf dfs 
-cp wasb://&lt;container&gt;@&lt;storageaccount&gt;.blob.core.windows.net/user/&lt;remoteuser&gt;/testdata/KDDTrain+.info
wasb://&lt;container&gt;@&lt;storageaccount&gt;.blob.core.windows.net/user/hdp/testdata/KDDTrain+.info
</pre>
<p>Or generating the descriptor file in <font face="Courier New">user/hdp/</font> straight away:</p><pre class="brush: ps; ruler: true;">hadoop jar C:\apps\dist\mahout-0.9\mahout-core-0.9-job.jar 
org.apache.mahout.classifier.df.tools.Describe 
-p wasb:///user/hdp/testdata/KDDTrain+.arff 
-f wasb:///user/hdp/testdata/KDDTrain+.info 
-d N 3 C 2 N C 4 N C 8 N 2 C 19 N L
</pre>
<p><font face="Courier New"></font><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-2-descriptor-2_651DA528.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_2_2D00_descriptor_2D00_2_5F00_651DA528.png"><img title="3 RF 2 descriptor 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 2 descriptor 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-2-descriptor-2_thumb_29609D26.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_2_2D00_descriptor_2D00_2_5F00_thumb_5F00_29609D26.png" width="600" height="220" /></a></p>
<p><strong>Update: If you use an HDInsight cluster of version 3.1, use the following path specifying the Mahout jar:</strong></p>
<p><font face="Courier New"><strong>C:\apps\dist\mahout-0.9.0.2.1.5.0-2057\core\target\mahout-core-0.9.0.2.1.5.0-2057-job.jar</strong></font></p>
<p>Checking in the Azure Explorer, we see KDDTrain+.info in the Directory <font face="Courier New">user/hdp/testdata</font>:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-2-descriptor-5_288AC7ED.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_2_2D00_descriptor_2D00_5_5F00_288AC7ED.png"><img title="3 RF 2 descriptor 5" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 2 descriptor 5" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-2-descriptor-5_thumb_1666AC80.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_2_2D00_descriptor_2D00_5_5F00_thumb_5F00_1666AC80.png" width="600" height="330" /></a></p>
<p>&nbsp;</p>
<h2><a name="build">3. Build forest</a></h2>
<p>Now we can finally build the random forest using the following command in the Hadoop command line:</p><pre class="brush: ps; ruler: true;">hadoop jar C:\apps\dist\mahout-0.9\mahout-examples-0.9-job.jar 
org.apache.mahout.classifier.df.mapreduce.BuildForest 
-Dmapred.max.split.size=1874231 
-d wasb:///user/hdp/testdata/KDDTrain+.arff 
-ds wasb:///user/hdp/testdata/KDDTrain+.info 
-sl 5 -p -t 100 -o nsl-forest
</pre>
<p>In GitHub, you can look into the source code of used class (BuildForest) on <a href="https://github.com/apache/mahout/blob/trunk/examples/src/main/java/org/apache/mahout/classifier/df/mapreduce/BuildForest.java" target="_blank">GitHub</a>. Thus, the mandatory arguments of the main class in BuildForest are <font face="Courier New">d</font> (<font face="Courier New">data</font>), <font face="Courier New">ds </font>(<font face="Courier New">dataset</font>), <font face="Courier New">t</font> (<font face="Courier New">nbtrees</font>), <font face="Courier New">o</font> (<font face="Courier New">output</font>). A more comprehensive list of arguments is the following:</p>
<table cellspacing="0" cellpadding="2" width="600" border="0">
<tbody>
<tr>
<td valign="top" width="80"><strong>Short name</strong></td>
<td valign="top" width="104"><strong>Long name</strong></td>
<td valign="top" width="133"><strong>Mandatory / Optional</strong></td>
<td valign="top" width="283"><strong>Description</strong></td></tr>
<tr>
<td valign="top" width="80">d</td>
<td valign="top" width="104">data</td>
<td valign="top" width="133">Mandatory</td>
<td valign="top" width="283">Data path</td></tr>
<tr>
<td valign="top" width="80">ds</td>
<td valign="top" width="104">dataset</td>
<td valign="top" width="133">Mandatory</td>
<td valign="top" width="283">Dataset path</td></tr>
<tr>
<td valign="top" width="80">sl</td>
<td valign="top" width="104">selection</td>
<td valign="top" width="133">Optional</td>
<td valign="top" width="283">#Variables to select randomly at each tree node. Classification: Default = square root of #explanatory vars. <br />Regression: Default = 1/3 of #explanatory vars.</td></tr>
<tr>
<td valign="top" width="80">nc</td>
<td valign="top" width="104">no-complete</td>
<td valign="top" width="133">Optional</td>
<td valign="top" width="283">Tree is not complete.</td></tr>
<tr>
<td valign="top" width="80">ms</td>
<td valign="top" width="104">minsplit</td>
<td valign="top" width="133">Optional</td>
<td valign="top" width="283">Tree node is not divided, if branching data size &lt; given value. Default: 2.</td></tr>
<tr>
<td valign="top" width="80">mp</td>
<td valign="top" width="104">minprop</td>
<td valign="top" width="133">Optional</td>
<td valign="top" width="283">Tree node is not divided, if Proportion of the variance of branching data &lt; given value. Used for Regression. Default: 0.001.</td></tr>
<tr>
<td valign="top" width="80">sd</td>
<td valign="top" width="104">seed</td>
<td valign="top" width="133">Optional</td>
<td valign="top" width="283">Seed value used to initialise the random number generator.</td></tr>
<tr>
<td valign="top" width="80">p</td>
<td valign="top" width="104">partial</td>
<td valign="top" width="133">Optional</td>
<td valign="top" width="283">Use partial data implementation</td></tr>
<tr>
<td valign="top" width="80">t</td>
<td valign="top" width="104">nbtrees</td>
<td valign="top" width="133">Mandatory</td>
<td valign="top" width="283">#Trees to grow</td></tr>
<tr>
<td valign="top" width="80">o</td>
<td valign="top" width="104">output</td>
<td valign="top" width="133">Mandatory</td>
<td valign="top" width="283">Output path that will contain the decision forest</td></tr>
<tr>
<td valign="top" width="80">h</td>
<td valign="top" width="104">help</td>
<td valign="top" width="133">Optional</td>
<td valign="top" width="283">Help</td></tr></tbody></table>
<p>In other words, a random forest model is computed on the basis of data provided in <font face="Courier New">KDDTrain+.arff</font> with additional description information in <font face="Courier New">KDDTrain+.info</font> with 100 trees saved in the directory <font face="Courier New">nsl-forest/</font>. The computation of a random forest uses the partial implementation (<font face="Courier New">-p</font>) and splits the dataset at each tree node by randomly selecting 5 attributes (<font face="Courier New">-sl</font>), whilst allowing a maximum of 1,874,231 data units per node (<font face="Courier New">-Dmapred.max.split.size</font>). Note that the maximum number of data units per node also indicates the partition size of each tree in the random forest, in this case 1/10 of the dataset; thus, 10 partitions are being used.</p>
<p><strong>Update: As mentioned in </strong><a href="#descriptor"><strong>3.2 Generate Descriptor File</strong></a><strong>, if you use an HDInsight cluster of version 3.1, use the following path for the mahout example jar:</strong></p>
<p><font face="Courier New"><strong>C:\apps\dist\mahout-0.9.0.2.1.5.0-2057\examples\target\mahout-examples-0.9.0.2.1.5.0-2057-job.jar</strong></font></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/mahout-example-job-on-hdinsight_4D4FBDF5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/mahout_2D00_example_2D00_job_2D00_on_2D00_hdinsight_5F00_4D4FBDF5.png"><img title="mahout example job on hdinsight" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="mahout example job on hdinsight" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/mahout-example-job-on-hdinsight_thumb_0A73797B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/mahout_2D00_example_2D00_job_2D00_on_2D00_hdinsight_5F00_thumb_5F00_0A73797B.png" width="640" height="480" /></a></p>
<p>The result in the Hadoop command line will look like this:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-3-forest-1_377C39CB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_3_2D00_forest_2D00_1_5F00_377C39CB.png"><img title="3 RF 3 forest 1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 3 forest 1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-3-forest-1_thumb_200E590F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_3_2D00_forest_2D00_1_5F00_thumb_5F00_200E590F.png" width="600" height="735" /></a></p>
<p>In the end, we can see how long it took to build the forest and also obtain further Information on the forest, such as the number of nodes or mean maximum depth of the forest.</p>
<p>To use the generated forest for classifying unknown test data, we copy it via hdfs commands into <font face="Courier New">user/hdp/</font> as follows:</p><pre class="brush: ps; ruler: true;">hdfs dfs 
-cp wasb://oliviakrf@oliviakstor.blob.core.windows.net/user/olivia/nsl-forest 
wasb://oliviakrf@oliviakstor.blob.core.windows.net/user/hdp/nsl-forest
</pre>
<p>or more generally speaking:</p><pre class="brush: ps; ruler: true;">hdfs dfs 
-cp wasb://&lt;container&gt;@&lt;storageaccount&gt;.blob.core.windows.net/user/&lt;remoteuser&gt;/nsl-forest 
wasb://&lt;container&gt;@&lt;storageaccount&gt;.blob.core.windows.net/user/hdp/nsl-forest

</pre>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-3-forest-2_034F00F1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_3_2D00_forest_2D00_2_5F00_034F00F1.png"><img title="3 RF 3 forest 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 3 forest 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-3-forest-2_thumb_60F9FC28.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_3_2D00_forest_2D00_2_5F00_thumb_5F00_60F9FC28.png" width="600" height="230" /></a></p>
<p>In Azure Explorer you can see that the generated forest model (<font face="Courier New">forest.seq</font>) is stored in both <font face="Courier New">user/olivia/</font> and <font face="Courier New">user/hdp/</font>.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-3-forest-3_0BD4F0EC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_3_2D00_forest_2D00_3_5F00_0BD4F0EC.png"><img title="3 RF 3 forest 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 3 forest 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-3-forest-3_thumb_534EF233.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_3_2D00_forest_2D00_3_5F00_thumb_5F00_534EF233.png" width="600" height="370" /></a></p>
<p>&nbsp;</p>
<h2><a name="test">4. Classify new data</a></h2>
<p>We have generated a forest model in the step before in order to automatically classify new incoming data, i.e. KDDTest+.arff. The command we use here is</p><pre class="brush: ps; ruler: true;">hadoop jar C:\apps\dist\mahout-0.9\mahout-examples-0.9-job.jar 
org.apache.mahout.classifier.df.mapreduce.TestForest 
-i wasb:///user/hdp/testdata/KDDTest+.arff 
-ds wasb:///user/hdp/testdata/KDDTrain+.info 
-m wasb:///user/hdp/nsl-forest 
-a -mr -o predictions
</pre>
<p><strong>Update: If you use a cluster of HDInsight 3.1, use the following path name for the mahout examples jar file:</strong></p>
<p><font face="Courier New"><strong>C:\apps\dist\mahout-0.9.0.2.1.5.0-2057\examples\target\mahout-examples-0.9.0.2.1.5.0-2057-job.jar</strong></font></p>
<p>As usual more information can be found on <a href="https://github.com/apache/mahout">Mahout’s GitHub site</a>, more concretely in <a href="https://github.com/apache/mahout/blob/trunk/examples/src/main/java/org/apache/mahout/classifier/df/mapreduce/TestForest.java">TestForest.java</a>. What do the arguments mean? The mandatory arguments are <font face="Courier New">input</font> (<font face="Courier New">-i</font>) for the test data location, <font face="Courier New">dataset </font>(<font face="Courier New">-ds</font>) for the descriptor file location, <font face="Courier New">model </font>(<font face="Courier New">-m</font>) for the forest model location and <font face="Courier New">output </font>(<font face="Courier New">-o</font>) for the output location; optional boolean arguments are <font face="Courier New">analyze</font> (<font face="Courier New">-a</font>) for analysing the classification results, i.e. computing the confusion matrix, and <font face="Courier New">mapreduce</font> (<font face="Courier New">-mr</font>) to use Hadoop to distribute classification. </p>
<p>In this case, predictions are computed for the new test data located in <font face="Courier New">wasb:///user/hdp/testdata/KDDTest+.arff</font> with its associated descriptor file in <font face="Courier New">wasb:///user/hdp/testdata/KDDTrain+.info</font> using the previously built random forest in <font face="Courier New">wasb:///user/hdp/nsl-forest</font>; the output predictions are then stored in a text file in the directory <font face="Courier New">predictions/</font>. Additionally, a confusion matrix is computed (as you can see below in the Hadoop command line) and classification is being distributed using Hadoop.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-classify-1_46E35FBB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_classify_2D00_1_5F00_46E35FBB.png"><img title="3 RF 4 classify 1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="3 RF 4 classify 1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-classify-1_thumb_4F8DFB0B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_classify_2D00_1_5F00_thumb_5F00_4F8DFB0B.png" width="600" height="758" /></a></p>
<p>The predictions are stored in <font face="Courier New">user/olivia/predictions</font>:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-classify-2_316A801B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_classify_2D00_2_5F00_316A801B.png"><img title="3 RF 4 classify 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 4 classify 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-classify-2_thumb_20886CDC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_classify_2D00_2_5F00_thumb_5F00_20886CDC.png" width="600" height="345" /></a></p>
<h2>&nbsp;</h2>
<h2><a name="what">5. Woah, what’s happening?</a></h2>
<p>Ok, so what just happened? Let’s first have a look at the summary in the Hadoop command line and another closer look at the output file containing the predictions.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-classify-3_6401480A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_classify_2D00_3_5F00_6401480A.png"><img title="3 RF 4 classify 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 4 classify 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-classify-3_thumb_34D47DD5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_classify_2D00_3_5F00_thumb_5F00_34D47DD5.png" width="505" height="262" /></a></p>
<p>The test data in KDDTest+.arff contained 22,544 instances that were classified in 1.4. Classify new data, and that you can also see in the first section Summary under Total Classified Instances. Thus you can see that 17,783 instances of them (i.e. 78%) were correctly classified, whereas 4,761 (21%) were incorrectly classified.</p>
<p>More details are provided in the confusion matrix, in nicer view:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-summary-1_02070812.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_summary_2D00_1_5F00_02070812.png"><img title="3 RF 4 summary 1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 4 summary 1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-summary-1_thumb_45DDCD1A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_summary_2D00_1_5F00_thumb_5F00_45DDCD1A.png" width="300" height="301" /></a></p>
<p>In other words, 9,458 normal instances were correctly classified but 253 normal instances were incorrectly classified as anomaly, adding up to 9,711 actual normal instances. There are 17,783 correctly classified instances (= 9,458 + 8,325, i.e. normal-normal + anomaly-anomaly) compared to 4,761 (= 4,508 + 253) incorrectly classified instances.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-summary-2_752F42A4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_summary_2D00_2_5F00_752F42A4.png"><img title="3 RF 4 summary 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="3 RF 4 summary 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-summary-2_thumb_4091771A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_summary_2D00_2_5F00_thumb_5F00_4091771A.png" width="377" height="41" /></a></p>
<p>The remaining statistics measures (<a href="http://en.wikipedia.org/wiki/Cohen%27s_kappa" target="_blank">Kappa</a> and <a href="http://en.wikipedia.org/wiki/Reliability_(statistics)" target="_blank">reliability</a>) indicate a degree on overall consistency of measure, more specifically of agreement between raters.</p>
<p>And finally, what about the predictions that have been saved as an output of classifying the test data?</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-summary-3_758487B8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_summary_2D00_3_5F00_758487B8.png"><img title="3 RF 4 summary 3" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="3 RF 4 summary 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/3-RF-4-summary-3_thumb_650C16BD.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/3_2D00_RF_2D00_4_2D00_summary_2D00_3_5F00_thumb_5F00_650C16BD.png" width="171" height="223" /></a></p>
<p>After some converting, you obtain a list of numbers of type <font face="Courier New">double</font>. What each double number indicates is the predicted category of each data instance, where 1.0 denotes the category anomaly.</p>
<h1><a name="final">4. Wrapping up…</a></h1>
<p>We have created an HDInsight cluster such that the Mahout library (in this case version 0.9) could subsequently be installed. The Mahout library is very extensive and can be explored at its full glory in its <a href="https://github.com/apache/mahout" target="_blank">GitHub site</a>. Here, we went through a scenario using one of many Machine Learning religions, namely the Random Forest, based on the <a href="https://mahout.apache.org/users/classification/partial-implementation.html" target="_blank">random forest tutorial on the Mahout site</a> but tailored to HDInsight.</p>
<p>Update: There is an extensive guide on how to use Mahout on HDInsight to generate movie recommendations, found <a href="http://azure.microsoft.com/en-us/documentation/articles/hdinsight-mahout/" target="_blank">here</a> on the Azure documentation – highly recommendable!</p>
<p>In the <a href="http://bit.ly/1tdzLSx" target="_blank">next Mahout article</a>, we will explore the use of Mahout through the awesomeness of PowerShell.</p></p></p>]]></content:encoded>
    </item>
    <item>
      <title>Azure PowerShell Serie (6): Create Azure SQL Database</title>
      <link>https://docs.microsoft.com/archive/blogs/oliviaklose/azure-powershell-serie-6-create-azure-sql-database</link>
      <pubDate>Mon, 14 Apr 2014 01:51:08 GMT</pubDate>
      <dc:creator><![CDATA[OliviaKlose]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/oliviaklose/2014/04/14/azure-powershell-serie-6-create-azure-sql-database/</guid>
      <description><![CDATA[In dem sechsten Beitrag der Azure PowerShell Serie wird nun ein Azure SQL Server und eine...]]></description>
      <content:encoded><![CDATA[<p>In dem sechsten Beitrag der <a href="http://blogs.technet.com/b/oliviaklose/archive/2014/03/07/azure-powershell-serie-happy-powershell-scripting.aspx">Azure PowerShell Serie</a> wird nun ein Azure SQL Server und eine dazugehörige Azure SQL Datenbank erstellt. In der UI würde das so aussehen:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/SQL-create-2_7B31612D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/SQL_2D00_create_2D00_2_5F00_7B31612D.png"><img title="SQL create 2" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="SQL create 2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/SQL-create-2_thumb_6A4F4DEE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/SQL_2D00_create_2D00_2_5F00_thumb_5F00_6A4F4DEE.png" width="640" height="276" /></a></p> <p>In anderen Worten, zunächst wird ein SQL Server auf Azure mit einem automatisch generiertem Namen erstellt (ebenso auf PowerShell), und darauf basiert eine Azure SQL Datenbank. Um eine SQL Datenbank basiert auf dem Azure SQL Server per PowerShell zu erstellen, richten wir eine Firewall Regel ein, um alle Verbindungen (also alle IP Adressen) zum Server erlaubt werden:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/SQL-create-3_10B3C1EB.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/SQL_2D00_create_2D00_3_5F00_10B3C1EB.png"><img title="SQL create 3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="SQL create 3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/57/metablogapi/SQL-create-3_thumb_0618853A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-57-metablogapi/SQL_2D00_create_2D00_3_5F00_thumb_5F00_0618853A.png" width="640" height="631" /></a></p> <p>Und hier nun zum PowerShell-Skript:</p> <div style="list-style-type:disc;overflow:auto;border-top:black 1px solid;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;line-height:normal;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font style="font-size:10pt;" color="#000000">001<br />002<br />003<br />004<br />005<br />006<br />007<br />008<br />009<br />010<br />011<br />012<br />013<br />014<br />015<br />016<br />017<br />018<br />019<br />020<br />021<br />022<br />023<br />024<br />025<br />026<br />027<br />028<br />029<br />030<br />031<br />032<br />033<br />034<br />035<br />036<br />037<br />038<br />039<br />040<br />041<br />042<br />043<br />044<br />045<br />046<br />047<br />048<br />049<br />050<br />051<br />052<br />053<br />054<br />055<br />056<br />057<br />058<br />059<br />060<br />061<br />062<br />063<br />064<br />065<br />066<br />067<br />068<br />069<br />070<br />071<br />072<br />073<br />074<br />075<br />076<br />077<br />078<br />079<br />080<br />081</font></font><br /></div></td> <td valign="top"> <div style="background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><font face="Consolas"><font color="#006400"><span><font style="font-size:10pt;">#######################################################</font></span><font style="font-size:10pt;"><br /><span># Create Azure SQL Database and Server</span><br /><br /><span># ISE is just awesome</span></font></font><font style="font-size:10pt;"><br /><span><font color="#0000ff">ise</font></span><br /><br /></font></font><font style="font-size:10pt;"><font face="Consolas"><font color="#006400"><span>#######################################################</span><br /><span># 0. Azure Account Details</span></font><br /><br /><span><font color="#0000ff">Add-AzureAccount</font></span><br /><span><font color="#ff4500">$subName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;AzureSbscriptionName&gt;&quot;</font></span><br /><span><font color="#0000ff">Select-AzureSubscription</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$subName</font></span><br /><br /><span><font color="#006400"># Azure account details automatically set</font></span><br /><span><font color="#ff4500">$subID</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Get-AzureSubscription</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Current</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">|</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">%</font></span><font color="#000000"><span>{</span><span>&nbsp;</span></font><span><font color="#ff4500">$_</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>SubscriptionId</span><span>&nbsp;</span><span>}</span><span>&nbsp;</span></font><br /><br /><br /></font><font face="Consolas"><font color="#006400"><span>#######################################################</span><br /><span># 1. Input information</span></font><br /><br /><span><font color="#ff4500">$location</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;DatacenterLocation&gt;&quot;</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#006400">#e.g. North Europe, West Europe, etc.</font></span><br /><span><font color="#ff4500">$adminLogin</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;SQLServerLogin&gt;&quot;</font></span><br /><span><font color="#ff4500">$adminPasswd</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;SQLServerPassword&gt;&quot;</font></span><br /><span><font color="#ff4500">$sqlDB</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;&lt;AzureSQLDatabaseName&gt;&quot;</font></span><br /><br /><br /></font><font face="Consolas"><font color="#006400"><span>#######################################################</span><br /><span># 2. Create Azure SQL Database Server</span><br /><br /><span># List all Azure SQL Databases and Servers</span></font><br /><span><font color="#0000ff">Get-AzureSqlDatabaseServer</font></span><br /><br /><span><font color="#006400"># Provision new SQL Database Server</font></span><br /><span><font color="#ff4500">$sqlServer</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">New-AzureSqlDatabaseServer</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-AdministratorLogin</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$adminLogin</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#000080">-AdministratorLoginPassword</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$adminPasswd</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Location</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$location</font></span><br /><br /><br /></font><font face="Consolas"><font color="#006400"><span>#######################################################</span><br /><span># 3. Azure SQL Server configuration --&gt; authentication</span><br /><br /><span># Create Firewall rule</span><br /><span># To allow connections to the database server you must create a rule that specifies </span><br /><span># a range of IP addresses from which connections are allowed. </span></font><br /><span><font color="#0000ff">New-AzureSqlDatabaseServerFirewallRule</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-ServerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$sqlServer</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>ServerName</span><span>&nbsp;</span></font><span><font color="#000080">-RuleName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8b0000">&quot;allowall&quot;</font></span><font color="#000000"><span>&nbsp;</span>`</font><br /><span><font color="#000080">-StartIpAddress</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">1.1.1.1</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-EndIpAddress</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">255.255.255.255</font></span><br /><br /><br /></font><font face="Consolas"><font color="#006400"><span># Get credentials for SQL authentication</span><br /><span># a) Prompt for credentials</span></font><br /><span><font color="#ff4500">$cred</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">Get-Credential</font></span><br /><span><font color="#006400"># or b) Use credentials from before</font></span><br /><span><font color="#ff4500">$serverCreds</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">New-Object</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#8a2be2">System.Management.Automation.PSCredential</font></span><span><font color="#000000">(</font></span><span><font color="#ff4500">$adminLogin</font></span><span><font color="#a9a9a9">,</font></span><span><font color="#000000">(</font></span><span><font color="#ff4500">$adminPasswd</font></span></font><font face="Consolas"><font color="#000000"><span>&nbsp;</span>`<br /><span>&nbsp;&nbsp;&nbsp; </span></font><span><font color="#a9a9a9">|</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">ConvertTo-SecureString</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-AsPlainText</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-Force</font></span><font color="#000000"><span>)</span><span>)</span></font><br /><br /><br /></font><font face="Consolas"><font color="#006400"><span># Create connection to server using SQL Authentication</span><br /><span>#$ctx = $sqlServer | New-AzureSqlDatabaseServerContext -Credential $serverCreds</span></font><br /><span><font color="#ff4500">$ctx</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#a9a9a9">=</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#0000ff">New-AzureSqlDatabaseServerContext</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-ServerName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$sqlServer</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>ServerName</span><span>&nbsp;</span></font><span><font color="#000080">-Credential</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$serverCreds</font></span><br /></font><font face="Consolas"><font color="#006400"><span>#$ctx = New-AzureSqlDatabaseServerContext -ServerName $sqlServer.ServerName -Credential $cred</span><br /><br /><br /><br /><span>#######################################################</span><br /><span># 4. Create Azure SQL Database</span><br /><br /><span># Create new database</span></font><br /><span><font color="#0000ff">New-AzureSqlDatabase</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-DatabaseName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$sqlDB</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-ConnectionContext</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$ctx</font></span><br /><br /><span><font color="#006400"># Modify the database</font></span><br /><span><font color="#0000ff">Set-AzureSqlDatabase</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-ConnectionContext</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$ctx</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-DatabaseName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$sqlDB</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-MaxSizeGB</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#800080">20</font></span><br /><br /><br /><br /></font></font><font face="Consolas"><font style="font-size:10pt;"><font color="#006400"><span>#######################################################</span><br /><span># 5. Clean up</span><br /><br /><span># Delete the database</span></font><br /><span><font color="#0000ff">Remove-AzureSqlDatabase</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$ctx</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#000080">-DatabaseName</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$sqlDB</font></span><br /><br /><span><font color="#006400"># Delete the database server</font></span><br /><span><font color="#0000ff">Remove-AzureSqlDatabaseServer</font></span><span><font color="#000000">&nbsp;</font></span><span><font color="#ff4500">$sqlServer</font></span><span><font color="#a9a9a9">.</font></span><font color="#000000"><span>ServerName</span> </font></font></font></div></td></tr></tbody></table></div>]]></content:encoded>
    </item>
  </channel>
</rss>