On 09/04/2014 09:55 PM, Mozumder, Monir wrote:
I have this 2-node cluster setup, where each node has 4-cores.

             MASTER

     (Worker-on-master)              (Worker-on-node1)

(slaves(master,node1))

SPARK_WORKER_INSTANCES=1

I am trying to understand Spark's parallelize behavior. The sparkPi
example has this code:

     val slices = 8

     val n = 100000 * slices

     val count = spark.parallelize(1 to n, slices).map { i =>

       val x = random * 2 - 1

       val y = random * 2 - 1

       if (x*x + y*y < 1) 1 else 0

     }.reduce(_ + _)

As per documentation: "Spark will run one task for each slice of the
cluster. Typically you want 2-4 slices for each CPU in your cluster". I
set slices to be 8 which means the workingset will be divided among 8
tasks on the cluster, in turn each worker node gets 4 tasks (1:1 per core)

Questions:

    i)  Where can I see task level details? Inside executors I dont see
task breakdown so I can see the effect of slices on the UI.

under http://localhost:4040/stages/ you can drill into individual stages to see task details


    ii) How to  programmatically find the working set size for the map
function above? I assume it is n/slices (100000 above)

it'll be roughly n/slices. you can mapPqrtitions() and check their length


    iii) Are the multiple tasks run by an executor run sequentially or
paralelly in multiple threads?

parallel. have a look at https://spark.apache.org/docs/latest/cluster-overview.html


    iv) Reasoning behind 2-4 slices per CPU.

typically things like "2-4 slices per CPU" are general rules of thumb because tasks are more io bound than not. depending on your workload this might change. it's probably one of the last things you'll want to optimize, first being the transformation ordering in your dag.


    v) I assume ideally we should tune SPARK_WORKER_INSTANCES to
correspond to number of

Bests,

-Monir


best,


matt

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@spark.apache.org
For additional commands, e-mail: user-h...@spark.apache.org

Reply via email to