From 6c235f9914a977e61822207d1cb10a1c2fa26419 Mon Sep 17 00:00:00 2001 From: "Joshua E. Jodesty" Date: Tue, 1 Oct 2019 21:09:22 -0400 Subject: [PATCH] MI5 --- dist/cadCAD-0.0.2-py3-none-any.whl | Bin 36031 -> 36815 bytes dist/cadCAD-0.0.2.tar.gz | Bin 21275 -> 21322 bytes distroduce/bash/bootstrap.sh | 99 +++++---------------- distroduce/bash/gen_bootstrap.sh | 83 +++++++++++++++++ distroduce/bash/launch_cluster.sh | 9 ++ distroduce/bash/spark_submit.sh | 2 + distroduce/dist/distroduce.zip | Bin 14187 -> 20561 bytes distroduce/executor/spark/jobs/__init__.py | 2 +- distroduce/messaging_sim.py | 3 +- 9 files changed, 118 insertions(+), 80 deletions(-) create mode 100644 distroduce/bash/gen_bootstrap.sh create mode 100644 distroduce/bash/launch_cluster.sh create mode 100644 distroduce/bash/spark_submit.sh diff --git a/dist/cadCAD-0.0.2-py3-none-any.whl b/dist/cadCAD-0.0.2-py3-none-any.whl index 8a48f7c76a81c7f40f2e3de0fb400a5872e2e2ac..758253f7776ded54ae5927e261ebabba63c9d924 100644 GIT binary patch delta 6759 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 Vf$#r1)Z0OB{mNx;Iu!=G{{c07Acg<{ delta 20982 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 delta 4296 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 diff --git a/distroduce/executor/spark/jobs/__init__.py b/distroduce/executor/spark/jobs/__init__.py index 5b442f9..9c78941 100644 --- a/distroduce/executor/spark/jobs/__init__.py +++ b/distroduce/executor/spark/jobs/__init__.py @@ -39,6 +39,6 @@ def distributed_produce( {'var_dict': t[4], 'states_lists': t[5], 'Ts': t[6], 'Ns': t[7]} ) for t in val_params ] - results_rdd = spark_context.parallelize(val_params_kv).coalesce(35) + results_rdd = spark_context.parallelize(val_params_kv).coalesce(1) return list(results_rdd.map(lambda x: simulate(*x)).collect()) diff --git a/distroduce/messaging_sim.py b/distroduce/messaging_sim.py index b982000..4134a8e 100644 --- a/distroduce/messaging_sim.py +++ b/distroduce/messaging_sim.py @@ -13,7 +13,7 @@ from distroduce.executor.spark import distributed_produce from distroduce.action_policies import enter_action, message_actions, exit_action from distroduce.state_updates import send_message, count_messages, add_send_time, current_time -# State Update +# State Updates variables = { 'client_a': send_message('client_a'), 'client_b': send_message('client_b'), @@ -76,6 +76,7 @@ if __name__ == "__main__": policy_ops=[lambda a, b: a + b] ) + # parmeterize localhost kafkaConfig = {'send_topic': 'test', 'producer_config': {'bootstrap_servers': 'localhost:9092', 'acks': 'all'}} dist_proc_ctx = ExecutionContext(context=exec_mode.dist_proc, method=distributed_produce, kafka_config=kafkaConfig) run = Executor(exec_context=dist_proc_ctx, configs=configs, spark_context=sc)