diff --git a/Dockerfile b/Dockerfile index 8c72111..127e656 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,6 @@ FROM ubuntu:14.04 + MAINTAINER Pakhomov Egor RUN apt-get -y update @@ -10,21 +11,40 @@ RUN /bin/echo debconf shared/accepted-oracle-license-v1-1 select true | /usr/bin RUN DEBIAN_FRONTEND=noninteractive apt-get -y install oracle-java7-installer oracle-java7-set-default RUN apt-get -y install curl -RUN curl -s http://d3kbcqa49mib13.cloudfront.net/spark-1.3.0-bin-hadoop2.4.tgz | tar -xz -C /usr/local/ -RUN cd /usr/local && ln -s spark-1.3.0-bin-hadoop2.4 spark +RUN apt-get -y update +RUN apt-get install -y python-numpy python-pandas +RUN apt-get install -y python-pip +RUN apt-get install -y libopenblas-dev liblapack-dev liblapacke-dev libatlas-base-dev libatlas-dev + + +RUN pip install requests +RUN pip install boto + + +RUN curl -s http://d3kbcqa49mib13.cloudfront.net/spark-1.5.1-bin-hadoop2.6.tgz | tar -xz -C /usr/local/ +RUN cd /usr/local && ln -s spark-1.5.1-bin-hadoop2.6 spark ADD scripts/start-master.sh /start-master.sh ADD scripts/start-worker /start-worker.sh + ADD scripts/spark-shell.sh /spark-shell.sh ADD scripts/spark-defaults.conf /spark-defaults.conf ADD scripts/remove_alias.sh /remove_alias.sh ENV SPARK_HOME /usr/local/spark + +RUN cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh +RUN /bin/echo "export SPARK_WORKER_INSTANCES=2" >> $SPARK_HOME/conf/spark-env.sh +RUN ln -s $SPARK_HOME/sbin/start-slaves.sh /start-slaves.sh +RUN ln -s $SPARK_HOME/sbin/start-slave.sh /start-slave.sh + + ENV SPARK_MASTER_OPTS="-Dspark.driver.port=7001 -Dspark.fileserver.port=7002 -Dspark.broadcast.port=7003 -Dspark.replClassServer.port=7004 -Dspark.blockManager.port=7005 -Dspark.executor.port=7006 -Dspark.ui.port=4040 -Dspark.broadcast.factory=org.apache.spark.broadcast.HttpBroadcastFactory" ENV SPARK_WORKER_OPTS="-Dspark.driver.port=7001 -Dspark.fileserver.port=7002 -Dspark.broadcast.port=7003 -Dspark.replClassServer.port=7004 -Dspark.blockManager.port=7005 -Dspark.executor.port=7006 -Dspark.ui.port=4040 -Dspark.broadcast.factory=org.apache.spark.broadcast.HttpBroadcastFactory" ENV SPARK_MASTER_PORT 7077 ENV SPARK_MASTER_WEBUI_PORT 8080 ENV SPARK_WORKER_PORT 8888 -ENV SPARK_WORKER_WEBUI_PORT 8081 +ENV SPARK_WORKER_WEBUI_PORT 9091 + +EXPOSE 8080 7077 8888 9091 4040 7001 7002 7003 7004 7005 7006 -EXPOSE 8080 7077 8888 8081 4040 7001 7002 7003 7004 7005 7006 diff --git a/README.md b/README.md index b9a8a4b..c2bbd52 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,10 @@ To run worker execute: ``` ./start-worker.sh ``` +or start 2 slaves + + $SPARK_HOME/sbin/start-slave.sh $SPARK_MASTER_IP:7077 + You can run multiple workers. Every worker would be able to find master by it's container name "spark_master". To run spark shell against this cluster execute: diff --git a/scripts/spark-shell.sh b/scripts/spark-shell.sh index 86486e3..84bf3f9 100755 --- a/scripts/spark-shell.sh +++ b/scripts/spark-shell.sh @@ -3,7 +3,7 @@ export SPARK_LOCAL_IP=`awk 'NR==1 {print $1}' /etc/hosts` /remove_alias.sh # problems with hostname alias, see https://issues.apache.org/jira/browse/SPARK-6680 cd /usr/local/spark ./bin/spark-shell \ - --master spark://${SPARK_MASTER_PORT_7077_TCP_ADDR}:${SPARK_MASTER_ENV_SPARK_MASTER_PORT} \ + --master spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT} \ -i ${SPARK_LOCAL_IP} \ --properties-file /spark-defaults.conf \ "$@" diff --git a/start-master.sh b/start-master.sh index 60dc74c..5a3a975 100755 --- a/start-master.sh +++ b/start-master.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -docker pull epahomov/docker-spark -docker run -d -t -P --name spark_master epahomov/docker-spark /start-master.sh "$@" +docker pull meyerson/docker-spark +docker run -d -t -P --name spark_master meyerson/docker-spark /start-master.sh "$@" diff --git a/start-worker.sh b/start-worker.sh index 50fbb87..b880c23 100755 --- a/start-worker.sh +++ b/start-worker.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -docker pull epahomov/docker-spark -docker run -d -t -P --link spark_master:spark_master epahomov/docker-spark /start-worker.sh "$@" +docker pull meyerson/docker-spark +docker run -d -t -P --link spark_master:spark_master meyerson/docker-spark /start-worker.sh "$@"