<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Cindy Gross: Small Bites of Big Data, Small Data, All Data</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/cindygross/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/cindygross/feed.xml</link>
    <description>Small Bites of Big Data, Small Data, All Data for Hadoop, SQL Server, Hive, Distributed Systems, Scale Out....</description>
    <lastBuildDate>Tue, 30 Aug 2016 23:20:07 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Moving Beyond Unconscious Bias - Good People Matter!</title>
      <link>https://docs.microsoft.com/archive/blogs/cindygross/moving-beyond-unconscious-bias-good-people-matter</link>
      <pubDate>Mon, 26 Oct 2015 19:45:00 GMT</pubDate>
      <dc:creator><![CDATA[Cindy Gross]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/cindygross/2015/10/26/moving-beyond-unconscious-bias-good-people-matter/</guid>
      <description><![CDATA[Presented at SQL Saturday Oregon on October 24, 2015
by&nbsp;Julie Koesmarno&nbsp;and&nbsp;Cindy...]]></description>
      <content:encoded><![CDATA[<p>Presented at SQL Saturday Oregon on October 24, 2015</p>
<p>by&nbsp;<a href="https://twitter.com/mssqlgirl">Julie Koesmarno</a>&nbsp;and&nbsp;<a href="https://twitter.com/sqlcindy">Cindy Gross</a></p>
<h2>Good People</h2>
<p>We&rsquo;re good people. As good people we don&rsquo;t want to think we do things that have negative consequences for others. But sometimes our subconscious can fool us. What we intend isn&rsquo;t always what happens. We think we&rsquo;re making a totally rational decision based on our conscious values &ndash; but subtle, unconscious bias creeps in. Yes, even for good people. For 20+ years folks at Harvard have been using something called the Implicit Association Test (<a href="https://implicit.harvard.edu/implicit/" target="_blank">IAT</a>) to help us identify our biases.</p>
<p>Take this IAT on gender and career &ndash; the results may surprise you:&nbsp;<a href="https://implicit.harvard.edu/implicit/user/agg/blindspot/tablet.htm" target="_blank">https://implicit.harvard.edu/implicit/user/agg/blindspot/tablet.htm</a></p>
<p>Watch Alan Alda take the test, it will give you a feel for how it works:&nbsp;<a href="https://www.youtube.com/watch?v=2RSVz6VEybk" target="_blank">https://www.youtube.com/watch?v=2RSVz6VEybk</a>&nbsp;</p>
<p><a href="https://cindygross.files.wordpress.com/2015/10/image.png"><img title="image" src="https://cindygross.files.wordpress.com/2015/10/image_thumb.png" alt="image" width="244" height="139" border="0" /></a>&nbsp;</p>
<p>Continue reading at&nbsp;<a title="https://befriendingdragons.com/2015/10/26/moving-beyond-unconscious-bias-good-people-matter/" href="https://befriendingdragons.com/2015/10/26/moving-beyond-unconscious-bias-good-people-matter/&amp;nbsp;" target="_blank">https://befriendingdragons.com/2015/10/26/moving-beyond-unconscious-bias-good-people-matter/&nbsp;</a></p>
<p>&nbsp;</p>
<p>Slides are attached at the bottom of this post.&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/65/03/64/MovingBeyondUnconsciousBiasOct2015.pptx" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-65-03-64/MovingBeyondUnconsciousBiasOct2015.pptx">MovingBeyondUnconsciousBiasOct2015.pptx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Big Data for the SQL Eye</title>
      <link>https://docs.microsoft.com/archive/blogs/cindygross/big-data-for-the-sql-eye</link>
      <pubDate>Tue, 20 Oct 2015 18:58:00 GMT</pubDate>
      <dc:creator><![CDATA[Cindy Gross]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/cindygross/2015/10/20/big-data-for-the-sql-eye/</guid>
      <description><![CDATA[SQL Server is a great technology &ndash; I&rsquo;ve been using it since 1993 when the user interface...]]></description>
      <content:encoded><![CDATA[<p>SQL Server is a great technology &ndash; I&rsquo;ve been using it since 1993 when the user interface consisted of a query window with the options to save and execute and not much else. With every release there&rsquo;s something new and exciting and there&rsquo;s always something to learn about even the most familiar of features. However, not everyone uses SQL Server for every storage and compute opportunity &ndash; sad but true.</p>
<p>So what is a SQL geek to do in the face of all the new options out there &ndash; many under the umbrella of Big Data (distributed processing)? Why just jump right on in and learn it! No one can know all the pieces because it&rsquo;s a big, fluid, messy collection of &ldquo;things&rdquo;. But don&rsquo;t worry about that, start with one thing and build from there. Even if you never plan to implement a production Big Data system you need to learn about it &ndash; because if you don&rsquo;t have some hands-on experience with it then someone who does have that experience will be influencing the decision makers without you. For a SQL Pro I suggest Hive as that easy entry point. At some point maybe Spark SQL will jump into that gap, but for now Hive is the easiest entry point for most SQL pros.</p>
<p>For more, I refer you to the talk I gave at the Pacific Northwest SQL Server User Group meeting on October 14, 2015. Excerpts are below, the file is attached.</p>
<p><strong>Look, it&rsquo;s SQL!</strong></p>
<p>SELECT score, fun <br />FROM toDo <br />WHERE type = 'they pay me for this?';</p>
<p>Here&rsquo;s how that code looks from Visual Studio along with the links to how you find the output and logs:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2248.image_31E9E40A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2248.image_5F00_31E9E40A.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/3542.image_thumb_71B3CA8F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/3542.image_5F00_thumb_5F00_71B3CA8F.png" alt="image" width="244" height="139" border="0" /></a></p>
<p><strong>And yet it&rsquo;s more!</strong></p>
<p>CREATE EXTERNAL TABLE IF NOT EXISTS toDo <br />(fun STRING, <br />rank INT COMMENT 'rank the greatness', <br />type STRING) <br />COMMENT 'two tables walk into a bar....' <br />ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' <br />STORED AS TEXTFILE <br />LOCATION '/data/demo/';</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8306.image_3CE76CF1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8306.image_5F00_3CE76CF1.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/6712.image_thumb_516CBC6F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/6712.image_5F00_thumb_5F00_516CBC6F.png" alt="image" width="244" height="139" border="0" /></a></p>
<p><strong>A mix of old and new</strong></p>
<p>-- read some data <br />SELECT 'you cannot make me ', score, fun, type <br />FROM toDo <br />WHERE score &lt;= 0 <br />ORDER BY score;</p>
<p>SELECT 'when can we ', score, fun, type <br />FROM toDo <br />WHERE score &gt; 0 <br />DISTRIBUTE BY score SORT BY score;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/5428.image_0CC0222E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/5428.image_5F00_0CC0222E.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/6180.image_thumb_617B8B26.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/6180.image_5F00_thumb_5F00_617B8B26.png" alt="image" width="244" height="139" border="0" /></a></p>
<p><strong>That&rsquo;s Hive folks!</strong></p>
<p>Hive</p>
<blockquote>
<p>on Hadoop <br />on HDInsight <br />on AzureBig Data in the cloud!</p>
</blockquote>
<p><strong>Hadoop Shines When&hellip;.</strong> <br />(refer to <a href="https://blogs.msdn.com/b/cindygross/archive/2015/02/25/master-choosing-the-right-project-for-hadoop.aspx">https://blogs.msdn.com/b/cindygross/archive/2015/02/25/master-choosing-the-right-project-for-hadoop.aspx</a>)</p>
<p>Data exploration, analytics and reporting, new data-driven actionable insights <br />Rapid iterating <br />Unknown unknowns <br />Flexible scaling <br />Data driven actions for early competitive advantage or first to market <br />Low number of direct, concurrent users <br />Low cost data archival</p>
<p><strong>Hadoop Anti-Patterns&hellip;.</strong></p>
<p>Replace system whose pain points don&rsquo;t align with Hadoop&rsquo;s strengths <br />OLTP needs adequately met by an existing system <br />Known data with a static schema <br />Many end users <br />Interactive response time requirements (becoming less true) <br />Your first Hadoop project + mission critical system</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/7651.image_13732BB1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7651.image_5F00_13732BB1.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/7571.image_thumb_73581EF3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7571.image_5F00_thumb_5F00_73581EF3.png" alt="image" width="244" height="139" border="0" /></a></p>
<p><strong>Azure has so much more</strong></p>
<p>Go straight to the business code <br />Scale storage and compute separately <br />Open Source <br />Linux <br />Managed and unmanaged services <br />Hybrid <br />On-demand and 24x7 options <br />SQL Server</p>
<p><strong>It&rsquo;s a Polyglot</strong></p>
<p>Stream your data into a lake <br />Pick the best compute for each task</p>
<p><strong>And it&rsquo;s Fun!</strong></p>
<p>I hope you enjoyed this small bite of big data!</p>
<p><a class="twitter-timeline" href="https://twitter.com/SQLCindy" data-widget-id="563128002582548480">Tweets by @SQLCindy</a></p>
<script type="text/javascript">// <![CDATA[
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
// ]]]]><![CDATA[></script>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/64/92/17/BigDataForTheSQLEye.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-64-92-17/BigDataForTheSQLEye.zip">BigDataForTheSQLEye.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>The Big Data Dragon flies on to Microsoft AzureCAT</title>
      <link>https://docs.microsoft.com/archive/blogs/cindygross/the-big-data-dragon-flies-on-to-microsoft-azurecat</link>
      <pubDate>Fri, 08 May 2015 08:17:33 GMT</pubDate>
      <dc:creator><![CDATA[Cindy Gross]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/cindygross/2015/05/08/the-big-data-dragon-flies-on-to-microsoft-azurecat/</guid>
      <description><![CDATA[“Always in motion is the future” - Yoda  On June 1 I will be moving into a new role on AzureCAT. I...]]></description>
      <content:encoded><![CDATA[<p>“Always in motion is the future” - Yoda<img title="CindyMar2015" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px" border="0" alt="CindyMar2015" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/6560.CindyMar2015_29BF0F4E.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/6560.CindyMar2015_5F00_29BF0F4E.jpg" width="155" align="right" height="186" /></p>  <p>On June 1 I will be moving into a new role on AzureCAT. I tried the small business consulting world with Neal Analytics and it just wasn't a good fit for me and my passions. So here I go, on to new challenges at Microsoft! I'll be making the world a better place with the help of Big Data.</p>  <p>And while I'm making changes, I'll also be moving from Boise, ID to the Redmond, WA area. It's new adventures all around for me. I'll miss Boise - my friends, my political battles, the greenbelt and hiking trails, sitting on the patios downtown. And I'm also excited about all the new opportunities I'll have in my new, blue state. </p>  <p>Bring it on world, I'm ready!</p>  <p><a href="mailto:cindygross@outlook.com">cindygross@outlook.com</a> | <a href="https://twitter.com/sqlcindy">@SQLCindy</a> | <a href="https://www.linkedin.com/in/cindygross">https://www.linkedin.com/in/cindygross</a> | <u><a href="https://smallbitesofbigdata.com">https://smallbitesofbigdata.com</a></u></p>  <p>Cross-published on:</p>  <p><a href="https://befriendingdragons.com/2015/05/07/the-big-data-dragon-flies-on-to-microsoft-azurecat">https://befriendingdragons.com/2015/05/07/the-big-data-dragon-flies-on-to-microsoft-azurecat</a>     <br /><a title="https://smallbitesofbigdata.com/archive/2015/05/08/the-big-data-dragon-flies-on-to-microsoft-azurecat.aspx" href="https://smallbitesofbigdata.com/archive/2015/05/08/the-big-data-dragon-flies-on-to-microsoft-azurecat.aspx">https://smallbitesofbigdata.com/archive/2015/05/08/the-big-data-dragon-flies-on-to-microsoft-azurecat.aspx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Hadoop Likes Big Files</title>
      <link>https://docs.microsoft.com/archive/blogs/cindygross/hadoop-likes-big-files</link>
      <pubDate>Mon, 04 May 2015 12:45:00 GMT</pubDate>
      <dc:creator><![CDATA[Cindy Gross]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/cindygross/2015/05/04/hadoop-likes-big-files/</guid>
      <description><![CDATA[One of the frequently overlooked yet essential best practices for Hadoop is to prefer fewer, bigger...]]></description>
      <content:encoded><![CDATA[<p>One of the frequently overlooked yet essential best practices for Hadoop is to prefer fewer, bigger files over more, smaller files. How small is too small and how many is too many? How do you stitch together all those small Internet of Things files into files &quot;big enough&quot; for Hadoop to process efficiently?</p>  <p><b>The Problem</b></p>  <p>One performance best practice for Hadoop is to have fewer large files as opposed to large numbers of small files. A related best practice is to not partition “too much”. Part of the reason for not over-partitioning is that it generally leads to larger numbers of smaller files.</p>  <p>Too small is smaller than HDFS block size (chunk size), or realistically small is something less than several times larger than chunk size. A very, very rough rule of thumb is files should be at least 1GB each and no more than maybe around 10,000-ish files per table. These numbers, especially the maximum total number of files per table, vary depending on many factors. However, it gives you a reference point. The 1GB is based on multiples of the chunk size while the 2<sup>nd</sup> is honestly a bit of a guess based on a typical small cluster.</p>  <p><b>Why Is It Important?</b></p>  <p>One reason for this recommendation is that Hadoop’s name node service keep track of all the files and where the internal chunks of the individual files are. The more files it has to track the more memory it needs on the head node and the longer it takes to build a job execution plan. The number and size of files also affects how memory is used on each node.</p>  <p><a href="https://azure.microsoft.com/" target="_blank"></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2605.smallpie_6CF86B1F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2605.smallpie_5F00_6CF86B1F.png"><img title="smallpie" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; margin: 0px 5px 0px 0px; display: inline; border-top-width: 0px" border="0" alt="smallpie" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/5850.smallpie_thumb_135A4E6B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/5850.smallpie_5F00_thumb_5F00_135A4E6B.png" width="97" align="left" height="65" /></a></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/7024.bigpie_532434F0.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7024.bigpie_5F00_532434F0.png"><img title="bigpie" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 5px; display: inline; border-top-width: 0px" border="0" alt="bigpie" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2727.bigpie_thumb_7C9B06E1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2727.bigpie_5F00_thumb_5F00_7C9B06E1.png" width="70" align="right" height="70" /></a>Let’s say your chunk size is 256MB. That’s the maximum size of each piece of the file that Hadoop will store per node. So if you have 10 nodes and a single 1GB file it would be split into 4 chunks of 256MB each and stored on 4 of those nodes (I’m ignoring the replication factor for this discussion). If you have 1000 files that are 1MB each (still a total data size of ~1GB) then every one of those files is a separate chunk and 1000 chunks are spread across those 10 nodes. NOTE: In <a href="https://azure.microsoft.com/" target="_blank">Azure</a> and <a href="https://smallbitesofbigdata.com/archive/2015/02/04/understanding-wasb-and-hadoop-storage-in-azure.aspx" target="_blank">WASB</a> this happens somewhat differently behind the scenes – the data isn’t physically chunked up when initially stored but rather chunked up at the time a job runs. </p>  <p>With the single 1GB file the name node has 5 things to keep track of – the logical file plus the 4 physical chunks and their associated physical locations. With 1000 smaller files the name node has to track the logical file plus 1000 physical chunks and their physical locations. That uses more memory and results in more work when the head node service uses the file location information to build out the plan for how it will split out any Hadoop job into tasks across the many nodes. When we’re talking about systems that often have TBs or PBs of data the difference between small and large files can add up quickly.</p>  <p>The other problem comes at the time that the data is read by a Hadoop job. When the job runs on each node it loads the files the task tracker identified for it to work with into memory on that local node (in WASB the chunking is done at this point). When there are more files to be read for the same amount of data it results in more work and slower execution time for each task within each job. Sometimes you will see hard errors when operating system limits are hit related to the number of open files. There is also more internal work involved in reading the larger number of files and combining the data.</p>  <p><b>Stitching</b></p>  <p>There are several options for stitching files together.</p>  <ul>   <li>Combine the files as they land using the code that moves the files. This is the most performant and efficient method in most cases. </li>    <li>INSERT into new Hive tables (directories) which creates larger files under the covers. The output file size can be controlled with settings like hive.merge.smallfiles.avgsize and hive.merge.size.per.task. </li>    <li>Use a combiner in Pig to load the many small files into bigger splits. </li>    <li>Use the HDFS FileSystem Concat API <a href="https://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html#concat">https://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html#concat</a>. </li>    <li>Write custom stitching code and make it a JAR. </li>    <li>Enable the Hadoop Archive (HAR). This is not very efficient for this scenario but I am including it for completeness. </li> </ul>  <p>There are several writeups out there that address the details of each of these methods so I won't repeat them.</p>  <ul>   <li>Merging small files on HDInsight <a href="https://blogs.msdn.com/b/mostlytrue/archive/2014/04/10/merging-small-files-on-hdinsight.aspx">https://blogs.msdn.com/b/mostlytrue/archive/2014/04/10/merging-small-files-on-hdinsight.aspx</a> which uses a Java MapReduce JAR <a href="https://github.com/mooso/smallfilesmerge">https://github.com/mooso/smallfilesmerge</a>. </li>    <li>Quick Tip for Compressing Many Small Text Files within HDFS via Pig <a href="https://dennyglee.com/2014/01/06/quick-tip-for-compressing-many-small-text-files-within-hdfs-via-pig/.">https://dennyglee.com/2014/01/06/quick-tip-for-compressing-many-small-text-files-within-hdfs-via-pig/.</a> </li>    <li>FileCrush <a href="https://github.com/edwardcapriolo/filecrush.">https://github.com/edwardcapriolo/filecrush.</a> </li>    <li>HDFS FileSystem Concat API      <ul>       <li><a href="https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/WebHDFS.html#Concat_Files">https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/WebHDFS.html#Concat_Files</a> </li>        <li><a href="https://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html#concat">https://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html#concat</a> </li>        <li><a href="https://issues.apache.org/jira/browse/HDFS-222">https://issues.apache.org/jira/browse/HDFS-222</a> </li>     </ul>   </li>    <li>CombineFileInputFormat (splits)      <ul>       <li>This may not work with really large numbers of files and has to be used EVERY time a job is run. </li>        <li><a href="https://www.ibm.com/developerworks/library/bd-hadoopcombine/index.html">https://www.ibm.com/developerworks/library/bd-hadoopcombine/index.html</a> </li>        <li>Process Small Files on Hadoop Using CombineFileInputFormat (1) <a href="https://www.idryman.org/blog/2013/09/22/process-small-files-on-hadoop-using-combinefileinputformat-1/">https://www.idryman.org/blog/2013/09/22/process-small-files-on-hadoop-using-combinefileinputformat-1/</a> </li>     </ul>   </li>    <li>Dealing with Hadoop's small files problem <a href="https://snowplowanalytics.com/blog/2013/05/30/dealing-with-hadoops-small-files-problem/">https://snowplowanalytics.com/blog/2013/05/30/dealing-with-hadoops-small-files-problem/</a>&#160; “aggregating with the small files first reduced total processing time from 2 hours 57 minutes to just 9 minutes - of which 3 minutes was the aggregation, and 4 minutes was running our actual Enrichment process. That’s a speedup of <b>1,867%</b>.” </li>    <li>The Small Files problem in Hadoop <a href="https://piglog4j.blogspot.com/2013/06/the-small-files-problem-in-hadoop.html">https://piglog4j.blogspot.com/2013/06/the-small-files-problem-in-hadoop.html</a> </li>    <li>Hadoop Archive: File Compaction for HDFS <a href="https://developer.yahoo.com/blogs/hadoop/hadoop-archive-file-compaction-hdfs-461.html">https://developer.yahoo.com/blogs/hadoop/hadoop-archive-file-compaction-hdfs-461.html</a> </li>    <li>The Small Files Problem <a href="https://blog.cloudera.com/blog/2009/02/the-small-files-problem/">https://blog.cloudera.com/blog/2009/02/the-small-files-problem/</a> “Reading through files in a HAR is no more efficient than reading through files in HDFS, and in fact may be slower since each HAR file access requires two index file reads as well as the data file read (see diagram). And although HAR files can be used as input to MapReduce, there is no special magic that allows maps to operate over all the files in the HAR co-resident on a HDFS block.” </li> </ul>  <p>The key here is to work with fewer, larger files as much as possible in Hadoop. The exact steps to get there will vary depending on your specific scenario.</p>  <p>I hope you enjoyed this small bite of big data!</p>  <p><strong>Cindy Gross – Neal Analytics: </strong>Big Data and Cloud Technical Fellow&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2548.image_068B1E19.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2548.image_5F00_068B1E19.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4113.image_thumb_2639F7E1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4113.image_5F00_thumb_5F00_2639F7E1.png" width="105" height="43" /></a>     <br /><a href="https://twitter.com/sqlcindy">@SQLCindy</a> | <a href="https://twitter.com/nealanalytics">@NealAnalytics</a> | <a href="mailto:CindyG@NealAnalytics.com">CindyG@NealAnalytics.com</a> | <a href="https://smallbitesofbigdata.com">https://smallbitesofbigdata.com</a></p>  <p>&#160;<a class="twitter-timeline" href="https://twitter.com/SQLCindy" data-widget-id="563128002582548480">Tweets by @SQLCindy</a> <script type="text/javascript">// <![CDATA[
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
// ]]]]><![CDATA[></script></p>  <div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:17cc84c2-9daa-4bd4-a310-881078aca9c1" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">Technorati Tags: <a href="https://technorati.com/tags/HDInsight" rel="tag">HDInsight</a>,<a href="https://technorati.com/tags/Best+practices" rel="tag">Best practices</a>,<a href="https://technorati.com/tags/performance" rel="tag">performance</a>,<a href="https://technorati.com/tags/Microsoft+Azure" rel="tag">Microsoft Azure</a>,<a href="https://technorati.com/tags/Neal+Analytics" rel="tag">Neal Analytics</a>,<a href="https://technorati.com/tags/Big+Data" rel="tag">Big Data</a>,<a href="https://technorati.com/tags/configuration" rel="tag">configuration</a>,<a href="https://technorati.com/tags/deploy" rel="tag">deploy</a>,<a href="https://technorati.com/tags/Hadoop" rel="tag">Hadoop</a>,<a href="https://technorati.com/tags/SQLCindy" rel="tag">SQLCindy</a></div>]]></content:encoded>
    </item>
    <item>
      <title>Azure Data Factory: Hub Not Found</title>
      <link>https://docs.microsoft.com/archive/blogs/cindygross/azure-data-factory-hub-not-found</link>
      <pubDate>Wed, 01 Apr 2015 17:58:00 GMT</pubDate>
      <dc:creator><![CDATA[Cindy Gross]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/cindygross/2015/04/01/azure-data-factory-hub-not-found/</guid>
      <description><![CDATA[You can use the new Azure portal to create or edit Azure Data Factory components. Once you are done...]]></description>
      <content:encoded><![CDATA[<p>You can use the new Azure portal to create or edit Azure Data Factory components. Once you are done you may automate the process of creating future Data Factory components from PowerShell. In that case you can use the JSON files you edited in the portal GUI as configuration files for the PowerShell cmdlets. For example, you may try to create a new linked service using settings from C:\Cooler\HDInsight.JSON as specified below:</p>
<p><strong><em>New-AzureDataFactoryLinkedService -ResourceGroupName CoolerDemo -DataFactoryName $DataFactoryName -File C:\Cooler\HDInsight.JSON</em></strong></p>
<p>In that case you may see something like this error:</p>
<p><strong><em>New-AzureDataFactoryLinkedService : Hub: {SomeName_hub} not found. <br />CategoryInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : CloseError: (:) [New-AzureDataFactoryLinkedService]. Provisioning FailedException <br />FullyQualifiedErrorID&nbsp;&nbsp; : Microsoft.Azure.Commands.DataFactories.NewAzureDataFactoryLinkedServiceCommand</em></strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4617.image_1E6D5C33.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4617.image_5F00_1E6D5C33.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8764.image_thumb_0022A53D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8764.image_5F00_thumb_5F00_0022A53D.png" alt="image" width="575" height="121" border="0" /></a></p>
<p>If you check the JSON file that you exported from the portal and referenced in the PowerShell script, you will see it ends with something like this:</p>
<p><em><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "isPaused": false, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "hubName": "SomeName_hub" <br />&nbsp;&nbsp;&nbsp; } <br />}</strong></em></p>
<p>The hubName is currently automatically generated based on the name of the Data Factory and should not be present in the JSON files used by PowerShell. Remove the comma on the line above the hubName and the entire line starting with hubName.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "hubName": "SomeName_hub"</em></strong></p>
<p>That will leave the end of the file looking something like this:</p>
<p><em><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "isPaused": false <br />&nbsp;&nbsp;&nbsp;&nbsp; } <br />}</strong></em></p>
<p>Check out all your other JSON files you are using for Data Factory components and do the same editing for any that have a hubName.</p>
<p>NOTE: This applies to Azure Data Factory as of April 2015. At some point the hubName should become a viable parameter usable by PowerShell.</p>
<p>I hope you enjoyed this small bite of big data!</p>
<p><strong>Cindy Gross &ndash; Neal Analytics: </strong>Big Data and Cloud Technical Fellow&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2548.image_068B1E19.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2548.image_5F00_068B1E19.png"><img title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4113.image_thumb_2639F7E1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4113.image_5F00_thumb_5F00_2639F7E1.png" alt="image" width="105" height="43" border="0" /></a> <br /><a href="https://twitter.com/sqlcindy">@SQLCindy</a> | <a href="https://twitter.com/nealanalytics">@NealAnalytics</a> | <a href="mailto:CindyG@NealAnalytics.com">CindyG@NealAnalytics.com</a> | <a href="https://smallbitesofbigdata.com">https://smallbitesofbigdata.com</a></p>
<p>&nbsp;<a class="twitter-timeline" href="https://twitter.com/SQLCindy" data-widget-id="563128002582548480">Tweets by @SQLCindy</a>
<script type="text/javascript">// <![CDATA[
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
// ]]]]><![CDATA[></script>
</p>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:55bea13a-3b0a-47c8-af5d-87ef4d724bc5" class="wlWriterEditableSmartContent" style="float: none; margin: 0px; display: inline; padding: 0px;">Technorati Tags: <a href="https://technorati.com/tags/Azure+Data+Factory" rel="tag">Azure Data Factory</a>,<a href="https://technorati.com/tags/Troubleshooting" rel="tag">Troubleshooting</a>,<a href="https://technorati.com/tags/error" rel="tag">error</a>,<a href="https://technorati.com/tags/PowerShell" rel="tag">PowerShell</a>,<a href="https://technorati.com/tags/Microsoft+Azure" rel="tag">Microsoft Azure</a>,<a href="https://technorati.com/tags/Neal+Analytics" rel="tag">Neal Analytics</a>,<a href="https://technorati.com/tags/Big+Data" rel="tag">Big Data</a>,<a href="https://technorati.com/tags/configuration" rel="tag">configuration</a>,<a href="https://technorati.com/tags/deploy" rel="tag">deploy</a>,<a href="https://technorati.com/tags/SSIS" rel="tag">SSIS</a>,<a href="https://technorati.com/tags/SQLCindy" rel="tag">SQLCindy</a></div>]]></content:encoded>
    </item>
    <item>
      <title>Create HDInsight Cluster in Azure Portal</title>
      <link>https://docs.microsoft.com/archive/blogs/cindygross/create-hdinsight-cluster-in-azure-portal</link>
      <pubDate>Thu, 26 Feb 2015 17:37:23 GMT</pubDate>
      <dc:creator><![CDATA[Cindy Gross]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/cindygross/2015/02/26/create-hdinsight-cluster-in-azure-portal/</guid>
      <description><![CDATA[Creating an HDInsight cluster from the Azure portal is very easy. However, sometimes you want all...]]></description>
      <content:encoded><![CDATA[<p>Creating an <a href="https://azure.microsoft.com/en-us/documentation/services/hdinsight/" target="_blank">HDInsight</a> cluster from the <a href="https://azure.microsoft.com/" target="_blank">Azure</a> portal is very easy. However, sometimes you want all the choices and best practices explained as well as the &quot;how to&quot;. I have created a series of slides with audio recordings to walk you through the process and choices. They are available as sessions 1-8 of &quot;Create HDInsight Cluster in Azure Portal&quot; on my YouTube channel <a href="https://www.youtube.com/channel/UCIjpujNuF9Dg-sHQYtXkSSA" target="_blank">Small Bites of Big Data</a>.</p>  <p>Playlist Getting Started with HDInsight: <a title="https://www.youtube.com/playlist?list=PLAD2dOpGM3s1R2L5HgPMX4MkTGvSza7gv" href="https://www.youtube.com/playlist?list=PLAD2dOpGM3s1R2L5HgPMX4MkTGvSza7gv">https://www.youtube.com/playlist?list=PLAD2dOpGM3s1R2L5HgPMX4MkTGvSza7gv</a>&#160;</p>  <ol>   <li>Why HDInsight: <a href="https://youtu.be/J9KzIShLeD8">https://youtu.be/J9KzIShLeD8</a> </li>    <li>Azure Subscription: <a href="https://youtu.be/lSxMtmRE114">https://youtu.be/lSxMtmRE114</a> </li>    <li>Azure Storage - WASB: <a href="https://youtu.be/6OdDDmdaVVE">https://youtu.be/6OdDDmdaVVE</a> </li>    <li>Metastore: <a href="https://youtu.be/1Og_eftYVpA">https://youtu.be/1Og_eftYVpA</a> </li>    <li>Create HDInsight: <a href="https://youtu.be/SysIo3LwONk">https://youtu.be/SysIo3LwONk</a> </li>    <li>Hive Query: <a href="https://youtu.be/DRAuOXsuec0">https://youtu.be/DRAuOXsuec0</a> </li>    <li>Load Demo Data: <a href="https://youtu.be/XyiOpRPjfUs">https://youtu.be/XyiOpRPjfUs</a> </li>    <li>Pricing, Automation, and Wrapup: <a href="https://youtu.be/78YowrOnNGM">https://youtu.be/78YowrOnNGM</a> </li> </ol>  <p>PowerPoint deck: <a title="https://www.slideshare.net/cindygross1/create-hd-insightfeb2015" href="https://www.slideshare.net/cindygross1/create-hd-insightfeb2015">https://www.slideshare.net/cindygross1/create-hd-insightfeb2015</a>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/1362.image_070CF4EE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/1362.image_5F00_070CF4EE.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0317.image_thumb_1B92446C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0317.image_5F00_thumb_5F00_1B92446C.png" width="333" height="189" /></a> </p>  <h1>Why HDInsight?</h1>  <p>HDInsight is Hadoop on Azure as a service. </p>  <ul>   <li>Easy, cost effective, changeable scale out data processing </li>    <li>Lower TCO – easily add/remove/scale </li>    <li>Separation of storage and compute allows data to exist across clusters </li>    <li>Hortonworks HDP is one of the 3 major Hadoop      <br />distributors, the most purely open source </li>    <li>HDInsight *IS* Hortonworks HDP as a service in Azure (cloud) </li>    <li>Metastore (Hcatalog) exists independently across clusters via SQL DB </li>    <li>#, size, type of clusters are flexible and can all access the same data </li>    <li>Hive is a Hadoop component that makes data look like rows/columns for data warehouse type activities </li> </ul>  <p>It offers the standard advantages of Hadoop: </p>  <ul>   <li>Scale-out </li>    <li>Load data now, add schema later (write once, read many) </li>    <li>Fail fast – iterate through many questions to find the right question </li>    <li>Faster time from question to insight </li>    <li>Hadoop is “just another data source” for BI, Analytics, Machine Learning </li> </ul>  <p>In addition you have the advantages of Hadoop in the cloud:</p>  <ul>   <li>Instantly access data born in the cloud </li>    <li>Easily, cheaply load, share, and merge public or private data </li>    <li>Data exists independently across clusters (separation of storage and compute) via WASB on Azure storage accounts </li> </ul>  <p><a href="https://youtu.be/FMeGsGd5Cys" target="_blank">Recording</a> of why HDInsight on YouTube</p>  <h1>Azure Subscription</h1>  <p>You have many options to obtain a Microsoft Azure subscription:</p>  <ul>   <li>Trial: <a href="https://azure.microsoft.com/en-us/pricing/free-trial/" target="_blank">https://azure.microsoft.com/en-us/pricing/free-trial</a><a href="https://azure.microsoft.com/en-us/pricing/free-trial/">/</a> </li>    <li>MSDN Subscription: <a href="https://azure.microsoft.com/en-us/pricing/member-offers/msdn-benefits/" target="_blank">https://azure.microsoft.com/en-us/pricing/member-offers/msdn-benefits</a><a href="https://azure.microsoft.com/en-us/pricing/member-offers/msdn-benefits/">/</a> </li>    <li>Startup BizSpark: <a href="https://azure.microsoft.com/en-us/pricing/member-offers/bizspark-startups/" target="_blank">https://azure.microsoft.com/en-us/pricing/member-offers/bizspark-startups</a><a href="https://azure.microsoft.com/en-us/pricing/member-offers/bizspark-startups/">/</a> </li>    <li>Classroom: <a href="https://www.microsoftazurepass.com/azureu">https://</a><a href="https://www.microsoftazurepass.com/azureu" target="_blank">www.microsoftazurepass.com/azureu</a> </li>    <li>Pay-As-You-Go or Enterprise Agreement: <a href="https://azure.microsoft.com/en-us/pricing/" target="_blank">https://azure.microsoft.com/en-us/pricing</a><a href="https://azure.microsoft.com/en-us/pricing/">/</a> </li> </ul>  <h2>&#160;</h2>  <h2>Login to Azure Subscription</h2>  <p>1. Login on Azure <font color="#ff0000">Portal</font> <a href="https://manage.windowsazure.com/">https</a><a href="https://manage.windowsazure.com/">://</a><a href="https://manage.windowsazure.com/">manage.windowsazure.com</a></p>  <p>2. Use a <font color="#008000">Microsoft Account </font><a href="https://www.microsoft.com/en-us/account/default.aspx">https://</a><a href="https://www.microsoft.com/en-us/account/default.aspx">www.microsoft.com/en-us/account/default.aspx</a>     <br />Note: Some companies have federated their accounts and can use company accounts.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/7673.image_7457FB36.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7673.image_5F00_7457FB36.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0576.image_thumb_365E6A78.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0576.image_5F00_thumb_5F00_365E6A78.png" width="498" height="459" /></a> </p>  <h2>Choose Subscription</h2>  <p>Most accounts will only have one Azure subscription associated with them. But if you seem to have unexpected resources, check to make sure you are in the expected subscription. The <font color="#ff0000">Subscriptions</font> button is on the upper right of the Azure portal.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0435.image_2725E134.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0435.image_5F00_2725E134.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8461.image_thumb_2DD8EAB7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8461.image_5F00_thumb_5F00_2DD8EAB7.png" width="695" height="62" /></a> </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/1524.image_7B18B3BB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/1524.image_5F00_7B18B3BB.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/3187.image_thumb_2899D37F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/3187.image_5F00_thumb_5F00_2899D37F.png" width="255" height="385" /></a> </p>  <h2>Add Accounts</h2>  <p>Option: Add more Microsoft Accounts as admins of the Azure Subscription. </p>  <p>1. Choose <font color="#ff0000">SETTINGS</font> at the very bottom on the left. </p>  <p>2. Then choose <font color="#ff8040">ADMINISTRATORS</font> at the top. Click on the ADD button at the very bottom.</p>  <p>3. Enter a Microsoft <font color="#008000">Account</font> or federated enterprise account that will be an admin.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/1462.image_58C3AEF3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/1462.image_5F00_58C3AEF3.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/7824.image_thumb_73FC07F4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7824.image_5F00_thumb_5F00_73FC07F4.png" width="561" height="399" /></a>&#160;</p>  <p><a href="https://youtu.be/lSxMtmRE114" target="_blank">Recording</a> of getting started with an Azure subscription on YouTube</p>  <h1>Azure Storage - WASB</h1>  <p>I recommend you manually create at least one Azure storage account and container ahead of time. While the HDInsight creation dialogue gives the option of creating the storage account and container for you, that only works if you don't plan to reuse data across clusters.</p>  <h2>Create a Storage Account</h2>  <p>1. Click on <font color="#ff0000">STORAGE</font> in the left menu then <font color="#ff8040">NEW</font>. </p>  <p>2. <font color="#800080">URL</font>: Choose a lower-case storage account name that is unique within <font color="#800080">*.core.windows.net</font>.</p>  <p>3. <font color="#008000">LOCATION</font>: Choose the same location for the SQL Azure metastore database, the storage account(s), and HDInsight.</p>  <p>4. <a href="https://msdn.microsoft.com/en-us/library/azure/dn727290.aspx"><font color="#0080c0">REPLICATION</font></a>: Locally redundant stores fewer copies and costs less.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4606.image_0C8BA545.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4606.image_5F00_0C8BA545.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8345.image_thumb_5CD08D76.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8345.image_5F00_thumb_5F00_5CD08D76.png" width="559" height="372" /></a> </p>  <p>Repeat if you need additional storage.</p>  <h2>Create a Container</h2>  <p>1. Click on your <font color="#ff0000">storage account</font> in the left menu then <font color="#ff8040">CONTAINERS</font> on the top. </p>  <p>2. Choose <font color="#008000">CREATE A CONTAINER</font> or choose the NEW button at the bottom.</p>  <p>3. Enter a lower-case <font color="#0080ff">NAME</font> for the container, unique within that storage account.</p>  <p>4. Choose either Private or Public <font color="#800080">ACCESS</font>. If there is any chance of sensitive or PII data being loaded to this container choose Private. Private access requires a key. HDInsight can be configured with that key during creation or keys can be passed in for individual jobs.</p>  <p>This will be the default container for the cluster. If you want to manage your data separately you may want to create additional containers.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/3073.image_6A36A07C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/3073.image_5F00_6A36A07C.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/6622.image_thumb_6C732938.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/6622.image_5F00_thumb_5F00_6C732938.png" width="558" height="401" /></a> </p>  <h2>WASB</h2>  <p>Additional information about storage, including details on Windows Azure Storage Blobs (WASB) is on <a href="https://SmallBitesOfBigData.com">https://SmallBitesOfBigData.com</a>. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4174.image_32F01941.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4174.image_5F00_32F01941.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/5076.image_thumb_5547AEBA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/5076.image_5F00_thumb_5F00_5547AEBA.png" width="564" height="319" /></a> </p>  <p><a href="https://youtu.be/6OdDDmdaVVE" target="_blank">Recording</a> of creating an Azure storage account and container on YouTube.</p>  <h1>Metastore (HCatalog)</h1>  <p>In Azure you have the option to create a metastore for Hive and/or Oozie that exists independently of your HDInsight clusters. This allows you to reuse your Hive schemas and Oozie workflows as you drop and recreate your cluster(s). I highly recommend using this option for a production environment or anything that involves repeated access to the same, standard schemas and/or workflows.</p>  <h2>Create a Metastore aka Azure SQL DB</h2>  <p>Persist your Hive and Oozie metadata across cluster instances, even if no cluster exists, with an HCatalog metastore in an Azure SQL Database. This database should not be used for anything else. While it works to share a single metastore across multiple instances it is not officially tested or supported.</p>  <p>1. Click on <font color="#ff0000">SQL DATABASES</font> then <font color="#ff8040">NEW</font> and choose <font color="#008000">CUSTOM CREATE</font>.</p>  <p>2. Choose a <font color="#0080c0">NAME</font> unique to your server.</p>  <p>3. Click on the “?” to help you decide what <font color="#800080">TIER</font> of database to create. </p>  <p>4. Use the default database <font color="#ff8000">COLLATION</font>.</p>  <p>5. If you choose an existing <font color="#c0c0c0">SERVER</font> you will share sysadmin access with other databases.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/3438.image_49B1F17B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/3438.image_5F00_49B1F17B.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0638.image_thumb_102EE184.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0638.image_5F00_thumb_5F00_102EE184.png" width="549" height="386" /></a> </p>  <p>You can make the system more secure if you create a custom login on the Azure server. Add that login as a user in the database you just created. Grant it minimal read/write permissions in the database. This is not well documented or tested so the exact permissions needed for this are vague. You may see odd errors if you don’t grant the appropriate permissions.</p>  <h2>Firewall Rules</h2>  <p>In order to refer to the metastore from automated cluster creation scripts such as PowerShell your workstation must be added to the firewall rules.</p>  <p>1. Click on <font color="#ff0000">MANAGE</font> then choose YES.</p>  <p>2. You can also use the <font color="#ff0000">MANAGE</font> button to connect to the SQL Azure database and manage logins and permissions.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/6518.image_2B673A85.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/6518.image_5F00_2B673A85.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4786.image_thumb_748CE63E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4786.image_5F00_thumb_5F00_748CE63E.png" width="556" height="229" /></a> </p>  <p><a href="https://youtu.be/1Og_eftYVpA" target="_blank">Recording</a> of creating the metastore on YouTube.</p>  <h1>Create the HDInsight Cluster</h1>  <p>Now that we have the pre-requisites done we can move on to creating the cluster.</p>  <p></p>  <ul>   <li>Quick Create through the Azure portal is the fastest way to get started with all the default settings. </li>    <li>The Azure portal Custom Create allows you to customize size, storage, and other configuration options. </li>    <li>You can customize and automate through code including .NET and PowerShell. This increases standardization and lets you automate the creation and deletion of clusters over time. </li>    <li>For all the examples here we will create a basic Hadoop cluster with Hive, Pig, and MapReduce. </li>    <li>A cluster will take several minutes to create, the type and size of the cluster have little impact on the time for creation. </li> </ul>  <h2>Quick Create Option</h2>  <p>For your first cluster choose a Quick Create.</p>  <p>1. Click on <font color="#ff0000">HDINSIGHT</font> in the left menu, then NEW.</p>  <p>2. Choose <font color="#ff8040">Hadoop</font>. HBase and Storm also include the features of a basic Hadoop cluster but are optimized for in-memory key value pairs (HBase) or alerting (Storm).</p>  <p>3. Choose a <font color="#008000">NAME</font> unique in the azurehdinisght.net domain.</p>  <p>4. Start with a small <font color="#0080c0">CLUSTER SIZE</font>, often 2 or 4 nodes.</p>  <p>5. Choose the admin <font color="#800080">PASSWORD</font>.</p>  <p>6. The location of the <font color="#ff8000">STORAGE ACCOUNT</font> determines the location of the cluster.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0172.image_64DA7B03.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0172.image_5F00_64DA7B03.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0601.image_thumb_0012D405.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0601.image_5F00_thumb_5F00_0012D405.png" width="553" height="420" /></a> </p>  <h2>Custom Create Option</h2>  <p>You can also customize your size, admin account, storage, metastore, and more through the portal. We’ll walk through a basic Hadoop cluster.</p>  <h3>New</h3>  <p>1. Click on <font color="#ff0000">HDINSIGHT</font> in the left menu, then NEW in the lower left.</p>  <p>2. Choose <font color="#ff8040">CUSTOM CREATE</font>.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8105.image_7864D9B9.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8105.image_5F00_7864D9B9.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/7115.image_thumb_05CAECC0.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7115.image_5F00_thumb_5F00_05CAECC0.png" width="434" height="459" /></a> </p>  <h3>Basic Info</h3>  <p>1. Choose a <font color="#ff0000">NAME</font> unique in the azurehdinisght.net domain.</p>  <p>2. Choose <font color="#ff8040">Hadoop</font>. HBase and Storm also include the features of a basic Hadoop cluster but are optimized for in-memory key-value pairs (HBase) or alerting (Storm).</p>  <p>3. Choose Windows or Linux as the <font color="#800080">OPERATING SYSTEM</font>. Linux is only available if you have signed up for the preview.</p>  <p>4. In most cases you will want the default <font color="#008000">VERSION</font>.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8117.image_7A352F80.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8117.image_5F00_7A352F80.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2275.image_thumb_55A3A1FC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2275.image_5F00_thumb_5F00_55A3A1FC.png" width="344" height="258" /></a> </p>  <h3>Size and Location</h3>  <p>1. Choose the number of <font color="#ff0000">DATA NODES</font> for this cluster. Head nodes and gateway nodes will also be created and they all use HDInsight cores. For information on how many cores are used by each node see the “<font color="#008000">Pricing details</font>” link.</p>  <p>2. Each subscription has a billing limit set for the maximum number of HDInsight cores available to that subscription. To change the number available to your subscription choose “<font color="#0080c0">Create a support ticket</font>.” If the total of all HDInsight cores in use plus the number needed for the cluster you are creating exceeds the billing limit you will receive a message: “<font color="#ff8000">This cluster requires X cores, but only Y cores are available for this subscription</font>”. Note that the messages are in <font color="#ff8000">cores</font> and your configuration is specified in <font color="#ff0000">nodes</font>.</p>  <p>3. The storage account(s), metastore, and cluster will all be in the same <font color="#ff8040">REGION</font>.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/5415.image_6A28F17A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/5415.image_5F00_6A28F17A.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8551.image_thumb_7EAE40F8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8551.image_5F00_thumb_5F00_7EAE40F8.png" width="656" height="167" /></a> </p>  <h3>Cluster Admin</h3>  <p>1. Choose an administrator <font color="#ff0000">USER NAME</font>. It is more secure to avoid “admin” and to choose a relatively obscure name. This account will be added to the cluster and doesn’t have to match any existing external accounts.</p>  <p>2. Choose a strong <font color="#ff8040">PASSWORD</font> of at least <font color="#008000">10 characters with upper/lower case letters, a number, and a special character</font>. Some special characters may not be accepted.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/1145.image_479A1414.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/1145.image_5F00_479A1414.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2046.image_thumb_3C0456D5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2046.image_5F00_thumb_5F00_3C0456D5.png" width="324" height="236" /></a> </p>  <h3>Metastore (HCatalog)</h3>  <p>On the same page as the Hadoop cluster admin account you can optionally choose to use a common metastore (Hcatalog).</p>  <p>1. Click on the blue box to the right of “<font color="#ff0000">Enter the Hive/Oozie Metastore</font>”. This makes more fields available.</p>  <p>2. Choose the SQL Azure database you created earlier as the <font color="#ff8040">METASTORE</font>.</p>  <p>3. Enter a login (<font color="#008000">DATABASE USER</font>) and <font color="#0080c0">PASSWORD</font> that allow you to access the METASTORE database. If you encounter errors, try logging in to the database manually from the portal. You may need to open firewall ports or change permissions.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/1588.image_45601C09.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/1588.image_5F00_45601C09.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/5314.image_thumb_479CA4C5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/5314.image_5F00_thumb_5F00_479CA4C5.png" width="323" height="337" /></a> </p>  <h3>Default Storage Account</h3>  <p>Every cluster has a default storage account. You can optionally specify additional storage accounts at cluster create time or at <a href="https://blogs.msdn.com/b/cindygross/archive/2014/05/05/use-additional-storage-accounts-with-hdinsight-hive.aspx">run time</a>. </p>  <p>1. To access existing data on an existing <font color="#ff0000">STORAGE ACCOUNT</font>, choose “<font color="#ff0000">Use Existing Storage</font>”.</p>  <p>2. Specify the <font color="#ff8040">NAME</font> of the existing storage account.</p>  <p>3. Choose a <font color="#008000">DEFAULT CONTAINER</font> on the default storage account. Other containers (units of data management) can be used as long as the storage account is known to the cluster. </p>  <p>4. To add <font color="#0080c0">ADDITIONAL STORAGE ACCOUNTS</font> that will be accessible without the user providing the storage account key, specify that here.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0842.image_00474ED3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0842.image_5F00_00474ED3.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/7382.image_thumb_1B7FA7D4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7382.image_5F00_thumb_5F00_1B7FA7D4.png" width="323" height="330" /></a> </p>  <h3>Additional Storage Accounts</h3>  <p>If you specified there will be additional accounts you will see this screen.</p>  <p>1. If you choose “<font color="#ff0000">Use Existing Storage</font>” you simply enter the <font color="#ff8040">NAME</font> of the storage account.</p>  <p>2. If you choose “<font color="#008000">Use Storage From Another Subscription</font>” you specify the <font color="#0080c0">NAME</font> and the <font color="#0080c0">GUID KEY</font> for that storage account. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4274.image_691BD454.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4274.image_5F00_691BD454.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2438.image_thumb_2B8E768B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2438.image_5F00_thumb_5F00_2B8E768B.png" width="244" height="176" /></a> <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4188.image_1D4FFD9B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4188.image_5F00_1D4FFD9B.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4604.image_thumb_18D97CD4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4604.image_5F00_thumb_5F00_18D97CD4.png" width="244" height="203" /></a> </p>  <h3>Script Actions</h3>  <p>You can add additional components or configure existing components as the cluster is deployed. This is beyond the scope of this demo.</p>  <p>1. Click “<font color="#ff0000">add script action</font>” to show the remaining parameters.</p>  <p>2. Enter a unique <font color="#ff8040">NAME</font> for your action.</p>  <p>3. The <font color="#008000">SCRIPT URI</font> points to code for your custom action.</p>  <p>4. Choose the <font color="#0080c0">NODE TYPE</font> for deployment.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2134.image_2D5ECC52.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2134.image_5F00_2D5ECC52.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2465.image_thumb_28E84B8B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2465.image_5F00_thumb_5F00_28E84B8B.png" width="334" height="212" /></a> </p>  <h3>Create is Done!</h3>  <p>Once you click on the final checkmark Azure goes to work and creates the cluster. This takes several minutes. When the cluster is ready you can view it in the portal.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8738.image_7684780B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8738.image_5F00_7684780B.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0841.image_thumb_2F2F2219.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0841.image_5F00_thumb_5F00_2F2F2219.png" width="554" height="196" /></a> </p>  <p><a href="https://youtu.be/SysIo3LwONk" target="_blank">Recording</a> of HDInsight quick and custom create on YouTube</p>  <p></p>  <p></p>  <h1>Query with Hive</h1>  <p>For most people the easiest, fastest way to learn Hadoop is through Hive. Hive is also the most widely used component of Hadoop. When you use the Hive ODBC driver any ODBC-compliant app can access the Hive data as &quot;just another data source&quot;. That includes Azure Machine Learning, Power BI, Excel, and Tableau.</p>  <h3>Hive Console</h3>  <p>The simplest, most relatable way for most people to use Hadoop is via the SQL-like, Database-like Hive and HiveQL (HQL).</p>  <p>1.&#160; Put focus on your HDInsight cluster and choose <font color="#ff0000">QUERY CONSOLE</font> to open a new tab in your browser. In my case it opens: <font color="#ff8040">https://dragondemo1.azurehdinsight.net//</font></p>  <p>2.&#160; Click on <font color="#008000">Hive Editor</font>.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/7128.image_2AB8A152.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7128.image_5F00_2AB8A152.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/5557.image_thumb_5839C115.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/5557.image_5F00_thumb_5F00_5839C115.png" width="352" height="164" /></a> </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0880.image_3ED1BDDB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0880.image_5F00_3ED1BDDB.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4405.image_thumb_39EF0A1F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4405.image_5F00_thumb_5F00_39EF0A1F.png" width="358" height="414" /></a> </p>  <h3>Query Hive</h3>  <p>The query console defaults to selecting the first 10 rows from the pre-loaded sample table. This table is created when the cluster is created.</p>  <p>1. Optionally edit or replace the default query:    <br /><font color="#ff0000">Select * from hivesampletable LIMIT 10;</font></p>  <p>2. Optionally <font color="#ff8040">name</font> your query to make it easier to find in the job history.</p>  <p>3. Click <font color="#008000">Submit</font>.</p>  <p>Hive is a batch system optimized for processing huge amounts of data. It spends several seconds up front splitting the job across the nodes and this overhead exists even for small result sets. If you are doing the equivalent of a table scan in SQL Server and have enough nodes in Hadoop, Hadoop will probably be faster than SQL Server. If your query uses indexes in SQL Server, then SQL Server will likely be faster than Hive.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/1122.image_7E420E03.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/1122.image_5F00_7E420E03.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/5861.image_thumb_6EA202F2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/5861.image_5F00_thumb_5F00_6EA202F2.png" width="486" height="311" /></a> </p>  <h3>View Hive Results</h3>  <p>1. Click on the <font color="#ff0000">Query</font> you just submitted in the <font color="#ff0000">Job Session</font>. This opens a new tab.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/1212.image_5763EBDC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/1212.image_5F00_5763EBDC.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/5428.image_thumb_451B251A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/5428.image_5F00_thumb_5F00_451B251A.png" width="310" height="139" /></a> </p>  <p>2. You can see the text of the<font color="#ff8040"> Job Query</font> that was submitted. You can <font color="#ff8040">Download</font> it.</p>  <p>3. The first few lines of the <font color="#008000">Job Output</font> (query result) are available. To see the full output choose <font color="#008000">Download File</font>.</p>  <p>4. The <font color="#0080c0">Job Log</font> has details including errors if there are any.</p>  <p>5. Additional information about the <font color="#800080">job</font> is available in the upper right.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8422.image_4E1AC340.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8422.image_5F00_4E1AC340.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/3731.image_thumb_7725623C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/3731.image_5F00_thumb_5F00_7725623C.png" width="580" height="491" /></a> </p>  <h3>View Hive Data in Excel Workbook</h3>  <p>At this point HDInsight is “just another data source” for any application that supports ODBC. </p>  <p>1. Install the Microsoft Hive ODBC driver.</p>  <p>2. Define an ODBC data source pointing to your HDInsight instance.</p>  <p>3. From <font color="#ff0000">DATA</font> choose <font color="#ff8040">From Other Sources</font> and<font color="#008000"> From Data Connection Wizard</font>.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0601.image_4274FA1A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0601.image_5F00_4274FA1A.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/7633.image_thumb_68D6DD65.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7633.image_5F00_thumb_5F00_68D6DD65.png" width="433" height="406" /></a> </p>  <h3>View Hive Data in PowerPivot</h3>  <p>At this point HDInsight is “just another data source” for any application that supports ODBC. </p>  <p>1. Install the Microsoft Hive ODBC driver.</p>  <p>2. Define an ODBC data source pointing to your HDInsight instance.</p>  <p>3. Click on <font color="#ff0000">POWERPIVOT</font> then choose <font color="#ff8040">Manage</font>. This opens a new <font color="#0080c0">PowerPivot for Excel</font> window.</p>  <p>4. Choose <font color="#008000">Get External Data</font> then <font color="#800080">Others (OLEDB/ODBC)</font>.</p>  <p>Now you can combine the Hive data with other data inside the tabular PowerPivot data model.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8081.image_1900B8DA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8081.image_5F00_1900B8DA.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/7532.image_thumb_43DBAD9D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7532.image_5F00_thumb_5F00_43DBAD9D.png" width="486" height="440" /></a> </p>  <p><a href="https://youtu.be/DRAuOXsuec0" target="_blank">Recording</a> of querying Hive on YouTube</p>  <h1>Load Demo Data</h1>  <p></p>  <p></p>  <p></p>  <p></p>  <p>In the cloud you don’t have to load data to Hadoop, you can load data to an Azure Storage Account. Then you point your HDInsight or other WASB compliant Hadoop cluster to the existing data source. There many ways to load data, for the demo we’ll use <a href="https://clumsyleaf.com/products/cloudxplorer">CloudXplorer</a>.</p>  <p>You use the Accounts button to add Azure, S3, or other data/storage accounts you want to manage.</p>  <p>In this example nealhadoop is the Azure storage account, demo is the container, and bacon is a “directory”. The files are bacon1.txt and bacon2.txt. Any Hive tables would point to the bacon directory, not to individual files. Drag and drop files from Windows Explorer to CloudXplorer.</p>  <p><a href="https://blogs.msdn.com/b/windowsazurestorage/archive/2014/03/11/windows-azure-storage-explorers-2014.aspx">Windows Azure Storage Explorers (2014)</a></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4237.image_4A22842B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4237.image_5F00_4A22842B.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/7457.image_thumb_655ADD2C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7457.image_5F00_thumb_5F00_655ADD2C.png" width="495" height="200" /></a> </p>  <p><a href="https://youtu.be/XyiOpRPjfUs" target="_blank">Recording</a> of loading demo data on YouTube</p>  <h1>WrapUp</h1>  <p>Once you have created the HDInsight cluster you can use it and play with it and try many things. When you are done, simply remove the cluster. If you created an independent metastore in SQL Azure you can use that same metastore and the same Azure storage account(s) the next time you create a cluster. You are charged for the existence of the cluster, not for the usage of it. So make sure you drop the cluster when you aren't using it. You can use automation, such as PowerShell, to spin up a cluster that is configured the same every time and to drop it. Check the <a href="https://azure.microsoft.com/en-us/pricing/details/hdinsight/">website </a>for the most recent information.</p>  <h3>Pricing</h3>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2021.image_12DBFCF0.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2021.image_5F00_12DBFCF0.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/1018.image_thumb_033BF1DF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/1018.image_5F00_thumb_5F00_033BF1DF.png" width="316" height="300" /></a> </p>  <h3>Automate with PowerShell</h3>  <p>With PowerShell, .NET, or the Cross-Platform cmd line tools you can specify even more configuration settings that aren’t available in the portal. This includes node size, a library store, and changing default configuration settings such as Tez and compression. </p>  <p>Automation allows you to standardize and with version control lets you track your configurations over time.</p>  <p>Sample PowerShell Script: HDInsight Custom Create <a href="https://blogs.msdn.com/b/cindygross/archive/2013/12/06/sample-powershell-script-hdinsight-custom-create.aspx">https://blogs.msdn.com/b/cindygross/archive/2013/12/06/sample-powershell-script-hdinsight-custom-create.aspx</a>. If your HDInsight and/or Azure cmdlets don’t match the current documention or return unexpected errors run Web Platform Installer and check for a new version of “Microsoft Azure PowerShell with Microsoft Azure SDK” or “Microsoft Azure PowerShell (standalone).”</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8484.image_3BE69BEC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8484.image_5F00_3BE69BEC.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/6254.image_thumb_571EF4ED.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/6254.image_5F00_thumb_5F00_571EF4ED.png" width="678" height="234" /></a> </p>  <p><a href="https://youtu.be/78YowrOnNGM" target="_blank">Recording</a> of Pricing, Automation, and Wrapup on YouTube</p>  <h1>Summary</h1>  <ul>   <li>HDInsight is Hadoop on Azure as a service, specifically Hortonworks HDP on either Windows or Linux </li>    <li>Easy, cost effective, changeable scale out data processing for a lower TCO – easily add/remove/scale </li>    <li>Separation of storage and compute allows data to exist across clusters via WASB </li>    <li>Metastore (Hcatalog) exists independently across clusters via SQL DB </li>    <li>#, size, type of clusters are flexible and can all access the same data </li>    <li>Instantly access data born in the cloud; Easily, cheaply load, share, and merge public or private data </li>    <li>Load data now, add schema later (write once, read many) </li>    <li>Fail fast – iterate through many questions to find the right question </li>    <li>Faster time from question to insight </li>    <li>Hadoop is “just another data source” for BI, Analytics, Machine Learning </li> </ul>  <p></p>  <p>I hope you enjoyed this Small Bite of Big Data! Happy Hadooping!</p> <b>Cindy Gross – Neal Analytics: </b>Big Data and Cloud Technical Fellow&#160;&#160; <img src="https://www.nealanalytics.com/wp-content/uploads/2015/02/image.png" width="101" height="39" />   <br /><a href="https://twitter.com/sqlcindy">@SQLCindy</a> | <a href="https://twitter.com/nealanalytics">@NealAnalytics</a> | <a href="mailto:CindyG@NealAnalytics.com">CindyG@NealAnalytics.com</a> | <a title="https://smallbitesofbigdata.com" href="https://smallbitesofbigdata.com">https://smallbitesofbigdata.com</a>  <p></p>  <div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f3209ebb-89cb-4970-93ea-af2ed94536c8" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">Technorati Tags: <a href="https://technorati.com/tags/hdinsight" rel="tag">hdinsight</a>,<a href="https://technorati.com/tags/hadoop" rel="tag">hadoop</a>,<a href="https://technorati.com/tags/windows+azure+(brand)" rel="tag">windows azure (brand)</a>,<a href="https://technorati.com/tags/microsoft+azure" rel="tag">microsoft azure</a>,<a href="https://technorati.com/tags/small+bites+of+big+data" rel="tag">small bites of big data</a>,<a href="https://technorati.com/tags/sqlcindy" rel="tag">sqlcindy</a>,<a href="https://technorati.com/tags/create+hdinsight+cluster" rel="tag">create hdinsight cluster</a>,<a href="https://technorati.com/tags/neal+analytics" rel="tag">neal analytics</a></div>]]></content:encoded>
    </item>
    <item>
      <title>Master Choosing the Right Project for Hadoop</title>
      <link>https://docs.microsoft.com/archive/blogs/cindygross/master-choosing-the-right-project-for-hadoop</link>
      <pubDate>Wed, 25 Feb 2015 10:48:20 GMT</pubDate>
      <dc:creator><![CDATA[Cindy Gross]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/cindygross/2015/02/25/master-choosing-the-right-project-for-hadoop/</guid>
      <description><![CDATA[Hadoop is the hot buzzword of the Big Data world, and many IT people are being told &quot;go create...]]></description>
      <content:encoded><![CDATA[<p>Hadoop is the hot buzzword of the Big Data world, and many IT people are being told &quot;go create a Hadoop cluster and do some magic&quot;. It's hard to know where to start or which projects are a good fit. The information available online is sparse, often conflicting, and usually focused on how to solve a technical problem rather than a business problem. So let's look at this from a business perspective.</p>  <h1>Data-Driven Insights<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0143.YodaCool_7FD07101.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0143.YodaCool_5F00_7FD07101.jpg"><img title="YodaCool" style="border-top: 0px; border-right: 0px; border-bottom: 0px; margin-left: 0px; border-left: 0px; display: inline; margin-right: 0px" border="0" alt="YodaCool" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4846.YodaCool_thumb_2D5190C5.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4846.YodaCool_5F00_thumb_5F00_2D5190C5.jpg" width="113" align="right" height="120" /></a> </h1>  <p>For the average business just getting into using Hadoop for the first time, you are most likely to be successful if you choose a project related to data exploration, analytics and reporting, and/or looking for new data-driven actionable insights. In many ways Hadoop is 'just another data source.&quot; Generally most businesses will not start with replacing existing, high-functioning OLTP implementations. Instead you will likely see the highest initial return on investment (ROI) from adding on to those existing systems. Pull some of the existing data into Hadoop, add new data, and look for new ways to use that data. The goal should remain clearly focused on how to use the data to take action based on the new data-driven insights you will uncover.</p>  <h1>Success</h1>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8883.DataPointer_6FC432FB.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8883.DataPointer_5F00_6FC432FB.jpg"><img title="DataPointer" style="border-top: 0px; border-right: 0px; border-bottom: 0px; margin-left: 0px; border-left: 0px; display: inline; margin-right: 0px" border="0" alt="DataPointer" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/8422.DataPointer_thumb_2B1798BA.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/8422.DataPointer_5F00_thumb_5F00_2B1798BA.jpg" width="128" align="left" height="86" /></a> Below are some characteristics that are often present for a successful Hadoop implementation. You don't need to have all of them to be successful, use the list to brainstorm new ideas.</p>  <ul>   <li>Goals include innovation, exploration, iteration, and experimentation. Hadoop allows you to ask lots of &quot;what-if&quot; questions cheaply, to &quot;fail fast&quot; so you can try out many potential hypotheses, and look for that one cool thing everyone else has missed that can really impact your business. </li>    <li>New data or data variations will be explored. Some of it may be loosely structured. Hadoop, especially in the cloud, allows you to import and experiment with data much more quickly and cheaply than with traditional systems. Hadoop on <a href="https://azure.microsoft.com/" target="_blank">Azure</a> in particular has the <a href="https://blogs.msdn.com/b/cindygross/archive/2015/02/04/understanding-wasb-and-hadoop-storage-in-azure.aspx">WASB</a> option to make data ingestion even easier and faster. </li>    <li>You are looking for the &quot;Unknown Unknowns&quot;. There are always lurking things that haven't come to your attention before but which may be sparks for new actions. You know you don't know what you want or what to ask for and will use that to spur innovation. </li>    <li>Flexible, fast scaling without the need to change your code is important. Hadoop is built on the premise that it is infinitely scalable - you simply add more nodes when you need more processing power. In the cloud you can also <a href="https://blogs.msdn.com/b/cindygross/archive/2015/02/03/why-wasb-makes-hadoop-on-azure-so-very-cool.aspx">scale your storage and compute separately</a> and more easily scale down during slow periods. </li>    <li>You are looking to gain some competitive advantage faster than your competition based on data-driven actions. This goes back to the previous points, you are using Hadoop to look for something new that can change your business or help you be first to market with something. </li>    <li>There are a low number of direct, concurrent users of the Hadoop system itself. The more jobs you have running at the same time, the more robust and expensive your head node(s) must be and often the larger your cluster must be. This changes the cost/benefit ratio quickly. Once data is processed and curated in Hadoop it can be sent to systems that are less-batch oriented and more available and familiar to the average power user or data steward. </li>    <li>Archiving data in a low-cost manner is important. Often historical data is kept in Hadoop while more interactive data is kept in a relational system. </li> </ul>  <h1>Anti-Patterns</h1>  <p>Quite often I hear people proposing Hadoop for projects that are not an ideal use for Hadoop, at least not as you are learning it and looking for quick successes to bolster confidence in the new technology. The below characteristics are generally indicators that you do NOT want to use Hadoop in a project.<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/0508.RosieInTechWIT_2AAB65C5.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/0508.RosieInTechWIT_5F00_2AAB65C5.jpg"><img title="RosieInTechWIT" style="border-top: 0px; border-right: 0px; border-bottom: 0px; margin-left: 0px; border-left: 0px; display: inline; margin-right: 0px" border="0" alt="RosieInTechWIT" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4621.RosieInTechWIT_thumb_65FECB83.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4621.RosieInTechWIT_5F00_thumb_5F00_65FECB83.jpg" width="244" align="right" height="184" /></a> </p>  <ul>   <li>You plan to replace an existing system whose pain points don't align with Hadoop's strengths. </li>    <li>There are OLTP business requirements, especially if they are adequately met by an existing system. Yes, there are some components of Hadoop that can meet OLTP requirements and those features are growing and expanding rapidly. If you have an OLTP scenario that requires ACID properties and fast interactive response time it is possible Hadoop could be a fit but it's usually not a good first project for you to learn Hadoop and truly use Hadoop's strengths. </li>    <li>Data is well-known and the schema is static. Generally speaking, though the tipping point is changing rapidly, when you can use an index for a query it will likely be faster in a relational system. When you do the equivalent of a table scan across a large volume of data and provide enough scaled-out nodes it is likely faster on a Big Data system such as Hadoop. Well-known, well-structured data is highly likely to have well-known, repeated queries that have supporting indexes. </li>    <li>A large number of users will need to directly access the system and they have interactive response time requirements (response within seconds). </li>    <li>Your first project and learning is on a mission critical system or application. Learn on something new, something that makes Hadoop's strengths really apparent and easy to see. </li> </ul>  <h1>And in Conclusion</h1>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/1184.BeTheChangeChalk_28716DBA.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/1184.BeTheChangeChalk_5F00_28716DBA.jpg"><img title="BeTheChangeChalk" style="border-top: 0px; border-right: 0px; border-bottom: 0px; margin-left: 0px; border-left: 0px; display: inline; margin-right: 0px" border="0" alt="BeTheChangeChalk" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4744.BeTheChangeChalk_thumb_28053AC5.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4744.BeTheChangeChalk_5F00_thumb_5F00_28053AC5.jpg" width="244" align="left" height="165" /></a> Choosing the right first project for your dive into Hadoop is crucial. Make it bite-sized, clearly outline your goals, make sure it has some of the above success criteria and avoid the anti-patterns. Make learning Hadoop a key goal of the project. Budget time for everyone to really learn not only how things work but why they work that way and whether there are better ways to do certain things. Hadoop is becoming ubiquitous, avoiding it completely is not an option. Jump in, but do so with your eyes wide open and make some good up-front decisions. Happy Big Data-ing!</p>  <p>&#160;</p>  <p></p>  <div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:32b92cfe-1134-4ebb-a576-3dac347c2d62" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">Technorati Tags: <a href="https://technorati.com/tags/architecture" rel="tag">architecture</a>,<a href="https://technorati.com/tags/scenario" rel="tag">scenario</a>,<a href="https://technorati.com/tags/solution" rel="tag">solution</a>,<a href="https://technorati.com/tags/end+to+end+solution" rel="tag">end to end solution</a>,<a href="https://technorati.com/tags/azure+blob+store" rel="tag">azure blob store</a>,<a href="https://technorati.com/tags/storage" rel="tag">storage</a>,<a href="https://technorati.com/tags/best+practices" rel="tag">best practices</a>,<a href="https://technorati.com/tags/big+data" rel="tag">big data</a>,<a href="https://technorati.com/tags/hadoop" rel="tag">hadoop</a></div>]]></content:encoded>
    </item>
    <item>
      <title>AzureCopy to the Rescue for an S3 to Azure Blob Copy!</title>
      <link>https://docs.microsoft.com/archive/blogs/cindygross/azurecopy-to-the-rescue-for-an-s3-to-azure-blob-copy</link>
      <pubDate>Sat, 21 Feb 2015 07:43:50 GMT</pubDate>
      <dc:creator><![CDATA[Cindy Gross]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/cindygross/2015/02/21/azurecopy-to-the-rescue-for-an-s3-to-azure-blob-copy/</guid>
      <description><![CDATA[This week I helped a client move files from AWS S3 to Azure Storage blobs. Sounds simple, right?...]]></description>
      <content:encoded><![CDATA[<p>This week I helped a client move files from AWS S3 to <a href="https://azure.microsoft.com/" target="_blank">Azure</a> Storage blobs. Sounds simple, right? Here's the tricky part... While there are both Azure and AWS cmdlets for PowerShell, they don't cooperate. Neither has a cmdlet that accepts credentials from the other and neither accepts arbitrary URLs from outside their own cloud. And <a href="https://azure.microsoft.com/en-us/documentation/articles/storage-use-azcopy/">AzCopy</a> also doesn't accept S3 URLs. None of the S3 tools seem to recognize Azure. So what's a girl to do? </p>  <h1>The Search and The Discovery</h1>  <p>After hours of trying to get creative with PowerShell or AzCopy I resorted to Bing searches. When what to my wondering eyes should appear, but a miniature sleigh.... uh, a fully fledged, well-written tool to move data between Azure and S3. But there's more! This tool, known as Rudolph... I mean <a href="https://kpfaulkner.wordpress.com/azurecopyrelease/">AzureCopy</a>, can move data between Azure, S3, OneDrive, SharePoint online, Dropbox, and local file systems! <a href="https://twitter.com/kpfaulkner">Ken Faulkner</a> has written a wonderful, holly jolly tool! After a few hiccups as I learned how to use the tool and learned about how S3 URLs are (and at first mostly are not) formed I quickly had all my data moved from S3 to Azure! Simple. Easy. It flew like the down of a thistle (whatever that means). So, what was required after installing the tool? <img style="margin: 0px 0px 0px 5px; display: inline" src="https://ts1.mm.bing.net/th?&amp;id=HN.607997568055051589&amp;w=300&amp;h=300&amp;c=0&amp;pid=1.9&amp;rs=0&amp;p=0" width="288" align="right" height="217" /></p>  <p>Open a dos-prompt and go to the directory where you installed AzureCopy. Instead of using a config file I set the values at the command line (use your own real values for the directory and after each equal sign):</p>  <p>cd C:\installs\azurecopy\   <br />set AzureAccountKey=MyAzureStorageAccountKey    <br />set AWSAccessKeyID=MyS3AccessId    <br />set AWSSecretAccessKeyID=MyS3SecretKey    <br />set AWSRegion value=us-west-2</p>  <p>Then I got a listing of my files on S3 - this took longer than it should because I had trouble getting the S3 URL correct. That was a problem with my newness to S3, not a problem with the tool. If you're in the default region you use mybucket.s3.amazonaws.com. Otherwise you use mybucket.s3-region.amazonaws.com. See Amazon's docs on <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html">S3 buckets</a> for more details on the URL.</p>  <p>Also, I didn't need all the keys passed in on both commands, it was just easier to write and copy the code that way as I tried to get it all working.</p>  <p>azurecopy -list <a href="https://mybucket.s3-us-west-2.amazonaws.com/">https://mybucket.s3-us-west-2.amazonaws.com/</a> -azurekey %AzureAccountKey% -s3k %AWSAccessKeyID% -s3sk %AWSSecretAccessKeyID%</p>  <p>Next I listed out the files in Azure. At this point the container was empty but the command at least verified my access worked. I uploaded a small test file and verified I could see it with AzureCopy, then deleted the test file.</p>  <p>azurecopy -list <a href="https://mystorage.blob.core.windows.net/mycontainer">https://mystorage.blob.core.windows.net/mycontainer</a>&#160; -azurekey %AzureAccountKey% -s3k %AWSAccessKeyID% -s3sk %AWSSecretAccessKeyID%</p>  <p>And now on to the secret sauce - the actual, magical file copy.</p>  <p>azurecopy -i <a href="https://mybucket.s3-us-west-2.amazonaws.com/">https://mybucket.s3-us-west-2.amazonaws.com/</a> -o <a href="https://mystorage.blob.core.windows.net/mycontainer">https://mystorage.blob.core.windows.net/mycontainer</a> -azurekey %AzureAccountKey% -s3k %AWSAccessKeyID% -s3sk %AWSSecretAccessKeyID% -blobcopy -destblobtype block</p>  <h1><img style="margin: 10px 15px 0px 0px; display: inline" src="https://ts1.mm.bing.net/th?&amp;id=HN.608045199240203080&amp;w=300&amp;h=300&amp;c=0&amp;pid=1.9&amp;rs=0&amp;p=0" align="left" />Success!</h1>  <p>And just like that, within a couple of minutes, the list command for azurecopy showed all the files in Azure! I double-checked with my <a href="tinyurl.com/qxglwcb ">Azure and AWS PowerShell cmdlets</a> that yes, this was really true! This tool saved me SO MUCH TIME! And now you know, the built in tools from the major cloud vendors lock you into their own cloud. But with AzureCopy you too can free your data!</p>  <p></p>  <p></p>  <p></p>  <div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:80874171-e51a-4015-b54e-f9c1b42f15ad" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">Technorati Tags: <a href="https://technorati.com/tags/AWS" rel="tag">AWS</a>,<a href="https://technorati.com/tags/S3" rel="tag">S3</a>,<a href="https://technorati.com/tags/Azure+Blob+Store" rel="tag">Azure Blob Store</a>,<a href="https://technorati.com/tags/Azure+Storage" rel="tag">Azure Storage</a>,<a href="https://technorati.com/tags/Big+Data" rel="tag">Big Data</a>,<a href="https://technorati.com/tags/PowerShell" rel="tag">PowerShell</a>,<a href="https://technorati.com/tags/Neal+Analytics" rel="tag">Neal Analytics</a></div>]]></content:encoded>
    </item>
    <item>
      <title>PowerShell works for Amazon AWS S3 too!</title>
      <link>https://docs.microsoft.com/archive/blogs/cindygross/powershell-works-for-amazon-aws-s3-too</link>
      <pubDate>Fri, 20 Feb 2015 18:31:24 GMT</pubDate>
      <dc:creator><![CDATA[Cindy Gross]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/cindygross/2015/02/20/powershell-works-for-amazon-aws-s3-too/</guid>
      <description><![CDATA[Technorati Tags: azure blob store,azure storage,aws,s3,neal analytics,windows azure,powershell  More...]]></description>
      <content:encoded><![CDATA[<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1002e363-9c3d-479d-a62b-aeb7651e9fa2" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">Technorati Tags: <a href="https://technorati.com/tags/azure+blob+store" rel="tag">azure blob store</a>,<a href="https://technorati.com/tags/azure+storage" rel="tag">azure storage</a>,<a href="https://technorati.com/tags/aws" rel="tag">aws</a>,<a href="https://technorati.com/tags/s3" rel="tag">s3</a>,<a href="https://technorati.com/tags/neal+analytics" rel="tag">neal analytics</a>,<a href="https://technorati.com/tags/windows+azure" rel="tag">windows azure</a>,<a href="https://technorati.com/tags/powershell" rel="tag">powershell</a></div>  <p>More and more we have to work with data in many different locations. This week I got to work with S3 files that were moving to <a href="https://azure.microsoft.com/" target="_blank">Azure</a> blob storage. I was surprised to find that Amazon has published AWS cmdlets for PowerShell. It took me a little while to figure out the format and terminology so I'll try to explain that and compare/contrast how we interact with storage in AWS and Azure. Today we will cover viewing the files.</p>  <h1>Configure PowerShell</h1>  <p>Well first, let's get things set up. Install the <a href="https://azure.microsoft.com/en-us/documentation/articles/install-configure-powershell/">Azure</a> and <a href="https://aws.amazon.com/powershell/">AWS</a> cmdlets for PowerShell. These examples will pass keys for everything so there's no need to configure PowerShell with <a href="https://blogs.msdn.com/b/cindygross/archive/2014/04/19/getting-started-with-azure-powershell-cmdlets-subscription-management.aspx">certificates</a> to access the clouds.</p>  <p>The first time (depending on your PowerShell version) you use PowerShell after installing AWS cmdlets you may need to run these cmdlets:</p>  <p>Add-Type -Path &quot;C:\Program Files (x86)\AWS SDK for .NET\bin\Net45\AWSSDK.dll&quot;    <br />Import-Module &quot;C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1&quot;</p>  <h1>Connecting to Storage</h1>  <h2>S3</h2>  <p>We'll start with AWS <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html">S3</a>. Each connection to S3 storage requires an AWS region (unless you use the default &quot;US Standard&quot;, an access id (unique identifier), a secret key, and a bucket. You are storing data within a specific region on an access point in a managed grouping called a bucket. The access id in S3 is equivalent to a storage account name in Azure. A bucket in S3 is roughly equivalent to a container in Azure.</p>  <p>$S3Bucket = &quot;MyBucket&quot;    <br />$S3Key=&quot;SecretKeyValue&quot;     <br />$S3AccessID=&quot;AccessKey&quot;     <br />$AWSregion = &quot;us-west-2&quot;</p>  <p>Next let's use those values to make a new client connection to S3. You define a configuration object that points to the full URL for the region. Then you pass that configuration object, the access id, and the secret key to a function that creates a client connection to S3. This sets the context for the entire session and the context does not have to be passed to the individual commands. Note that the URL changes depending on the region, for example <a href="https://s3-us-west-2.amazonaws.com">https://s3-us-west-2.amazonaws.com</a></p>  <p>Set-DefaultAWSRegion $AWSregion # auto-stored to $StoredAWSRegion    <br />$AWSserviceURL=&quot;<a href="https://s3-">https://s3-</a>$AWSRegion.amazonaws.com&quot;     <br />$config=New-Object Amazon.S3.AmazonS3Config     <br />$config.ServiceURL = $AWSserviceURL     <br />$S3Client=[Amazon.AWSClientFactory]::CreateAmazonS3Client($secretKeyID, $secretAccessKeyID, $config)</p>  <h2>Azure</h2>  <p>Let's compare that to how we list files in Azure blob storage. First you specify the location and credentials. The region is implied because the storage account name is unique across all regions. The container and secret key value are similar in meaning.</p>  <p>$storageAccountName = &quot;MyStorageAccountName&quot;&#160; <br />$storageaccountkey = &quot;SecretKeyValue&quot;     <br />$containerName = &quot;MyBucket&quot; </p>  <p>Then you define the storage context which is the location and credentials of an object. Alternatively you could set the default storage context for the session or for a particular profile's connection to a given subscription.</p>  <p>$AzureContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountkey</p>  <h1>View the Files</h1>  <h2>S3</h2>  <p>Now you can get basic metadata about the S3 bucket:    <br />Get-S3Bucket $S3Bucket     <br />Get-S3BucketLocation $S3Bucket</p>  <p>Next let's list the files in that bucket.</p>  <p>Get-S3Object -BucketName $S3Bucket</p>  <p>You can populate an array with the list, in this example I passed in just the name (key) of each file:    <br />$S3FileList = (Get-S3Object -BucketName $S3Bucket).key</p>  <p>And you can filter the result set:    <br />$S3FileList = (Get-S3Object -BucketName $S3Bucket | Where-Object {$_.lastmodified -lt &quot;2/17/2015&quot;}).Key     <br />$S3FileList = (Get-S3Object -BucketName $S3Bucket | Where-Object {$_.key -like &quot;*42*&quot;}).Key     <br /></p>  <h2>Azure</h2>  <p>For Azure we can do similar operations to view the files. This example lists all files in the container:</p>  <p>Get-AzureStorageBlob -Context $AzureContext -Container $containerName</p>  <p>You can also populate an array with the list:</p>  <p>$AzureList = Get-AzureStorageBlob -Context $AzureContext -Container $containerName</p>  <p>Or pull out just a single property:</p>  <p>(Get-AzureStorageBlob -Context $AzureContext -Container $containerName).Name</p>  <p>Or list just blobs that match a wildcard value:</p>  <p>Get-AzureStorageBlob -Context $AzureContext -Container $containerName -Blob *42*</p>  <h1>My Work Here is Done</h1>  <p>This intro to PowerShell for S3 opens up the door to many possibilities - data migrations, multi-cloud hybrid solutions, and whatever your imagination can conjure up! Today we reviewed how to view files, I'll cover more in future posts. Happy PowerShelling!</p>  <h1>Tip</h1>  <p>When you open &quot;Microsoft Azure PowerShell&quot; type ISE in the window to launch the interactive PowerShell shell. It has intellisense, multiple script windows, and a cmdlet viewer.</p>]]></content:encoded>
    </item>
    <item>
      <title>Understanding WASB and Hadoop Storage in Azure</title>
      <link>https://docs.microsoft.com/archive/blogs/cindygross/understanding-wasb-and-hadoop-storage-in-azure</link>
      <pubDate>Wed, 04 Feb 2015 16:42:23 GMT</pubDate>
      <dc:creator><![CDATA[Cindy Gross]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/cindygross/2015/02/04/understanding-wasb-and-hadoop-storage-in-azure/</guid>
      <description><![CDATA[Yesterday we learned Why WASB Makes Hadoop on Azure So Very Cool. Now let's dive deeper into Windows...]]></description>
      <content:encoded><![CDATA[<p>Yesterday we learned <a href="https://blogs.msdn.com/b/cindygross/archive/2015/02/03/why-wasb-makes-hadoop-on-azure-so-very-cool.aspx">Why WASB Makes Hadoop on Azure So Very Cool</a>. Now let's dive deeper into Windows <a href="https://azure.microsoft.com/" target="_blank">Azure</a> storage and WASB. I'll answer some of the common questions I get when people first try to understand how WASB is the same as and different from HDFS.</p>  <p><strong>What is HDFS?</strong></p>  <p>The Hadoop Distributed File System (HDFS) is one of the core Hadoop components, it is how Hadoop manages data and storage. At a high level, when you load a file into Hadoop the &quot;name node&quot; uses HDFS to chunk the file into blocks and it spreads those blocks of data across the worker nodes within the cluster. Each chunk of data is stored on multiple nodes (assuming the replication factor is set to &gt; 1) for higher availability. The name node knows where each chunk of data is stored and that information is used by the job manager to allocate tasks and resources appropriately across nodes.</p>  <p><strong>What is WASB?</strong></p>  <p>Windows Azure Storage Blob (WASB) is an extension built on top of the HDFS APIs. The WASBS variation uses SSL certificates for improved security. It in many ways &quot;is&quot; HDFS. However, WASB creates a layer of abstraction that enables separation of storage. This separation is what enables your data to persist even when no clusters currently exist and enables multiple clusters plus other applications to access a single piece of data all at the same time. This increases functionality and flexibility while reducing costs and reducing the time from question to insight.</p>  <p><strong>What is an Azure blob store, an Azure storage account, and an Azure container? For that matter, what is Azure again?</strong></p>  <p>Azure is Microsoft's cloud solution. A cloud is essentially a collection of host data centers that you don't have to directly manage. You can request services from that cloud. For example, you can request virtual machines and <a href="https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/#concepts">storage</a>, data services such as SQL Azure Database or HDInsight, or services such as Websites or Service Bus. In Azure you store blobs on containers within <a href="https://azure.microsoft.com/en-us/documentation/articles/storage-whatis-account/">Azure storage accounts</a>. You grant access to a storage account, you create collections at the container level, and you place blobs (files of any format) inside the containers. This illustration from Microsoft's documentation helps to show the structure:</p>  <p><img alt="Blob1" src="https://acomdpsstorage.blob.core.windows.net/dpsmedia-prod/azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/20150128060354/includes/howto-blob-storage/blob1.jpg" width="209" height="130" /></p>  <p><strong>How do I manage and configure block/chunk size and the replication factor with WASB?</strong></p>  <p>You don't. It's not generally necessary. The data is stored in the Azure storage accounts, remaining accessible to many applications at once. Each blob (file) is replicated 3x within the data center. If you choose to use geo-replication on your account you also get 3 copies of the data in another data center within the same region. The data is chunked and distributed to nodes when a job is run. If you need to change the chunk size for memory related performance at run time that is still an option. You can pass in any Hadoop configuration parameter setting when you create the cluster or you can use the SET command for a given job.</p>  <p><strong>Isn't one of the selling points of Hadoop that the data sits with the compute? How does that work with WASB?</strong></p>  <p>Just like with any Hadoop system the data is loaded into memory on the individual nodes at compute time (when the job runs). The difference with WASB is that the data is loaded from the storage accounts instead of from local disks. Given the way Azure data center backbones are built the performance is generally the same or better than if you used disks locally attached to the VMs.</p>  <p><strong>How do I load data to Hadoop on Azure?</strong></p>  <p>You use any of the many Azure data loading methods. There isn't really anything special about loading data that will be used for Hadoop. As with data used by any other application there are some guidelines around directory structures, optimal numbers of files, and internal format but that is independent of data loading. Some common examples are <a href="https://azure.microsoft.com/en-us/documentation/articles/storage-use-azcopy/">AZCopy</a>, <a href="https://clumsyleaf.com/products/cloudxplorer">CloudXplorer</a> and other <a href="https://blogs.msdn.com/b/windowsazurestorage/archive/2014/03/11/windows-azure-storage-explorers-2014.aspx">storage explorers</a>, and SQL Server Integration Services (SSIS).</p>  <p>And yes, I will blog about those guidelines but not here. :-)</p>  <p><strong>Can I have multiple Hadoop clusters pointing to one storage account?</strong></p>  <p>Yes. <img src="https://ts1.mm.bing.net/th?&amp;id=HN.608028685079611031&amp;w=300&amp;h=300&amp;c=0&amp;pid=1.9&amp;rs=0&amp;p=0" width="21" height="21" /></p>  <p><strong>Can I have one Hadoop cluster pointing to multiple storage accounts?</strong></p>  <p>Yes. <img title="Check!" alt="Check!" src="https://ts1.mm.bing.net/th?&amp;id=HN.608028685079611031&amp;w=300&amp;h=300&amp;c=0&amp;pid=1.9&amp;rs=0&amp;p=0" width="21" height="21" /></p>  <p>See: <a href="https://blogs.msdn.com/b/cindygross/archive/2014/05/05/use-additional-storage-accounts-with-hdinsight-hive.aspx">Use Additional Storage Accounts with HDInsight Hive</a>.</p>  <p><strong>Can I have many Hadoop clusters pointing to multiple storage accounts?</strong></p>  <p>Why, yes. Yes you can. <img title="Check!" alt="Check!" src="https://ts1.mm.bing.net/th?&amp;id=HN.608028685079611031&amp;w=300&amp;h=300&amp;c=0&amp;pid=1.9&amp;rs=0&amp;p=0" width="21" height="21" /></p>  <p><strong>Do I get to keep my data even if no Hadoop cluster currently exists?</strong></p>  <p>What a fun day to say Yes. <img title="Check!" alt="Check!" src="https://ts1.mm.bing.net/th?&amp;id=HN.608028685079611031&amp;w=300&amp;h=300&amp;c=0&amp;pid=1.9&amp;rs=0&amp;p=0" width="21" height="21" /></p>  <p>For a caveat see <a href="https://blogs.msdn.com/b/cindygross/archive/2013/02/06/hdinsight-hive-internal-and-external-tables-intro.aspx">HDInsight: Hive Internal and External Tables Intro</a>.</p>  <h5><strong>Is WASB available for any distribution of Hadoop other than HDInsight?</strong></h5>  <p>It is my pleasure to answer that with a resounding Yes. <img title="Check!" alt="Check!" src="https://ts1.mm.bing.net/th?&amp;id=HN.608028685079611031&amp;w=300&amp;h=300&amp;c=0&amp;pid=1.9&amp;rs=0&amp;p=0" width="21" height="21" /></p>  <p>WASB is built into <a href="https://azure.microsoft.com/en-us/documentation/services/hdinsight/" target="_blank">HDInsight</a> (Microsoft's Hadoop on Azure service) and is the default file system. WASB is also available in the Apache source code for Hadoop. Therefore when you install Hadoop, such as <a href="https://hortonworks.com/partner/microsoft/" target="_blank">Hortonworks HDP</a> or <a href="https://azure.microsoft.com/en-in/marketplace/partners/cloudera/clouderaenterprise/">Cloudera EDH/CDH</a>, on Azure VMs you can use WASB with some configuration changes to the cluster.</p>  <p><strong>How do I manage files and directories?</strong></p>  <p>Hive is the most common entry point for Hadoop jobs and with Hive you never point to a single file, you always point to a directory. If you are a stickler for details and want to point out that Azure doesn't have directories, that's technically true. However, Hadoop recognizes that a slash &quot;/&quot; is an indication of a directory. Therefore Hadoop treats the below Azure blob file as if it were AFile.txt in a directory structure of: SomeDirectory/ASubDirectory. But since you don't access individual files in Hive you will reference either SomeDirectory or SomeDirectory/ASubDirectory.</p>  <p>Blob: wasb://YOURDefaultContainer@YOURStorageAccount.blob.core.windows.net/SomeDirectory/ASubDirectory/AFile.txt</p>  <p>You can add, remove, and modify files in the Azure blob store without regard to whether a Hadoop cluster exists. Each time a job runs it reads the data that currently exists in the directory(s) it references. Hadoop itself can also write to files.</p>  <p><strong>What about ORCFile, Parquet, and AVRO?</strong></p>  <p>They are proprietary formats often used within Hadoop but rarely used outside of Hadoop. There are performance advantages to using those formats for &quot;write once, read many&quot; data inside Hadoop, but chances are high that you won't then be able to access the data without going through one of your Hadoop clusters.</p>  <p><strong>Should I have lots of small files?</strong></p>  <p>NO! <img title="No!" alt="No!" src="https://ts1.mm.bing.net/th?&amp;id=HN.608050907233189956&amp;w=300&amp;h=300&amp;c=0&amp;pid=1.9&amp;rs=0&amp;p=0" width="71" height="53" />&#160;<img src="https://ts1.mm.bing.net/th?&amp;id=HN.608016010624305823&amp;w=300&amp;h=300&amp;c=0&amp;pid=1.9&amp;rs=0&amp;p=0" width="63" height="53" />&#160;<img src="https://ts1.mm.bing.net/th?&amp;id=HN.608041209201754867&amp;w=300&amp;h=300&amp;c=0&amp;pid=1.9&amp;rs=0&amp;p=0" width="50" height="56" /></p>  <p>Why is too long to answer here. The short answer is to use files that are many multiples of the in-memory chunk size, in the GB or TB size range. Whenever possible use fewer, larger files instead of many small files. If necessary <a href="https://blogs.msdn.com/b/mostlytrue/archive/2014/04/10/merging-small-files-on-hdinsight.aspx">stitch</a> the files together.</p>  <p>That's your storage lesson for today - please put your additional Hadoop on Azure storage questions in the comments or send me a <a href="https://twitter.com/SQLCindy">tweet</a>! Thanks for stopping by!</p>  <p><b>Cindy Gross – Neal Analytics: </b>Big Data and Cloud Technical Fellow&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/2548.image_068B1E19.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/2548.image_5F00_068B1E19.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/58/metablogapi/4113.image_thumb_2639F7E1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/4113.image_5F00_thumb_5F00_2639F7E1.png" width="105" height="43" /></a>     <br /><a href="https://twitter.com/sqlcindy">@SQLCindy</a> | <a href="https://twitter.com/nealanalytics">@NealAnalytics</a> | <a href="mailto:CindyG@NealAnalytics.com">CindyG@NealAnalytics.com</a> | <a href="https://smallbitesofbigdata.com">https://smallbitesofbigdata.com</a></p>  <p><a title="https://blogs.msdn.com/b/cindygross/archive/2015/02/04/understanding-wasb-and-hadoop-storage-in-azure.aspx" href="https://blogs.msdn.com/b/cindygross/archive/2015/02/04/understanding-wasb-and-hadoop-storage-in-azure.aspx">https://blogs.msdn.com/b/cindygross/archive/2015/02/04/understanding-wasb-and-hadoop-storage-in-azure.aspx</a>&#160;</p>  <p><a title="https://www.nealanalytics.com/understanding-wasb-and-hadoop-storage-in-azure/" href="https://www.nealanalytics.com/understanding-wasb-and-hadoop-storage-in-azure/">https://www.nealanalytics.com/understanding-wasb-and-hadoop-storage-in-azure/</a></p> <a class="twitter-timeline" href="https://twitter.com/SQLCindy" data-widget-id="563128002582548480">Tweets by @SQLCindy</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>  <p></p>  <p></p>  <p></p>  <div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2bc176a8-db5e-42d8-97dc-97bd973395b3" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">Technorati Tags: <a href="https://technorati.com/tags/Azure+Blob+Store" rel="tag">Azure Blob Store</a>,<a href="https://technorati.com/tags/Big+Data" rel="tag">Big Data</a>,<a href="https://technorati.com/tags/BigData" rel="tag">BigData</a>,<a href="https://technorati.com/tags/Hadoop" rel="tag">Hadoop</a>,<a href="https://technorati.com/tags/HDInsight" rel="tag">HDInsight</a>,<a href="https://technorati.com/tags/HDP" rel="tag">HDP</a>,<a href="https://technorati.com/tags/IO" rel="tag">IO</a>,<a href="https://technorati.com/tags/microsoft+azure" rel="tag">microsoft azure</a>,<a href="https://technorati.com/tags/SQLCindy" rel="tag">SQLCindy</a>,<a href="https://technorati.com/tags/storage" rel="tag">storage</a>,<a href="https://technorati.com/tags/Windows+Azure" rel="tag">Windows Azure</a></div>]]></content:encoded>
    </item>
  </channel>
</rss>