summaryrefslogtreecommitdiff
path: root/site/releases/spark-release-0-8-0.html
blob: 12b615866511cbbcc21a66ed2424fcce705d7370 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>
     Spark Release 0.8.0 | Apache Spark
    
  </title>

  

  

  <!-- Bootstrap core CSS -->
  <link href="/css/cerulean.min.css" rel="stylesheet">
  <link href="/css/custom.css" rel="stylesheet">

  <!-- Code highlighter CSS -->
  <link href="/css/pygments-default.css" rel="stylesheet">

  <script type="text/javascript">
  <!-- Google Analytics initialization -->
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-32518208-2']);
  _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);
  })();

  <!-- Adds slight delay to links to allow async reporting -->
  function trackOutboundLink(link, category, action) {
    try {
      _gaq.push(['_trackEvent', category , action]);
    } catch(err){}

    setTimeout(function() {
      document.location.href = link.href;
    }, 100);
  }
  </script>

  <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
  <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
  <![endif]-->
</head>

<body>

<script src="https://code.jquery.com/jquery.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<script src="/js/lang-tabs.js"></script>
<script src="/js/downloads.js"></script>

<div class="container" style="max-width: 1200px;">

<div class="masthead">
  
    <p class="lead">
      <a href="/">
      <img src="/images/spark-logo-trademark.png"
        style="height:100px; width:auto; vertical-align: bottom; margin-top: 20px;"></a><span class="tagline">
          Lightning-fast cluster computing
      </span>
    </p>
  
</div>

<nav class="navbar navbar-default" role="navigation">
  <!-- Brand and toggle get grouped for better mobile display -->
  <div class="navbar-header">
    <button type="button" class="navbar-toggle" data-toggle="collapse"
            data-target="#navbar-collapse-1">
      <span class="sr-only">Toggle navigation</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </button>
  </div>

  <!-- Collect the nav links, forms, and other content for toggling -->
  <div class="collapse navbar-collapse" id="navbar-collapse-1">
    <ul class="nav navbar-nav">
      <li><a href="/downloads.html">Download</a></li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
          Libraries <b class="caret"></b>
        </a>
        <ul class="dropdown-menu">
          <li><a href="/sql/">SQL and DataFrames</a></li>
          <li><a href="/streaming/">Spark Streaming</a></li>
          <li><a href="/mllib/">MLlib (machine learning)</a></li>
          <li><a href="/graphx/">GraphX (graph)</a></li>
          <li class="divider"></li>
          <li><a href="https://cwiki.apache.org/confluence/display/SPARK/Third+Party+Projects">Third-Party Packages</a></li>
        </ul>
      </li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
          Documentation <b class="caret"></b>
        </a>
        <ul class="dropdown-menu">
          <li><a href="/docs/latest/">Latest Release (Spark 2.0.1)</a></li>
          <li><a href="/documentation.html">Older Versions and Other Resources</a></li>
        </ul>
      </li>
      <li><a href="/examples.html">Examples</a></li>
      <li class="dropdown">
        <a href="/community.html" class="dropdown-toggle" data-toggle="dropdown">
          Community <b class="caret"></b>
        </a>
        <ul class="dropdown-menu">
          <li><a href="/community.html">Mailing Lists</a></li>
          <li><a href="/community.html#events">Events and Meetups</a></li>
          <li><a href="/community.html#history">Project History</a></li>
          <li><a href="https://cwiki.apache.org/confluence/display/SPARK/Powered+By+Spark">Powered By</a></li>
          <li><a href="https://cwiki.apache.org/confluence/display/SPARK/Committers">Project Committers</a></li>
          <li><a href="https://issues.apache.org/jira/browse/SPARK">Issue Tracker</a></li>
        </ul>
      </li>
      <li><a href="/faq.html">FAQ</a></li>
    </ul>
    <ul class="nav navbar-nav navbar-right">
      <li class="dropdown">
        <a href="http://www.apache.org/" class="dropdown-toggle" data-toggle="dropdown">
          Apache Software Foundation <b class="caret"></b></a>
        <ul class="dropdown-menu">
          <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>
      </li>
    </ul>
  </div>
  <!-- /.navbar-collapse -->
</nav>


<div class="row">
  <div class="col-md-3 col-md-push-9">
    <div class="news" style="margin-bottom: 20px;">
      <h5>Latest News</h5>
      <ul class="list-unstyled">
        
          <li><a href="/news/spark-2-0-1-released.html">Spark 2.0.1 released</a>
          <span class="small">(Oct 03, 2016)</span></li>
        
          <li><a href="/news/spark-2-0-0-released.html">Spark 2.0.0 released</a>
          <span class="small">(Jul 26, 2016)</span></li>
        
          <li><a href="/news/spark-1-6-2-released.html">Spark 1.6.2 released</a>
          <span class="small">(Jun 25, 2016)</span></li>
        
          <li><a href="/news/submit-talks-to-spark-summit-eu-2016.html">Call for Presentations for Spark Summit EU is Open</a>
          <span class="small">(Jun 16, 2016)</span></li>
        
      </ul>
      <p class="small" style="text-align: right;"><a href="/news/index.html">Archive</a></p>
    </div>
    <div class="hidden-xs hidden-sm">
      <a href="/downloads.html" class="btn btn-success btn-lg btn-block" style="margin-bottom: 30px;">
        Download Spark
      </a>
      <p style="font-size: 16px; font-weight: 500; color: #555;">
        Built-in Libraries:
      </p>
      <ul class="list-none">
        <li><a href="/sql/">SQL and DataFrames</a></li>
        <li><a href="/streaming/">Spark Streaming</a></li>
        <li><a href="/mllib/">MLlib (machine learning)</a></li>
        <li><a href="/graphx/">GraphX (graph)</a></li>
      </ul>
      <a href="https://cwiki.apache.org/confluence/display/SPARK/Third+Party+Projects">Third-Party Packages</a>
    </div>
  </div>

  <div class="col-md-9 col-md-pull-3">
    <h2>Spark Release 0.8.0</h2>


<p>Apache Spark 0.8.0 is a major release that includes many new capabilities and usability improvements. It’s also our first release in the Apache incubator. It is the largest Spark release yet, with contributions from 67 developers and 24 companies.</p>

<p>You can download Spark 0.8.0 as either a <a href="http://spark-project.org/download/spark-0.8.0-incubating.tgz">source package</a> (4 MB tar.gz) or a prebuilt pacakge for <a href="http://spark-project.org/download/spark-0.8.0-incubating-bin-hadoop1.tgz">Hadoop 1 / CDH3</a> or <a href="http://spark-project.org/download/spark-0.8.0-incubating-bin-cdh4.tgz">CDH4</a> (125 MB tar.gz). Release signatures and checksums are available at the official <a href="http://www.apache.org/dist/incubator/spark/spark-0.8.0-incubating/">Apache download site</a>.</p>

<h3 id="monitoring-ui-and-metrics">Monitoring UI and Metrics</h3>
<p>Spark now displays a variety of monitoring data in a web UI (by default at port 4040 on the driver node). A new job dashboard contains information about running, succeeded, and failed jobs, including percentile statistics covering task runtime, shuffled data, and garbage collection. The existing storage dashboard has been extended, and additional pages have been added to display total storage and task information per-executor. Finally, a new metrics library exposes internal Spark metrics through various API’s including JMX and Ganglia.</p>

<p style="text-align: center;">
<img src="/images/0.8.0-ui-screenshot.png" style="width:90%;" />
</p>

<h3 id="machine-learning-library">Machine Learning Library</h3>
<p>This release introduces MLlib, a standard library of high-quality machine learning and optimization algorithms for Spark. MLlib was developed in collaboration with the <a href="http://www.mlbase.org/">UC Berkeley MLbase project</a>. The current library contains seven algorithms, including support vector machines (SVMs), logistic regression, several regularized variants of linear regression, a clustering algorithm (KMeans), and alternating least squares collaborative filtering.</p>

<h3 id="python-improvements">Python Improvements</h3>
<p>The Python API has been extended with many previously missing features. This includes support for different storage levels, sampling, and various missing RDD operators. We’ve also added support for running Spark in <a href="http://ipython.org/">IPython</a>, including the IPython Notebook, and for running PySpark on Windows.</p>

<h3 id="hadoop-yarn-support">Hadoop YARN support</h3>
<p>Spark 0.8 add greatly improved support for running standalone Spark jobs on a YARN cluster. The YARN support is no longer experimental but now part of mainline Spark. Support for running against a secured YARN cluster has also been added.</p>

<h3 id="revamped-job-scheduler">Revamped Job Scheduler</h3>
<p>Spark’s internal job scheduler has been refactored and extended to include more sophisticated scheduling policies. In particular, a <a href="http://spark.incubator.apache.org/docs/0.8.0/job-scheduling.html#scheduling-within-an-application">fair scheduler</a> implementation now allows multiple users to share an instance of Spark, which helps users running shorter jobs to achieve good performance, even when longer-running jobs are running in parallel. Support for topology-aware scheduling has been extended, including the ability to take into account rack locality and support for multiple executors on a single machine.</p>

<h3 id="easier-deployment-and-linking">Easier Deployment and Linking</h3>
<p>User programs can now link to Spark no matter which Hadoop version they need, without having to publish a version of <code>spark-core</code> specifically for that Hadoop version. An explanation of how to link against different Hadoop versions is provided <a href="http://spark.incubator.apache.org/docs/0.8.0/scala-programming-guide.html#linking-with-spark">here</a>.</p>

<h3 id="expanded-ec2-capabilities">Expanded EC2 Capabilities</h3>
<p>Spark’s EC2 scripts now support launching in any availability zone. Support has also been added for EC2 instance types which use the newer “HVM” architecture. This includes the cluster compute (cc1/cc2) family of instance types. We’ve also added support for running newer versions of HDFS alongside Spark. Finally, we’ve added the ability to launch clusters with maintenance releases of Spark in addition to launching the newest release.</p>

<h3 id="improved-documentation">Improved Documentation</h3>
<p>This release adds documentation about cluster hardware provisioning and inter-operation with common Hadoop distributions. Docs are also included to cover the MLlib machine learning functions and new cluster monitoring features. Existing documentation has been updated to reflect changes in building and deploying Spark.</p>

<h3 id="other-improvements">Other Improvements</h3>
<ul>
  <li>RDDs can now manually be dropped from memory with <code>unpersist</code>.</li>
  <li>The RDD class includes the following new operations: <code>takeOrdered</code>, <code>zipPartitions</code>, <code>top</code>.</li>
  <li>A <code>JobLogger</code> class has been added to produce archivable logs of a Spark workload.</li>
  <li>The <code>RDD.coalesce</code> function now takes into account locality.</li>
  <li>The <code>RDD.pipe</code> function has been extended to support passing environment variables to child processes.</li>
  <li>Hadoop <code>save</code> functions now support an optional compression codec.</li>
  <li>You can now create a binary distribution of Spark which depends only on a Java runtime for easier deployment on a cluster.</li>
  <li>The examples build has been isolated from the core build, substantially reducing the potential for dependency conflicts.</li>
  <li>The Spark Streaming Twitter API has been updated to use OAuth authentication instead of the deprecated username/password authentication in Spark 0.7.0.</li>
  <li>Several new example jobs have been added, including PageRank implementations in Java, Scala and Python, examples for accessing HBase and Cassandra, and MLlib examples.</li>
  <li>Support for running on Mesos has been improved &#8211; now you can deploy a Spark assembly JAR as part of the Mesos job, instead of having Spark pre-installed on each machine. The default Mesos version has also been updated to 0.13.</li>
  <li>This release includes various optimizations to PySpark and to the job scheduler.</li>
</ul>

<h3 id="compatibility">Compatibility</h3>
<ul>
  <li><strong>This release changes Spark’s package name to &#8216;org.apache.spark&#8217;</strong>, so those upgrading from Spark 0.7 will need to adjust their imports accordingly. In addition, we’ve moved the <code>RDD</code> class to the org.apache.spark.rdd package (it was previously in the top-level package). The Spark artifacts published through Maven have also changed to the new package name.</li>
  <li>In the Java API, use of Scala’s <code>Option</code> class has been replaced with <code>Optional</code> from the Guava library.</li>
  <li>Linking against Spark for arbitrary Hadoop versions is now possible by specifying a dependency on <code>hadoop-client</code>, instead of rebuilding <code>spark-core</code> against your version of Hadoop. See the documentation <a href="http://spark.incubator.apache.org/docs/0.8.0/scala-programming-guide.html#linking-with-spark">here</a> for details.</li>
  <li>If you are building Spark, you’ll now need to run <code>sbt/sbt assembly</code> instead of <code>package</code>.</li>
</ul>

<h3 id="credits">Credits</h3>
<p>Spark 0.8.0 was the result of the largest team of contributors yet. The following developers contributed to this release:</p>

<ul>
  <li>Andrew Ash &#8211; documentation, code cleanup and logging improvements</li>
  <li>Mikhail Bautin &#8211; bug fix</li>
  <li>Konstantin Boudnik &#8211; Maven build, bug fixes, and documentation</li>
  <li>Ian Buss &#8211; sbt configuration improvement</li>
  <li>Evan Chan &#8211; API improvement, bug fix, and documentation</li>
  <li>Lian Cheng &#8211; bug fix</li>
  <li>Tathagata Das &#8211; performance improvement in streaming receiver and streaming bug fix</li>
  <li>Aaron Davidson &#8211; Python improvements, bug fix, and unit tests</li>
  <li>Giovanni Delussu &#8211; coalesced RDD feature</li>
  <li>Joseph E. Gonzalez &#8211; improvement to zipPartitions</li>
  <li>Karen Feng &#8211; several improvements to web UI</li>
  <li>Andy Feng &#8211; HDFS metrics</li>
  <li>Ali Ghodsi &#8211; configuration improvements and locality-aware coalesce</li>
  <li>Christoph Grothaus &#8211; bug fix</li>
  <li>Thomas Graves &#8211; support for secure YARN cluster and various YARN-related improvements</li>
  <li>Stephen Haberman &#8211; bug fix, documentation, and code cleanup</li>
  <li>Mark Hamstra &#8211; bug fixes and Maven build</li>
  <li>Benjamin Hindman &#8211; Mesos compatibility and documentation</li>
  <li>Liang-Chi Hsieh &#8211; bug fixes in build and in YARN mode</li>
  <li>Shane Huang &#8211; shuffle improvements, bug fix</li>
  <li>Ethan Jewett &#8211; Spark/HBase example</li>
  <li>Holden Karau &#8211; bug fix and EC2 improvement</li>
  <li>Kody Koeniger &#8211; JDBV RDD implementation</li>
  <li>Andy Konwinski &#8211; documentation</li>
  <li>Jey Kottalam &#8211; PySpark optimizations, Hadoop agnostic build (lead), and bug fixes</li>
  <li>Andrey Kouznetsov &#8211; Bug fix</li>
  <li>S. Kumar &#8211; Spark Streaming example</li>
  <li>Ryan LeCompte &#8211; topK method optimization and serialization improvements</li>
  <li>Gavin Li &#8211; compression codecs and pipe support</li>
  <li>Harold Lim &#8211; fair scheduler</li>
  <li>Dmitriy Lyubimov &#8211; bug fix</li>
  <li>Chris Mattmann &#8211; Apache mentor</li>
  <li>David McCauley &#8211; JSON API improvement</li>
  <li>Sean McNamara &#8211; added <code>takeOrdered</code> function, bug fixes, and a build fix</li>
  <li>Mridul Muralidharan &#8211; YARN integration (lead) and scheduler improvements</li>
  <li>Marc Mercer &#8211; improvements to UI json output</li>
  <li>Christopher Nguyen &#8211; bug fixes</li>
  <li>Erik van Oosten &#8211; example fix</li>
  <li>Kay Ousterhout &#8211; fix for scheduler regression and bug fixes</li>
  <li>Xinghao Pan &#8211; MLLib contributions</li>
  <li>Hiral Patel &#8211; bug fix</li>
  <li>James Phillpotts &#8211; updated Twitter API for Spark streaming</li>
  <li>Nick Pentreath &#8211; scala pageRank example, bagel improvement, and several Java examples</li>
  <li>Alexander Pivovarov &#8211; logging improvement and Maven build</li>
  <li>Mike Potts &#8211; configuration improvement</li>
  <li>Rohit Rai &#8211; Spark/Cassandra example</li>
  <li>Imran Rashid &#8211; bug fixes and UI improvement</li>
  <li>Charles Reiss &#8211; bug fixes, code cleanup, performance improvements</li>
  <li>Josh Rosen &#8211; Python API improvements, Java API improvements, EC2 scripts and bug fixes</li>
  <li>Henry Saputra &#8211; Apache mentor</li>
  <li>Jerry Shao &#8211; bug fixes, metrics system</li>
  <li>Prashant Sharma &#8211; documentation</li>
  <li>Mingfei Shi &#8211; joblogger and bug fix</li>
  <li>Andre Schumacher &#8211; several PySpark features</li>
  <li>Ginger Smith &#8211; MLLib contribution</li>
  <li>Evan Sparks &#8211; contributions to MLLib</li>
  <li>Ram Sriharsha &#8211; bug fix and RDD removal feature</li>
  <li>Ameet Talwalkar &#8211; MLlib contributions</li>
  <li>Roman Tkalenko &#8211; code refactoring and cleanup</li>
  <li>Chu Tong &#8211; Java PageRank algorithm and bug fix in bash scripts</li>
  <li>Shivaram Venkataraman &#8211; bug fixes, contributions to MLLib, netty shuffle fixes, and Java API additions</li>
  <li>Patrick Wendell &#8211; release manager, bug fixes, documentation, metrics system, and web UI</li>
  <li>Andrew Xia &#8211; fair scheduler (lead), metrics system, and ui improvements</li>
  <li>Reynold Xin &#8211; shuffle improvements, bug fixes, code refactoring, usability improvements, MLLib contributions</li>
  <li>Matei Zaharia &#8211; MLLib contributions, documentation, examples, UI improvements, PySpark improvements, and bug fixes</li>
  <li>Wu Zeming &#8211; bug fix in scheduler</li>
  <li>Bill Zhao &#8211; log message improvement</li>
</ul>

<p>Thanks to everyone who contributed!
We’d especially like to thank Patrick Wendell for acting as the release manager for this release.</p>


<p>
<br/>
<a href="/news/">Spark News Archive</a>
</p>

  </div>
</div>



<footer class="small">
  <hr>
  Apache Spark, Spark, Apache, and the Spark logo are <a href="/trademarks.html">trademarks</a> of
  <a href="http://www.apache.org">The Apache Software Foundation</a>.
</footer>

</div>

</body>
</html>