Skip to content
Snippets Groups Projects
  1. Apr 10, 2017
    • Sean Owen's avatar
      [SPARK-20156][CORE][SQL][STREAMING][MLLIB] Java String toLowerCase "Turkish... · a26e3ed5
      Sean Owen authored
      [SPARK-20156][CORE][SQL][STREAMING][MLLIB] Java String toLowerCase "Turkish locale bug" causes Spark problems
      
      ## What changes were proposed in this pull request?
      
      Add Locale.ROOT to internal calls to String `toLowerCase`, `toUpperCase`, to avoid inadvertent locale-sensitive variation in behavior (aka the "Turkish locale problem").
      
      The change looks large but it is just adding `Locale.ROOT` (the locale with no country or language specified) to every call to these methods.
      
      ## How was this patch tested?
      
      Existing tests.
      
      Author: Sean Owen <sowen@cloudera.com>
      
      Closes #17527 from srowen/SPARK-20156.
      a26e3ed5
  2. Apr 06, 2017
    • Kalvin Chau's avatar
      [SPARK-20085][MESOS] Configurable mesos labels for executors · c8fc1f3b
      Kalvin Chau authored
      ## What changes were proposed in this pull request?
      
      Add spark.mesos.task.labels configuration option to add mesos key:value labels to the executor.
      
       "k1:v1,k2:v2" as the format, colons separating key-value and commas to list out more than one.
      
      Discussion of labels with mgummelt at #17404
      
      ## How was this patch tested?
      
      Added unit tests to verify labels were added correctly, with incorrect labels being ignored and added a test to test the name of the executor.
      
      Tested with: `./build/sbt -Pmesos mesos/test`
      
      Please review http://spark.apache.org/contributing.html before opening a pull request.
      
      Author: Kalvin Chau <kalvin.chau@viasat.com>
      
      Closes #17413 from kalvinnchau/mesos-labels.
      c8fc1f3b
  3. Apr 04, 2017
    • Marcelo Vanzin's avatar
      [SPARK-20191][YARN] Crate wrapper for RackResolver so tests can override it. · 0736980f
      Marcelo Vanzin authored
      Current test code tries to override the RackResolver used by setting
      configuration params, but because YARN libs statically initialize the
      resolver the first time it's used, that means that those configs don't
      really take effect during Spark tests.
      
      This change adds a wrapper class that easily allows tests to override the
      behavior of the resolver for the Spark code that uses it.
      
      Author: Marcelo Vanzin <vanzin@cloudera.com>
      
      Closes #17508 from vanzin/SPARK-20191.
      0736980f
  4. Mar 29, 2017
    • jerryshao's avatar
      [SPARK-20059][YARN] Use the correct classloader for HBaseCredentialProvider · c622a87c
      jerryshao authored
      ## What changes were proposed in this pull request?
      
      Currently we use system classloader to find HBase jars, if it is specified by `--jars`, then it will be failed with ClassNotFound issue. So here changing to use child classloader.
      
      Also putting added jars and main jar into classpath of submitted application in yarn cluster mode, otherwise HBase jars specified with `--jars` will never be honored in cluster mode, and fetching tokens in client side will always be failed.
      
      ## How was this patch tested?
      
      Unit test and local verification.
      
      Author: jerryshao <sshao@hortonworks.com>
      
      Closes #17388 from jerryshao/SPARK-20059.
      c622a87c
  5. Mar 28, 2017
    • jerryshao's avatar
      [SPARK-19995][YARN] Register tokens to current UGI to avoid re-issuing of... · 17eddb35
      jerryshao authored
      [SPARK-19995][YARN] Register tokens to current UGI to avoid re-issuing of tokens in yarn client mode
      
      ## What changes were proposed in this pull request?
      
      In the current Spark on YARN code, we will obtain tokens from provided services, but we're not going to add these tokens to the current user's credentials. This will make all the following operations to these services still require TGT rather than delegation tokens. This is unnecessary since we already got the tokens, also this will lead to failure in user impersonation scenario, because the TGT is granted by real user, not proxy user.
      
      So here changing to put all the tokens to the current UGI, so that following operations to these services will honor tokens rather than TGT, and this will further handle the proxy user issue mentioned above.
      
      ## How was this patch tested?
      
      Local verified in secure cluster.
      
      vanzin tgravescs mridulm  dongjoon-hyun please help to review, thanks a lot.
      
      Author: jerryshao <sshao@hortonworks.com>
      
      Closes #17335 from jerryshao/SPARK-19995.
      17eddb35
  6. Mar 26, 2017
    • Juan Rodriguez Hortala's avatar
      logging improvements · 362ee932
      Juan Rodriguez Hortala authored
      ## What changes were proposed in this pull request?
      Adding additional information to existing logging messages:
        - YarnAllocator: log the executor ID together with the container id when a container for an executor is launched.
        - NettyRpcEnv: log the receiver address when there is a timeout waiting for an answer to a remote call.
        - ExecutorAllocationManager: fix a typo in the logging message for the list of executors to be removed.
      
      ## How was this patch tested?
      Build spark and submit the word count example to a YARN cluster using cluster mode
      
      Author: Juan Rodriguez Hortala <hortala@amazon.com>
      
      Closes #17411 from juanrh/logging-improvements.
      362ee932
  7. Mar 25, 2017
    • Kalvin Chau's avatar
      [SPARK-20078][MESOS] Mesos executor configurability for task name and labels · e8ddb91c
      Kalvin Chau authored
      ## What changes were proposed in this pull request?
      
      Adding configurable mesos executor names and labels using `spark.mesos.task.name` and `spark.mesos.task.labels`.
      
      Labels were defined as `k1:v1,k2:v2`.
      
      mgummelt
      
      ## How was this patch tested?
      
      Added unit tests to verify labels were added correctly, with incorrect labels being ignored and added a test to test the name of the executor.
      
      Tested with: `./build/sbt -Pmesos mesos/test`
      
      Please review http://spark.apache.org/contributing.html before opening a pull request.
      
      Author: Kalvin Chau <kalvin.chau@viasat.com>
      
      Closes #17404 from kalvinnchau/mesos-config.
      e8ddb91c
  8. Mar 24, 2017
  9. Mar 23, 2017
    • Ye Yin's avatar
      Typo fixup in comment · b0ae6a38
      Ye Yin authored
      ## What changes were proposed in this pull request?
      
      Fixup typo in comment.
      
      ## How was this patch tested?
      
      Don't need.
      
      Author: Ye Yin <eyniy@qq.com>
      
      Closes #17396 from hustcat/fix.
      b0ae6a38
  10. Mar 10, 2017
  11. Mar 07, 2017
    • Marcelo Vanzin's avatar
      [SPARK-19857][YARN] Correctly calculate next credential update time. · 8e41c2ee
      Marcelo Vanzin authored
      Add parentheses so that both lines form a single statement; also add
      a log message so that the issue becomes more explicit if it shows up
      again.
      
      Tested manually with integration test that exercises the feature.
      
      Author: Marcelo Vanzin <vanzin@cloudera.com>
      
      Closes #17198 from vanzin/SPARK-19857.
      8e41c2ee
    • Michael Gummelt's avatar
      [SPARK-19702][MESOS] Increase default refuse_seconds timeout in the Mesos Spark Dispatcher · 2e30c0b9
      Michael Gummelt authored
      ## What changes were proposed in this pull request?
      
      Increase default refuse_seconds timeout, and make it configurable.  See JIRA for details on how this reduces the risk of starvation.
      
      ## How was this patch tested?
      
      Unit tests, Manual testing, and Mesos/Spark integration test suite
      
      cc susanxhuynh skonto jmlvanre
      
      Author: Michael Gummelt <mgummelt@mesosphere.io>
      
      Closes #17031 from mgummelt/SPARK-19702-suppress-revive.
      2e30c0b9
  12. Feb 28, 2017
    • Michael Gummelt's avatar
      [SPARK-19373][MESOS] Base spark.scheduler.minRegisteredResourceRatio on... · ca3864d6
      Michael Gummelt authored
      [SPARK-19373][MESOS] Base spark.scheduler.minRegisteredResourceRatio on registered cores rather than accepted cores
      
      ## What changes were proposed in this pull request?
      
      See JIRA
      
      ## How was this patch tested?
      
      Unit tests, Mesos/Spark integration tests
      
      cc skonto susanxhuynh
      
      Author: Michael Gummelt <mgummelt@mesosphere.io>
      
      Closes #17045 from mgummelt/SPARK-19373-registered-resources.
      ca3864d6
  13. Feb 25, 2017
    • Devaraj K's avatar
      [SPARK-15288][MESOS] Mesos dispatcher should handle gracefully when any thread... · 410392ed
      Devaraj K authored
      [SPARK-15288][MESOS] Mesos dispatcher should handle gracefully when any thread gets UncaughtException
      
      ## What changes were proposed in this pull request?
      
      Adding the default UncaughtExceptionHandler to the MesosClusterDispatcher.
      ## How was this patch tested?
      
      I verified it manually, when any of the dispatcher thread gets uncaught exceptions then the default UncaughtExceptionHandler will handle those exceptions.
      
      Author: Devaraj K <devaraj@apache.org>
      
      Closes #13072 from devaraj-kavali/SPARK-15288.
      410392ed
  14. Feb 24, 2017
    • Jeff Zhang's avatar
      [SPARK-13330][PYSPARK] PYTHONHASHSEED is not propgated to python worker · 330c3e33
      Jeff Zhang authored
      ## What changes were proposed in this pull request?
      self.environment will be propagated to executor. Should set PYTHONHASHSEED as long as the python version is greater than 3.3
      
      ## How was this patch tested?
      Manually tested it.
      
      Author: Jeff Zhang <zjffdu@apache.org>
      
      Closes #11211 from zjffdu/SPARK-13330.
      330c3e33
    • jerryshao's avatar
      [SPARK-19038][YARN] Avoid overwriting keytab configuration in yarn-client · a920a436
      jerryshao authored
      ## What changes were proposed in this pull request?
      
      Because yarn#client will reset the `spark.yarn.keytab` configuration to point to the location in distributed file, so if user still uses the old `SparkConf` to create `SparkSession` with Hive enabled, it will read keytab from the path in distributed cached. This is OK for yarn cluster mode, but in yarn client mode where driver is running out of container, it will be failed to fetch the keytab.
      
      So here we should avoid reseting this configuration in the `yarn#client` and only overwriting it for AM, so using `spark.yarn.keytab` could get correct keytab path no matter running in client (keytab in local fs) or cluster (keytab in distributed cache) mode.
      
      ## How was this patch tested?
      
      Verified in security cluster.
      
      Author: jerryshao <sshao@hortonworks.com>
      
      Closes #16923 from jerryshao/SPARK-19038.
      a920a436
  15. Feb 22, 2017
    • Marcelo Vanzin's avatar
      [SPARK-19554][UI,YARN] Allow SHS URL to be used for tracking in YARN RM. · 4661d30b
      Marcelo Vanzin authored
      Allow an application to use the History Server URL as the tracking
      URL in the YARN RM, so there's still a link to the web UI somewhere
      in YARN even if the driver's UI is disabled. This is useful, for
      example, if an admin wants to disable the driver UI by default for
      applications, since it's harder to secure it (since it involves non
      trivial ssl certificate and auth management that admins may not want
      to expose to user apps).
      
      This needs to be opt-in, because of the way the YARN proxy works, so
      a new configuration was added to enable the option.
      
      The YARN RM will proxy requests to live AMs instead of redirecting
      the client, so pages in the SHS UI will not render correctly since
      they'll reference invalid paths in the RM UI. The proxy base support
      in the SHS cannot be used since that would prevent direct access to
      the SHS.
      
      So, to solve this problem, for the feature to work end-to-end, a new
      YARN-specific filter was added that detects whether the requests come
      from the proxy and redirects the client appropriatly. The SHS admin has
      to add this filter manually if they want the feature to work.
      
      Tested with new unit test, and by running with the documented configuration
      set in a test cluster. Also verified the driver UI is used when it's
      enabled.
      
      Author: Marcelo Vanzin <vanzin@cloudera.com>
      
      Closes #16946 from vanzin/SPARK-19554.
      4661d30b
  16. Feb 21, 2017
    • Kent Yao's avatar
      [SPARK-19626][YARN] Using the correct config to set credentials update time · 7363dde6
      Kent Yao authored
      ## What changes were proposed in this pull request?
      
      In https://github.com/apache/spark/pull/14065, we introduced a configurable credential manager for Spark running on YARN. Also two configs `spark.yarn.credentials.renewalTime` and `spark.yarn.credentials.updateTime` were added, one is for the credential renewer and the other updater. But now we just query `spark.yarn.credentials.renewalTime` by mistake during CREDENTIALS UPDATING, where should be actually `spark.yarn.credentials.updateTime` .
      
      This PR fixes this mistake.
      
      ## How was this patch tested?
      
      existing test
      
      cc jerryshao vanzin
      
      Author: Kent Yao <yaooqinn@hotmail.com>
      
      Closes #16955 from yaooqinn/cred_update.
      7363dde6
  17. Feb 19, 2017
    • jinxing's avatar
      [SPARK-19450] Replace askWithRetry with askSync. · ba8912e5
      jinxing authored
      ## What changes were proposed in this pull request?
      
      `askSync` is already added in `RpcEndpointRef` (see SPARK-19347 and https://github.com/apache/spark/pull/16690#issuecomment-276850068) and `askWithRetry` is marked as deprecated.
      As mentioned SPARK-18113(https://github.com/apache/spark/pull/16503#event-927953218):
      
      >askWithRetry is basically an unneeded API, and a leftover from the akka days that doesn't make sense anymore. It's prone to cause deadlocks (exactly because it's blocking), it imposes restrictions on the caller (e.g. idempotency) and other things that people generally don't pay that much attention to when using it.
      
      Since `askWithRetry` is just used inside spark and not in user logic. It might make sense to replace all of them with `askSync`.
      
      ## How was this patch tested?
      This PR doesn't change code logic, existing unit test can cover.
      
      Author: jinxing <jinxing@meituan.com>
      
      Closes #16790 from jinxing64/SPARK-19450.
      Unverified
      ba8912e5
  18. Feb 16, 2017
    • Sean Owen's avatar
      [SPARK-19550][BUILD][CORE][WIP] Remove Java 7 support · 0e240549
      Sean Owen authored
      - Move external/java8-tests tests into core, streaming, sql and remove
      - Remove MaxPermGen and related options
      - Fix some reflection / TODOs around Java 8+ methods
      - Update doc references to 1.7/1.8 differences
      - Remove Java 7/8 related build profiles
      - Update some plugins for better Java 8 compatibility
      - Fix a few Java-related warnings
      
      For the future:
      
      - Update Java 8 examples to fully use Java 8
      - Update Java tests to use lambdas for simplicity
      - Update Java internal implementations to use lambdas
      
      ## How was this patch tested?
      
      Existing tests
      
      Author: Sean Owen <sowen@cloudera.com>
      
      Closes #16871 from srowen/SPARK-19493.
      Unverified
      0e240549
  19. Feb 14, 2017
  20. Feb 10, 2017
    • Devaraj K's avatar
      [SPARK-10748][MESOS] Log error instead of crashing Spark Mesos dispatcher when... · 8640dc08
      Devaraj K authored
      [SPARK-10748][MESOS] Log error instead of crashing Spark Mesos dispatcher when a job is misconfigured
      
      ## What changes were proposed in this pull request?
      
      Now handling the spark exception which gets thrown for invalid job configuration, marking that job as failed and continuing to launch the other drivers instead of throwing the exception.
      ## How was this patch tested?
      
      I verified manually, now the misconfigured jobs move to Finished Drivers section in UI and continue to launch the other jobs.
      
      Author: Devaraj K <devaraj@apache.org>
      
      Closes #13077 from devaraj-kavali/SPARK-10748.
      Unverified
      8640dc08
    • jerryshao's avatar
      [SPARK-19545][YARN] Fix compile issue for Spark on Yarn when building against Hadoop 2.6.0~2.6.3 · 8e8afb3a
      jerryshao authored
      ## What changes were proposed in this pull request?
      
      Due to the newly added API in Hadoop 2.6.4+, Spark builds against Hadoop 2.6.0~2.6.3 will meet compile error. So here still reverting back to use reflection to handle this issue.
      
      ## How was this patch tested?
      
      Manual verification.
      
      Author: jerryshao <sshao@hortonworks.com>
      
      Closes #16884 from jerryshao/SPARK-19545.
      Unverified
      8e8afb3a
  21. Feb 08, 2017
    • Sean Owen's avatar
      [SPARK-19464][BUILD][HOTFIX][TEST-HADOOP2.6] Add back mockito test dep in YARN... · 15627ac7
      Sean Owen authored
      [SPARK-19464][BUILD][HOTFIX][TEST-HADOOP2.6] Add back mockito test dep in YARN module, as it ends up being required in a Maven build
      
      Add back mockito test dep in YARN module, as it ends up being required in a Maven build
      
      ## How was this patch tested?
      
      PR builder again, but also a local `mvn` run using the command that the broken Jenkins job uses
      
      Author: Sean Owen <sowen@cloudera.com>
      
      Closes #16853 from srowen/SPARK-19464.2.
      Unverified
      15627ac7
    • Dongjoon Hyun's avatar
      [SPARK-19409][BUILD][TEST-MAVEN] Fix ParquetAvroCompatibilitySuite failure due... · 0077bfcb
      Dongjoon Hyun authored
      [SPARK-19409][BUILD][TEST-MAVEN] Fix ParquetAvroCompatibilitySuite failure due to test dependency on avro
      
      ## What changes were proposed in this pull request?
      
      After using Apache Parquet 1.8.2, `ParquetAvroCompatibilitySuite` fails on **Maven** test. It is because `org.apache.parquet.avro.AvroParquetWriter` in the test code used new `avro 1.8.0` specific class, `LogicalType`. This PR aims to fix the test dependency of `sql/core` module to use avro 1.8.0.
      
      https://amplab.cs.berkeley.edu/jenkins/view/Spark%20QA%20Test%20(Dashboard)/job/spark-master-test-maven-hadoop-2.7/2530/consoleFull
      
      ```
      ParquetAvroCompatibilitySuite:
      *** RUN ABORTED ***
        java.lang.NoClassDefFoundError: org/apache/avro/LogicalType
        at org.apache.parquet.avro.AvroParquetWriter.writeSupport(AvroParquetWriter.java:144)
      ```
      
      ## How was this patch tested?
      
      Pass the existing test with **Maven**.
      
      ```
      $ build/mvn -Pyarn -Phadoop-2.7 -Pkinesis-asl -Phive -Phive-thriftserver test
      ...
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD SUCCESS
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 02:07 h
      [INFO] Finished at: 2017-02-04T05:41:43+00:00
      [INFO] Final Memory: 77M/987M
      [INFO] ------------------------------------------------------------------------
      ```
      
      Author: Dongjoon Hyun <dongjoon@apache.org>
      
      Closes #16795 from dongjoon-hyun/SPARK-19409-2.
      Unverified
      0077bfcb
    • Sean Owen's avatar
      [SPARK-19464][CORE][YARN][TEST-HADOOP2.6] Remove support for Hadoop 2.5 and earlier · e8d3fca4
      Sean Owen authored
      ## What changes were proposed in this pull request?
      
      - Remove support for Hadoop 2.5 and earlier
      - Remove reflection and code constructs only needed to support multiple versions at once
      - Update docs to reflect newer versions
      - Remove older versions' builds and profiles.
      
      ## How was this patch tested?
      
      Existing tests
      
      Author: Sean Owen <sowen@cloudera.com>
      
      Closes #16810 from srowen/SPARK-19464.
      Unverified
      e8d3fca4
  22. Jan 25, 2017
  23. Jan 24, 2017
    • Marcelo Vanzin's avatar
      [SPARK-19139][CORE] New auth mechanism for transport library. · 8f3f73ab
      Marcelo Vanzin authored
      This change introduces a new auth mechanism to the transport library,
      to be used when users enable strong encryption. This auth mechanism
      has better security than the currently used DIGEST-MD5.
      
      The new protocol uses symmetric key encryption to mutually authenticate
      the endpoints, and is very loosely based on ISO/IEC 9798.
      
      The new protocol falls back to SASL when it thinks the remote end is old.
      Because SASL does not support asking the server for multiple auth protocols,
      which would mean we could re-use the existing SASL code by just adding a
      new SASL provider, the protocol is implemented outside of the SASL API
      to avoid the boilerplate of adding a new provider.
      
      Details of the auth protocol are discussed in the included README.md
      file.
      
      This change partly undos the changes added in SPARK-13331; AES encryption
      is now decoupled from SASL authentication. The encryption code itself,
      though, has been re-used as part of this change.
      
      ## How was this patch tested?
      
      - Unit tests
      - Tested Spark 2.2 against Spark 1.6 shuffle service with SASL enabled
      - Tested Spark 2.2 against Spark 2.2 shuffle service with SASL fallback disabled
      
      Author: Marcelo Vanzin <vanzin@cloudera.com>
      
      Closes #16521 from vanzin/SPARK-19139.
      8f3f73ab
  24. Jan 18, 2017
  25. Jan 17, 2017
    • jerryshao's avatar
      [SPARK-19179][YARN] Change spark.yarn.access.namenodes config and update docs · b79cc7ce
      jerryshao authored
      ## What changes were proposed in this pull request?
      
      `spark.yarn.access.namenodes` configuration cannot actually reflects the usage of it, inside the code it is the Hadoop filesystems we get tokens, not NNs. So here propose to update the name of this configuration, also change the related code and doc.
      
      ## How was this patch tested?
      
      Local verification.
      
      Author: jerryshao <sshao@hortonworks.com>
      
      Closes #16560 from jerryshao/SPARK-19179.
      b79cc7ce
    • Yanbo Liang's avatar
      [MINOR][YARN] Move YarnSchedulerBackendSuite to resource-managers/yarn directory. · 84f0b645
      Yanbo Liang authored
      ## What changes were proposed in this pull request?
      #16092 moves YARN resource manager related code to resource-managers/yarn directory. The test case ```YarnSchedulerBackendSuite``` was added after that but with the wrong place. I move it to correct directory in this PR.
      
      ## How was this patch tested?
      Existing test.
      
      Author: Yanbo Liang <ybliang8@gmail.com>
      
      Closes #16595 from yanboliang/yarn.
      84f0b645
  26. Jan 11, 2017
    • jerryshao's avatar
      [SPARK-19021][YARN] Generailize HDFSCredentialProvider to support non HDFS security filesystems · 4239a108
      jerryshao authored
      Currently Spark can only get token renewal interval from security HDFS (hdfs://), if Spark runs with other security file systems like webHDFS (webhdfs://), wasb (wasb://), ADLS, it will ignore these tokens and not get token renewal intervals from these tokens. These will make Spark unable to work with these security clusters. So instead of only checking HDFS token, we should generalize to support different DelegationTokenIdentifier.
      
      ## How was this patch tested?
      
      Manually verified in security cluster.
      
      Author: jerryshao <sshao@hortonworks.com>
      
      Closes #16432 from jerryshao/SPARK-19021.
      4239a108
  27. Jan 06, 2017
    • Kay Ousterhout's avatar
      [SPARK-17931] Eliminate unnecessary task (de) serialization · 2e139eed
      Kay Ousterhout authored
      In the existing code, there are three layers of serialization
          involved in sending a task from the scheduler to an executor:
              - A Task object is serialized
              - The Task object is copied to a byte buffer that also
                contains serialized information about any additional JARs,
                files, and Properties needed for the task to execute. This
                byte buffer is stored as the member variable serializedTask
                in the TaskDescription class.
              - The TaskDescription is serialized (in addition to the serialized
                task + JARs, the TaskDescription class contains the task ID and
                other metadata) and sent in a LaunchTask message.
      
      While it *is* necessary to have two layers of serialization, so that
      the JAR, file, and Property info can be deserialized prior to
      deserializing the Task object, the third layer of deserialization is
      unnecessary.  This commit eliminates a layer of serialization by moving
      the JARs, files, and Properties into the TaskDescription class.
      
      This commit also serializes the Properties manually (by traversing the map),
      as is done with the JARs and files, which reduces the final serialized size.
      
      Unit tests
      
      This is a simpler alternative to the approach proposed in #15505.
      
      shivaram and I did some benchmarking of this and #15505 on a 20-machine m2.4xlarge EC2 machines (160 cores). We ran ~30 trials of code [1] (a very simple job with 10K tasks per stage) and measured the average time per stage:
      
      Before this change: 2490ms
      With this change: 2345 ms (so ~6% improvement over the baseline)
      With witgo's approach in #15505: 2046 ms (~18% improvement over baseline)
      
      The reason that #15505 has a more significant improvement is that it also moves the serialization from the TaskSchedulerImpl thread to the CoarseGrainedSchedulerBackend thread. I added that functionality on top of this change, and got almost the same improvement [1] as #15505 (average of 2103ms). I think we should decouple these two changes, both so we have some record of the improvement form each individual improvement, and because this change is more about simplifying the code base (the improvement is negligible) while the other is about performance improvement.  The plan, currently, is to merge this PR and then merge the remaining part of #15505 that moves serialization.
      
      [1] The reason the improvement wasn't quite as good as with #15505 when we ran the benchmarks is almost certainly because, at the point when we ran the benchmarks, I hadn't updated the code to manually serialize the Properties (instead the code was using Java's default serialization for the Properties object, whereas #15505 manually serialized the Properties).  This PR has since been updated to manually serialize the Properties, just like the other maps.
      
      Author: Kay Ousterhout <kayousterhout@gmail.com>
      
      Closes #16053 from kayousterhout/SPARK-17931.
      2e139eed
  28. Jan 04, 2017
    • Niranjan Padmanabhan's avatar
      [MINOR][DOCS] Remove consecutive duplicated words/typo in Spark Repo · a1e40b1f
      Niranjan Padmanabhan authored
      ## What changes were proposed in this pull request?
      There are many locations in the Spark repo where the same word occurs consecutively. Sometimes they are appropriately placed, but many times they are not. This PR removes the inappropriately duplicated words.
      
      ## How was this patch tested?
      N/A since only docs or comments were updated.
      
      Author: Niranjan Padmanabhan <niranjan.padmanabhan@gmail.com>
      
      Closes #16455 from neurons/np.structure_streaming_doc.
      Unverified
      a1e40b1f
    • mingfei's avatar
      [SPARK-19073] LauncherState should be only set to SUBMITTED after the application is submitted · fe1c895e
      mingfei authored
      ## What changes were proposed in this pull request?
      LauncherState should be only set to SUBMITTED after the application is submitted.
      Currently the state is set before the application is actually submitted.
      
      ## How was this patch tested?
      no test is added in this patch
      
      Author: mingfei <mingfei.smf@alipay.com>
      
      Closes #16459 from shimingfei/fixLauncher.
      Unverified
      fe1c895e
  29. Jan 03, 2017
    • Devaraj K's avatar
      [SPARK-15555][MESOS] Driver with --supervise option cannot be killed in Mesos mode · 89bf370e
      Devaraj K authored
      ## What changes were proposed in this pull request?
      
      Not adding the Killed applications for retry.
      ## How was this patch tested?
      
      I have verified manually in the Mesos cluster, with the changes the killed applications move to Finished Drivers section and will not retry.
      
      Author: Devaraj K <devaraj@apache.org>
      
      Closes #13323 from devaraj-kavali/SPARK-15555.
      89bf370e
  30. Jan 02, 2017
  31. Dec 21, 2016
    • Ryan Williams's avatar
      [SPARK-17807][CORE] split test-tags into test-JAR · afd9bc1d
      Ryan Williams authored
      Remove spark-tag's compile-scope dependency (and, indirectly, spark-core's compile-scope transitive-dependency) on scalatest by splitting test-oriented tags into spark-tags' test JAR.
      
      Alternative to #16303.
      
      Author: Ryan Williams <ryan.blake.williams@gmail.com>
      
      Closes #16311 from ryan-williams/tt.
      afd9bc1d
  32. Dec 15, 2016
    • Imran Rashid's avatar
      [SPARK-8425][SCHEDULER][HOTFIX] fix scala 2.10 compile error · 32ff9645
      Imran Rashid authored
      ## What changes were proposed in this pull request?
      
      https://github.com/apache/spark/commit/93cdb8a7d0f124b4db069fd8242207c82e263c52 Introduced a compile error under scala 2.10, this fixes that error.
      
      ## How was this patch tested?
      
      locally ran
      ```
      dev/change-version-to-2.10.sh
      build/sbt -Pyarn -Phadoop-2.4 -Dhadoop.version=2.6.0 -Dscala-2.10 "project yarn" "test-only *YarnAllocatorSuite"
      ```
      (which failed at test compilation before this change)
      
      Author: Imran Rashid <irashid@cloudera.com>
      
      Closes #16298 from squito/blacklist-2.10.
      32ff9645
    • Imran Rashid's avatar
      [SPARK-8425][CORE] Application Level Blacklisting · 93cdb8a7
      Imran Rashid authored
      ## What changes were proposed in this pull request?
      
      This builds upon the blacklisting introduced in SPARK-17675 to add blacklisting of executors and nodes for an entire Spark application.  Resources are blacklisted based on tasks that fail, in tasksets that eventually complete successfully; they are automatically returned to the pool of active resources based on a timeout.  Full details are available in a design doc attached to the jira.
      ## How was this patch tested?
      
      Added unit tests, ran them via Jenkins, also ran a handful of them in a loop to check for flakiness.
      
      The added tests include:
      - verifying BlacklistTracker works correctly
      - verifying TaskSchedulerImpl interacts with BlacklistTracker correctly (via a mock BlacklistTracker)
      - an integration test for the entire scheduler with blacklisting in a few different scenarios
      
      Author: Imran Rashid <irashid@cloudera.com>
      Author: mwws <wei.mao@intel.com>
      
      Closes #14079 from squito/blacklist-SPARK-8425.
      93cdb8a7
Loading