| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Apache Mesos - Windows</title> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| |
| <meta property="og:locale" content="en_US"/> |
| <meta property="og:type" content="website"/> |
| <meta property="og:title" content="Apache Mesos"/> |
| <meta property="og:site_name" content="Apache Mesos"/> |
| <meta property="og:url" content="http://mesos.apache.org/"/> |
| <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/> |
| <meta property="og:description" |
| content="Apache Mesos abstracts resources away from machines, |
| enabling fault-tolerant and elastic distributed systems |
| to easily be built and run effectively."/> |
| |
| <meta name="twitter:card" content="summary"/> |
| <meta name="twitter:site" content="@ApacheMesos"/> |
| <meta name="twitter:title" content="Apache Mesos"/> |
| <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/> |
| <meta name="twitter:description" |
| content="Apache Mesos abstracts resources away from machines, |
| enabling fault-tolerant and elastic distributed systems |
| to easily be built and run effectively."/> |
| |
| <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> |
| <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml"> |
| <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" /> |
| |
| |
| |
| <!-- Google Analytics Magic --> |
| <script type="text/javascript"> |
| var _gaq = _gaq || []; |
| _gaq.push(['_setAccount', 'UA-20226872-1']); |
| _gaq.push(['_setDomainName', 'apache.org']); |
| _gaq.push(['_trackPageview']); |
| |
| (function() { |
| var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; |
| ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; |
| var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); |
| })(); |
| </script> |
| |
| </head> |
| <body> |
| <!-- magical breadcrumbs --> |
| <div class="topnav"> |
| <div class="container"> |
| <ul class="breadcrumb"> |
| <li> |
| <div class="dropdown"> |
| <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a> |
| <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> |
| <li><a href="http://www.apache.org">Apache Homepage</a></li> |
| <li><a href="http://www.apache.org/licenses/">License</a></li> |
| <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> |
| <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> |
| <li><a href="http://www.apache.org/security/">Security</a></li> |
| </ul> |
| </div> |
| </li> |
| |
| <li><a href="http://mesos.apache.org">Apache Mesos</a></li> |
| |
| |
| <li><a href="/documentation |
| /">Documentation |
| </a></li> |
| |
| |
| </ul><!-- /.breadcrumb --> |
| </div><!-- /.container --> |
| </div><!-- /.topnav --> |
| |
| <!-- navbar excitement --> |
| <div class="navbar navbar-default navbar-static-top" role="navigation"> |
| <div class="container"> |
| <div class="navbar-header"> |
| <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false"> |
| <span class="sr-only">Toggle navigation</span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| </button> |
| <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a> |
| </div><!-- /.navbar-header --> |
| |
| <div class="navbar-collapse collapse" id="mesos-menu"> |
| <ul class="nav navbar-nav navbar-right"> |
| <li><a href="/gettingstarted/">Getting Started</a></li> |
| <li><a href="/blog/">Blog</a></li> |
| <li><a href="/documentation/latest/">Documentation</a></li> |
| <li><a href="/downloads/">Downloads</a></li> |
| <li><a href="/community/">Community</a></li> |
| </ul> |
| </div><!-- /#mesos-menu --> |
| </div><!-- /.container --> |
| </div><!-- /.navbar --> |
| |
| <div class="content"> |
| <div class="container"> |
| <div class="row-fluid"> |
| <div class="col-md-4"> |
| <h4>If you're new to Mesos</h4> |
| <p>See the <a href="/gettingstarted/">getting started</a> page for more |
| information about downloading, building, and deploying Mesos.</p> |
| |
| <h4>If you'd like to get involved or you're looking for support</h4> |
| <p>See our <a href="/community/">community</a> page for more details.</p> |
| </div> |
| <div class="col-md-8"> |
| <h1>Windows</h1> |
| |
| <p>Mesos 1.0.0 introduced experimental support for Windows.</p> |
| |
| <h2>Building Mesos</h2> |
| |
| <h3>System Requirements</h3> |
| |
| <ol> |
| <li>Install the latest version of <a href="https://www.visualstudio.com/post-download-vs?sku=community">Visual Studio Community 2015</a>. |
| Make sure to select the Common Tools for Visual C++ and the Windows 10 SDK. |
| Start Visual Studio Community to complete the setup and configuration.</li> |
| <li>Install <a href="https://cmake.org/files/v3.6/cmake-3.6.3-win32-x86.msi">CMake 3.6.3 or later</a>. |
| Do not run CMake before finishing the Visual Studio Community setup.</li> |
| <li>Install <a href="http://downloads.sourceforge.net/project/gnuwin32/patch/2.5.9-7/patch-2.5.9-7-setup.exe">Gnu Patch 2.5.9-7 or later</a>.</li> |
| <li>If building from git, make sure you have Windows-style line endings. |
| i.e. <code>git config core.autocrlf true</code>.</li> |
| <li>Make sure there are no spaces in your build directory. |
| For example, <code>C:/Program Files (x86)/mesos</code> is an invalid build directory.</li> |
| </ol> |
| |
| |
| <h3>Build Instructions</h3> |
| |
| <p>Following are the instructions for stock Windows 10 and Windows Server 2012 or newer.</p> |
| |
| <pre><code># Start a VS2015 x64 Native Tool command prompt. |
| # This can be found by opening VS2015 and looking under the "tools" |
| # menu for "Visual Studio Command Prompt". |
| |
| # Change working directory. |
| $ cd mesos |
| |
| # If you are developing on Windows, we recommend running the bootstrap. |
| # This requires administrator privileges. |
| $ .\bootstrap.bat |
| |
| # Generate the solution and build. |
| $ .\support\windows-build.bat |
| |
| # Set the `PreferredToolArchitecture` environment variable to `x64`. |
| # NOTE: `PreferredToolArchitecture` can be set system-wide via Control Panel. |
| $ SET PreferredToolArchitecture=x64 |
| |
| # After generating the Visual Studio solution you can use the IDE to open |
| # the project and skip this step. |
| $ msbuild Mesos.sln /m |
| |
| # mesos-agent.exe can be found in the <repository>\build\src folder. |
| $ cd src |
| |
| # The Windows agent exposes new isolators that must be used as with |
| # the `--isolation` flag. To get started point the agent to a working |
| # master, using eiher an IP address or zookeeper information. |
| $ mesos-agent.exe --master=<master> --work_dir=<work folder> --launcher_dir=<repository>\build\src |
| </code></pre> |
| |
| <h2>Known Limitations</h2> |
| |
| <p>The current implementation is known to have the following limitations:</p> |
| |
| <ul> |
| <li>At this point, only the agent is capable of running on Windows, |
| the Mesos master must run on a Posix machine.</li> |
| <li>Due to the 260 character <code>MAX_PATH</code> limitation on Windows, |
| it is required to set the configuration option <code>--launcher_dir</code> |
| to be a root path, e.g. <code>C:\</code>. |
| In addition, the <code>TASK_ID</code> that is passed to Mesos should be short, |
| up to about 40 characters. <strong>NOTE</strong>: If you schedule tasks via Marathon, |
| your Marathon task id should be up to four characters long since Marathon |
| generates Mesos <code>TASK_ID</code> by appending a UUID (36 characters) onto |
| the Marathon task id.</li> |
| <li>Currently runs as Administrator (mainly due to symlinks).</li> |
| <li>Only the <code>MesosContainerizer</code> is currently supported, |
| which does not provide resource isolation on Windows. |
| Resource isolation will be provided via the <code>DockerContainerizer</code> |
| (e.g. Windows Containers) in the future.</li> |
| <li>Most of the tests are not ported to Windows.</li> |
| </ul> |
| |
| |
| <h2>Status</h2> |
| |
| <p>For more information regarding the status of Windows support in Mesos, |
| please refer to the <a href="https://issues.apache.org/jira/browse/MESOS-3094">Jira epic</a>.</p> |
| |
| </div> |
| </div> |
| |
| </div><!-- /.container --> |
| </div><!-- /.content --> |
| |
| <hr> |
| |
| |
| |
| <!-- footer --> |
| <div class="footer"> |
| <div class="container"> |
| <div class="col-md-4 social-blk"> |
| <span class="social"> |
| <a href="https://twitter.com/ApacheMesos" |
| class="twitter-follow-button" |
| data-show-count="false" data-size="large">Follow @ApacheMesos</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> |
| <a href="https://twitter.com/intent/tweet?button_hashtag=mesos" |
| class="twitter-hashtag-button" |
| data-size="large" |
| data-related="ApacheMesos">Tweet #mesos</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> |
| </span> |
| </div> |
| |
| <div class="col-md-8 trademark"> |
| <p>© 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>. |
| Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation. |
| <p> |
| </div> |
| </div><!-- /.container --> |
| </div><!-- /.footer --> |
| |
| <!-- JS --> |
| <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> |
| <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> |
| </body> |
| </html> |