All Projects → mesosphere → spark-build

mesosphere / spark-build

Licence: other
Used to build the mesosphere/spark docker image and the DC/OS Spark package

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
go
31211 projects - #10 most used programming language
scala
5932 projects
java
68154 projects - #9 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to spark-build

marathon-slack
Integration for Marathon's Event Bus with Slack
Stars: ✭ 42 (-17.65%)
Mutual labels:  dcos
container-service-discovery
Service Discovery in Container Orchestration Frameworks on AWS
Stars: ✭ 45 (-11.76%)
Mutual labels:  dcos
container-orchestration
A Benchmark for Container Orchestration Systems
Stars: ✭ 19 (-62.75%)
Mutual labels:  dcos
chronos-utils
Command line utilities for interacting with Airbnb Chronos
Stars: ✭ 31 (-39.22%)
Mutual labels:  dcos
dcos-oauth
DC/OS OAuth Service (only used up to DC/OS version 1.12)
Stars: ✭ 22 (-56.86%)
Mutual labels:  dcos
letsencrypt-dcos
Let's Encrypt DC/OS!
Stars: ✭ 39 (-23.53%)
Mutual labels:  dcos
dklb
Expose Kubernetes services and ingresses through EdgeLB.
Stars: ✭ 13 (-74.51%)
Mutual labels:  dcos
dcos-vagrant-box
Vagrant box packer for building boxes for dcos-vagrant
Stars: ✭ 54 (+5.88%)
Mutual labels:  dcos
coreos-setup
Deprecated. See DCOS Community Edition for how to currently deploy Mesos on CoreOS
Stars: ✭ 27 (-47.06%)
Mutual labels:  dcos
ansible-dcos
[DEPRECATED] Please consider using the Ansible Roles for DC/OS maintained by the Mesosphere SRE team
Stars: ✭ 37 (-27.45%)
Mutual labels:  dcos
microservices-demo.github.io
The Microservices Demo website.
Stars: ✭ 65 (+27.45%)
Mutual labels:  dcos
etcd-top
etcd realtime workload analyzer
Stars: ✭ 34 (-33.33%)
Mutual labels:  dcos
cd-demo
A continuous delivery demo using Jenkins on DC/OS.
Stars: ✭ 36 (-29.41%)
Mutual labels:  dcos
dcos-net
A networking layer of DC/OS
Stars: ✭ 44 (-13.73%)
Mutual labels:  dcos
dcos-k8s-rust-skaffold-demo
A demo of pipelining Rust application development to Kubernetes on DC/OS with Skaffold.
Stars: ✭ 40 (-21.57%)
Mutual labels:  dcos
mesos-deb-packaging
Mesos package for Debian, Ubuntu, CentOS, RHEL, and Fedora
Stars: ✭ 58 (+13.73%)
Mutual labels:  dcos
dcos-launch
Turn-key deployments of DC/OS on AWS (template and onprem), Azure, and GCE
Stars: ✭ 16 (-68.63%)
Mutual labels:  dcos
dcos-openvpn
No description or website provided.
Stars: ✭ 14 (-72.55%)
Mutual labels:  dcos
dcos-deploy
Deploy, manage and orchestrate services and apps on DC/OS
Stars: ✭ 21 (-58.82%)
Mutual labels:  dcos
mesos-utils
Utilities for building distributed systems on top of mesos
Stars: ✭ 24 (-52.94%)
Mutual labels:  dcos

Spark DC/OS Package

This repo lets you configure, build, and test a new Spark DC/OS package. It is the source for the Spark package in universe. If you wish to modify that package, you should do so here, and generate a new package as described below.

Service documentation can be found here : DC/OS Apache Spark Documentation

Integration Test Builds Matrix

DC/OS 1.13 DC/OS 2.0 DC/OS 2.1 DC/OS Master
Permissive
Strict

Development Dependencies

  • GNU Make 3.82+ (the version is important due to usage of multiline bash commands)
  • Docker
  • Git
  • sbt

Configure

edit manifest.json.

Makefile Targets

Build environment

make docker-build

This will setup a docker image that can be used to build the spark distribution, the stub universe, and run the integration tests.

This image will not be invoked by any tests explicitly and is not required. Rather, it provides a consistent and portable environment for make to be run in.

Spark Distribution

A spark distribution is required to create a spark framework package. These distributions (packaged as tarballs) are bundled with a Docker image.

The following method builds from source. By default the mesosphere/spark repository will be used but one can use the SPARK_DIR override to use any arbitrary spark source directory. Additionally, HADOOP_VERSION may be provided as an override as only the default in the manifest is built.

make spark-dist-build

This will build Spark from source located in ./spark/ and put the result in ./build/dist/. This is useful when you are testing a custom build of Spark.

Package

The above distribution needs to be bundled into a Docker image and paired with a CLI in order to complete the package.

make stub-universe-url

This will build and upload a "stub" universe (i.e. singleton repo) containing a Spark package.

Publishing a local Spark distribution to stub universe

In case a custom Spark distribution needs to be tested on DC/OS and Spark sources are located in a different directory publish_local_spark.sh helper script can be used. The script conditionally builds Spark distribution (either if it is not built yet or if a flag specified) and runs Makefile's stub-universe-url target.

Example output:

publish_local_spark.sh --help

Usage: publish_local_spark.sh [<options>...]
Options:
--spark-dist-dir <absolute path>  Mandatory. Absolute path to Spark project sources used to build and/or upload Spark archive
--hadoop-version <version>        Optional. Hadoop version to build Spark with. Default: 2.7
--docker-dist-image <image tag>   Optional. Target Docker image to publish. Default: mesosphere/spark-dev:<git commit sha>
--rebuild-docker                  If Docker image should be rebuilt. Default: false
--rebuild-spark                   If Spark distribution should be rebuilt. Default: false
--help                            Print this message

Assuming Spark source code is located at /usr/projects/mesosphere/spark script invocation will look like:

publish_local_spark.sh --spark-dist-dir /usr/projects/mesosphere/spark --docker-dist-image user/spark-dev:test

--docker-dist-image flag is useful when one doesn't have access to default private registry and wants to publish target image to an available open repository.

Test

make test-jars

This command will build the payload jar used in the integration tests. Running this command separately is optional, only needed when it's desirable to perform all build operations separately from the test run itself.

make test

This command will run a complete build (if needed) and then run the integration test suite.

It supports the following optional environment variables:

STUB_UNIVERSE_URL=<space-separated URLs to stub universe.json>
CLUSTER_URL=<URL to existing cluster, otherwise one is created using dcos-launch>
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY=<AWS credentials, used if ~/.aws/credentials doesn't exist>

For more optional settings, take a look at test.sh.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].