#amazon-ec2 #multiprocessing #cluster-computing #distributed-computing #ray
#amazon-ec2 #многопроцессорная обработка #кластерные вычисления #распределенные вычисления #рэй
Вопрос:
Мне невероятно сложно следовать рекомендациям rays по запуску образа docker в кластере лучей для выполнения скрипта python. Я нахожу недостаток простых рабочих примеров.
Итак, у меня есть простейший файл docker:
FROM rayproject/ray
WORKDIR /usr/src/app
COPY . .
CMD ["step_1.py"]
ENTRYPOINT ["python3"]
Я использую это для создания can-образа и отправки его в docker hub. («myimage» — это всего лишь пример)
docker build -t myimage .
docker push myimage
«step_1.py » просто печатает привет каждую секунду в течение 200 секунд:
import time
for i in range(200):
time.sleep(1)
print("hello")
Это мой config.yaml. опять очень просто:
cluster_name: simple-1
min_workers: 0
max_workers: 2
docker:
image: "myimage"
container_name: "my_simple_docker_container"
pull_before_run: True
idle_timeout_minutes: 5
provider:
type: aws
region: eu-west-2
availability_zone: eu-west-2a
file_mounts_sync_continuously: False
auth:
ssh_user: ubuntu
ssh_private_key: /home/user/.ssh/aws_ubuntu_test.pem
head_node:
InstanceType: c5.2xlarge
ImageId: ami-xxxxx826a6b31fd2c
KeyName: aws_ubuntu_test
BlockDeviceMappings:
- DeviceName: /dev/sda1
Ebs:
VolumeSize: 200
worker_nodes:
InstanceType: c5.2xlarge
ImageId: ami-xxxxx826a6b31fd2c
KeyName: aws_ubuntu_test
InstanceMarketOptions:
MarketType: spot
head_setup_commands:
- pip install boto3==1.4.8
worker_setup_commands: []
head_start_ray_commands:
- ray stop
- ulimit -n 65536; ray start --head --port=6379 --object-manager-port=8076 --autoscaling-config=~/ray_bootstrap_config.yaml
worker_start_ray_commands:
- ray stop
- ulimit -n 65536; ray start --address=$RAY_HEAD_IP:6379 --object-manager-port=8076
Я нажал на терминал:
ray up simple1.yaml:
и эта ошибка каждый раз:
shared connection to x.x.xx.119 closed.
"docker cp" requires exactly 2 arguments.
See 'docker cp --help'.
Usage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Copy files/folders between a container and the local filesystem
Shared connection to x.x.xx.119 closed.
Простое добавление образа docker будет работать на любом другом удаленном компьютере просто отлично, только не на лучевом кластере.
Если бы кто-нибудь мог мне помочь, я был бы бесконечно благодарен, и я даже обещаю добавить учебник по medium после моих усилий.
Ответ №1:
Я думаю, что проблема может быть связана с использованием ENTRYPOINT
. Ray ClusterLauncher запускает docker с помощью команды, примерно подобной:
docker run --rm --name <NAME> -d -it --net=host <image_name> bash
Когда я запускал docker build -t myimage .
, а затем запускал docker run --rm -it myimage bash
, Docker выдавал ошибку с:
python3: can't open file 'bash': [Errno 2] No such file or directory
Комментарии:
1. это сработало. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что я не вижу выходных данных контейнера docker. вы знаете, где я могу это найти?