Могу ли я на самом деле запустить задание Spark на поддельном кластере EMR? - PullRequest
0 голосов
/ 10 марта 2020

Используя moto Мне удалось смоделировать кластер EMR:

with moto.mock_emr():
    client = boto3.client('emr', region_name='us-east-1')
    client.run_job_flow(
        Name='my_cluster',
        Instances={
            'MasterInstanceType': 'c3.xlarge',
            'SlaveInstanceType': 'c3.xlarge',
            'InstanceCount': 3,
            'Placement': {'AvailabilityZone': 'us-east-1a'},
            'KeepJobFlowAliveWhenNoSteps': True,
        },
        VisibleToAllUsers=True,
    )
    summary = client.list_clusters()
    cluster_id = summary["Clusters"][0]["Id"]
    res = client.add_job_flow_steps(
        JobFlowId=cluster_id,
        Steps=[
            {
                "Name": "foo_step",
                "ActionOnFailure": "CONTINUE",
                "HadoopJarStep": {"Args": [], "Jar": "command-runner.jar"},
            }
        ],
    )

Кажется, что добавленный шаг все время находится в состоянии STARTING. Можно ли на самом деле отправить задание Spark в смоделированный кластер и запустить его там?

Я создаю утилиту, которая отправляет задания в кластеры EMR, и я хочу протестировать ее. Я хочу запустить тривиальную работу Spark с помощью этой утилиты, и отсюда вопрос. Обратите внимание, что меня не интересует кластер Spark или проверка правильности отправленного задания Spark. На самом деле меня больше интересует тестирование процесса отправки задания в EMR и изучение результатов (которые в идеале должны быть сохранены в поддельной корзине S3).

...