From 67d9d4818acba2e31c9f61c596573ec60166ae6b Mon Sep 17 00:00:00 2001 From: jpolchlo Date: Thu, 28 Dec 2017 15:35:10 -0500 Subject: [PATCH] Feature complete jupyter-scala EMR script [skip ci] Signed-off-by: jpolchlo --- scripts/emr/Makefile | 5 +- scripts/emr/README.md | 140 ++++++++++++++---- .../emr/images/jupyter-insert-boilerplate.png | Bin 0 -> 93649 bytes scripts/emr/images/jupyter-login.png | Bin 0 -> 24716 bytes scripts/emr/images/jupyter-new-notebook.png | Bin 0 -> 25042 bytes scripts/emr/terraform/boilerplate.js | 68 +++++++++ scripts/emr/terraform/bootstrap.sh | 11 +- scripts/emr/terraform/emr-spark.tf | 13 +- scripts/emr/terraform/variables.tf.json | 8 +- 9 files changed, 208 insertions(+), 37 deletions(-) create mode 100644 scripts/emr/images/jupyter-insert-boilerplate.png create mode 100644 scripts/emr/images/jupyter-login.png create mode 100644 scripts/emr/images/jupyter-new-notebook.png create mode 100644 scripts/emr/terraform/boilerplate.js diff --git a/scripts/emr/Makefile b/scripts/emr/Makefile index c1e0c592b9..1a689b8df0 100644 --- a/scripts/emr/Makefile +++ b/scripts/emr/Makefile @@ -27,10 +27,13 @@ terraform-init: create-cluster: cd terraform; terraform apply +create-jupyter-cluster: + cd terraform ; TF_VAR_install_jupyter="true" terraform apply + destroy-cluster: cd terraform; terraform destroy -proxy: +proxy: cd terraform; aws emr socks --cluster-id ${CLUSTER_ID} --key-pair-file ${KEY_PAIR_FILE} ssh: diff --git a/scripts/emr/README.md b/scripts/emr/README.md index c0242ee18e..7f987a8379 100644 --- a/scripts/emr/README.md +++ b/scripts/emr/README.md @@ -16,62 +16,138 @@ You need to install [Terraform 0.10.8](https://github.com/hashicorp/terraform/re ## Makefile -| Command | Description -|------------------|------------------------------------------------------------| -|terraform-init |`terraform` init, if it's the first run | -|create-cluster |Create EMR cluster with configurations | -|destroy-cluster |Destroy EMR cluster | -|create-cluster |Create EMR cluster with configurations | -|proxy |Create SOCKS proxy for active cluster | -|ssh |SSH into cluster master | -|cleanup-zeppelin |Cleanups all GeoTrellis jars from Zeppelin classpath | -|restart-zeppelin |Restart Zeppelin | -|stop-zeppelin |Stop Zeppelin | -|start-zeppelin |Start Zeppelin | +| Command | Description +|-----------------------|------------------------------------------------------------| +|terraform-init |`terraform` init, if it's the first run | +|create-cluster |Create EMR cluster with configurations | +|create-jupyter-cluster |Create EMR cluster with jupyter-scala available | +|destroy-cluster |Destroy EMR cluster | +|create-cluster |Create EMR cluster with configurations | +|upload-assembly |Send spark-etl assembly jar to cluster | +|proxy |Create SOCKS proxy for active cluster | +|ssh |SSH into cluster master | +|cleanup-zeppelin |Cleanups all GeoTrellis jars from Zeppelin classpath | +|restart-zeppelin |Restart Zeppelin | +|stop-zeppelin |Stop Zeppelin | +|start-zeppelin |Start Zeppelin | ## Running -Create a cluster and upload assembly on EMR master node: +### Creating a Zeppelin Cluster +The Makefile in this directory provides commands to easily set up an EMR +cluster, but doing so does require a minimal amount of configuration. It will +be necessary to provide your AWS credentials to the Terraform script. + +Begin by issuing the commands ```bash make terraform-init && \ -make create-cluster && \ -make upload-assembly +make create-cluster ``` -It will be necessary to provide your AWS credentials to the Terraform script. -Terraform will prompt for the access key, the secret key, and the PEM path for -the current account. You may enter these explicitly, or you may choose to set -environment variables to avoid having to repeatedly fill out the prompts. If -`TF_VAR_access_key`, `TF_VAR_secret_key`, and `TF_VAR_pem_path`, these will be -discovered by the Terraform script and you will not be prompted at startup. -The same mechanism can be used to set other variables. `TF_VAR_spot_price` -and `TF_VAR_worker_count` are useful values. +Terraform will prompt for the S3 access key and secret key, as well as the PEM +path for the current account. You may enter these explicitly, or you may +choose to set environment variables to avoid having to repeatedly fill out the +prompts. If `TF_VAR_access_key`, `TF_VAR_secret_key`, and `TF_VAR_pem_path`, +these will be discovered by the Terraform script and you will not be prompted +at startup. The same mechanism can be used to set other variables. +`TF_VAR_spot_price` and `TF_VAR_worker_count` are useful values. -Note: long startup times (greater than 5 or 6 minutes) probably indicates that -you have chosen a spot price that is too low. +**Note:** long startup times (10 minutes or more) probably indicates that you have +chosen a spot price that is too low. -Make proxy and access Zeppelin though UI: +**Note:** Due to the lack of sophistication in Terraform, you will also be +prompted to set the value of `TF_VAR_s3_notebook_bucket` and +`TF_VAR_s3_notebook_prefix`. These variables are only used by Jupyter-enabled +clusters and can be set arbitrarily for Zeppelin-only clusters. + +This basic cluster will have a running Zeppelin interface that can be accessed +by first creating an SSH tunnel with the command ```bash make proxy ``` +And then browsing to port 8890 of the cluster. + ![Zeppelin Welcome](./images/zeppelin-welcome.png) -Create a new notebook: +This cluster will not have access to GeoTrellis code until the command -![Zeppelin GeoTrellis Notebook](./images/zeppelin-geotrellis-notebook.png) +```bash +make upload-assembly +``` -Go into interpreters tab: +is issued. Upon doing so, you must configure Zeppelin to recognize this +resource by going to the interpreters tab: ![Zeppelin interpreters](./images/zeppelin-interpreters.png) -Edit spark interpreter, and add GeoTrellis jar into deps (make sure that you uploaded GeoTrellis -jar via `make upload-assembly` into `/tmp/geotrellis-spark-etl-assembly-1.2.0-SNAPSHOT.jar` directory): +Edit the spark interpreter settings by adding the GeoTrellis jar into the +class path (`make upload-assembly` copies the fat jar into, e.g., +`/tmp/geotrellis-spark-etl-assembly-1.2.0-SNAPSHOT.jar`): ![Zeppelin interpreter edit](./images/zeppelin-interpreter-edit.png) -After that GeoTrellis deps can be imported: +You may then create a new notebook: + +![Zeppelin GeoTrellis Notebook](./images/zeppelin-geotrellis-notebook.png) + +wherein GeoTrellis deps can be imported: ![Zeppelin GeoTrellis example](./images/zeppelin-geotrellis-example.png) + +### Creating a Jupyter Scala cluster + +An alternative to Zeppelin that may be more user-friendly will be to create a +cluster with Jupyter notebook installed. To do so, set +`TF_VAR_s3_notebook_bucket` and `TF_VAR_s3_notebook_prefix` to appropriate +values (for example, `geotrellis-work` and `user/notebooks`, respectively). +This will set a location on S3 for persistent storage of notebooks. Then +issue + +```bash +make terraform-init &&\ +make create-jupyter-cluster +``` + +**Note:** long startup times (10 minutes or more) probably indicates that you have +chosen a spot price that is too low. Set `TF_VAR_spot_price` appropriately. + +After completing the startup process, navigate to port 8000 of the new +cluster. You will be greeted with a login prompt. Log in as `user` with the +password `password`: + +![Jupyter login](./images/jupyter-login.png) + +You will then be presented with the file browser where you may open existing +notebooks, or create new ones. To create a new notebook, in the `New` +dropdown in the upper right, choose `Scala`: + +![Create new Jupyter Scala notebook](./images/jupyter-new-notebook.png) + +**Note:** Python 3 is available as an option, but it will not have +GeoTrellis/Spark capabilities. + +In the resulting notebook, you may enter Scala code, but neither GeoTrellis +nor a SparkContext are yet available. As this notebook interface is based on +Ammonite, there is no `build.sbt` to set up imports, and you must use the +Ammonite import syntax. To ease initial setup, an extension was provided to +load in the standard boilerplate code for setting up Spark and GeoTrellis. +Click the star icon in the toolbar to insert three new cells at the top of +your notebook: + +![Insert standard boilerplate](./images/jupyter-insert-boilerplate.png) + +The first cell can be executed as is, which could take a few minutes to +download the required packages. This will create the `implicit val sc: +SparkContext` required by many GeoTrellis operations. + +To import GeoTrellis, choose **one** of the following two cells to execute. +Either execute the code to load a published version of GeoTrellis from the +LocationTech repo, _or_ execute the cell to load the `spark-etl` fat jar made +available on the cluster using the `make upload-assembly` directive on your +local machine. + +After this, it will be possible to import and use GeoTrellis code. Notebooks +saved during this session will persist in the given S3 directory. diff --git a/scripts/emr/images/jupyter-insert-boilerplate.png b/scripts/emr/images/jupyter-insert-boilerplate.png new file mode 100644 index 0000000000000000000000000000000000000000..e7924d7915245fb814fa567e67054ea496cd2cb1 GIT binary patch literal 93649 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 D-Cxir literal 0 HcmV?d00001 diff --git a/scripts/emr/images/jupyter-new-notebook.png b/scripts/emr/images/jupyter-new-notebook.png new file mode 100644 index 0000000000000000000000000000000000000000..2fc768f4adf0a494f361dfd67dda77bf66da2ab5 GIT binary patch literal 25042 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 literal 0 HcmV?d00001 diff --git a/scripts/emr/terraform/boilerplate.js b/scripts/emr/terraform/boilerplate.js new file mode 100644 index 0000000000..e691e26716 --- /dev/null +++ b/scripts/emr/terraform/boilerplate.js @@ -0,0 +1,68 @@ +// file boilerplate/main.js + +define([ + 'base/js/namespace' +], function( + Jupyter +) { + function load_ipython_extension() { + var handler = function () { + var spark_cell = Jupyter.notebook.insert_cell_above('code', 0); + spark_cell.set_text('import $exclude.`org.slf4j:slf4j-log4j12`, $ivy.`org.slf4j:slf4j-nop:1.7.21` // Quiets the logger\n\ +import $profile.`hadoop-2.6`\n\ +import $ivy.`org.apache.spark::spark-sql:2.1.0`\n\ +import $ivy.`org.apache.hadoop:hadoop-aws:2.6.4`\n\ +import $ivy.`org.jupyter-scala::spark:0.4.2`\n\ +\n\ +import org.apache.spark._\n\ +import org.apache.spark.rdd.RDD\n\ +import jupyter.spark.session._\n\ +\n\ +val sparkSession =\n\ + JupyterSparkSession\n\ + .builder()\n\ + .jupyter() // Must be called immediately after builder()\n\ + .master("local[*]")\n\ + .appName("testing")\n\ +.getOrCreate()\n\ +\n\ +implicit val sc = sparkSession.sparkContext'); + var lt_gt_cell = Jupyter.notebook.insert_cell_below('code', 0); + lt_gt_cell.set_text('// Execute to load GeoTrellis from LocationTech repo\n\ +\n\ +import ammonite._, Resolvers._\n\ +\n\ +val locationtech = Resolver.Http(\n\ + "locationtech-releases",\n\ + "https://repo.locationtech.org/content/groups/releases",\n\ + MavenPattern,\n\ + true // Declares whether the organization is dot- (false) or slash- (true) delimited\n\ +)\n\ +\n\ +interp.resolvers() = interp.resolvers() :+ locationtech\n\ +\n\ +import $ivy.`org.locationtech.geotrellis::geotrellis-spark-etl:1.2.0`'); + var local_gt_cell = Jupyter.notebook.insert_cell_below('code', 1); + local_gt_cell.set_text('// Execute to load GeoTrellis from a fat jar uploaded to the local file system\n\ +\n\ +import ammonite._\n\ +interp.load.cp(ops.Path("/tmp/geotrellis-spark-etl-assembly-1.2.0-SNAPSHOT.jar"))'); + }; + + var action = { + icon : 'fa-star-o', // a font-awesome class used on buttons, etc + help : 'Insert standard boilerplate', + help_index : 'zz', + handler : handler + }; + var prefix = 'boilerplate'; + var action_name = 'insert_standard_code'; + + var full_action_name = Jupyter.actions.register(action, action_name, prefix); + Jupyter.toolbar.add_buttons_group([full_action_name]); + } + + return { + load_ipython_extension: load_ipython_extension + }; +}); diff --git a/scripts/emr/terraform/bootstrap.sh b/scripts/emr/terraform/bootstrap.sh index a2efbef24c..4550f8def3 100644 --- a/scripts/emr/terraform/bootstrap.sh +++ b/scripts/emr/terraform/bootstrap.sh @@ -4,6 +4,7 @@ S3_ACCESS_KEY=$1 S3_SECRET_KEY=$2 S3_NOTEBOOK_BUCKET=$3 S3_NOTEBOOK_PREFIX=$4 +EXECUTE_SCRIPT=$5 # Parses a configuration file put in place by EMR to determine the role of this node is_master() { @@ -14,7 +15,7 @@ is_master() { fi } -if is_master; then +if is_master && [ "$EXECUTE_SCRIPT" == "true" ] ; then echo "Installing system software ..." curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash - sudo yum install -y -q nodejs @@ -91,5 +92,13 @@ EOF sudo mv /tmp/jupyter_profile.sh /etc/profile.d . /etc/profile.d/jupyter_profile.sh + # Install boilerplate extension + cd /tmp + mkdir boilerplate + mv bp.js boilerplate/main.js + sudo npm install requirejs + sudo /usr/local/bin/jupyter nbextension install --system boilerplate + sudo /usr/local/bin/jupyter nbextension enable --system boilerplate/main + echo "Running at host $AWS_DNS_NAME" fi diff --git a/scripts/emr/terraform/emr-spark.tf b/scripts/emr/terraform/emr-spark.tf index 8b4e3c33b4..40198706e2 100644 --- a/scripts/emr/terraform/emr-spark.tf +++ b/scripts/emr/terraform/emr-spark.tf @@ -73,10 +73,21 @@ resource "aws_emr_cluster" "emr-spark-cluster" { } } + provisioner "file" { + source = "boilerplate.js" + destination = "/tmp/bp.js" + connection { + type = "ssh" + user = "hadoop" + host = "${aws_emr_cluster.emr-spark-cluster.master_public_dns}" + private_key = "${file("${var.pem_path}")}" + } + } + provisioner "remote-exec" { inline=[ "chmod +x /tmp/bootstrap.sh", - "/tmp/bootstrap.sh ${var.access_key} ${var.secret_key} ${var.s3_notebook_bucket} ${var.s3_notebook_prefix}" + "/tmp/bootstrap.sh ${var.access_key} ${var.secret_key} ${var.s3_notebook_bucket} ${var.s3_notebook_prefix} ${var.install_jupyter}" ] connection { type = "ssh" diff --git a/scripts/emr/terraform/variables.tf.json b/scripts/emr/terraform/variables.tf.json index 7834d9a8a6..44629ebfdd 100644 --- a/scripts/emr/terraform/variables.tf.json +++ b/scripts/emr/terraform/variables.tf.json @@ -1,6 +1,6 @@ -{ +{ "variable": { - "access_key": { + "access_key": { "description": "From your `~/.aws/credentials" }, "secret_key": { @@ -15,6 +15,10 @@ "s3_notebook_prefix": { "description": "The prefix path inside the S3 notebook bucket" }, + "install_jupyter": { + "default": "false", + "description": "Install jupyter-scala during cluster creation" + }, "region": { "default": "us-east-1", "description": "Can be overridden if necessary"