Магия блокнота mount_workspace_dir не работает в EMR Studio

В записной книжке EMR Studio Python3 я выполняю следующее:

%mount_workspace_dir .

И получите следующую ошибку:

UsageError: Line magic function `%mount_workspace_dir` not found.

Я настраиваю кластер EMR для студии, используя шаблон Cloud Formation, доступный для Studio через каталог услуг. Шаблон Cloud Formation указывает сценарий начальной загрузки, который устанавливает s3fs-fuse. В шаблоне также указывается шаг, который необходимо выполнить при запуске кластера и который устанавливает emr-notebooks-magics с помощью pip.

Когда кластер запускается, я выполняю указанную выше команду %mount_workspace_dir и получаю указанную ошибку. Я также попытался перезапустить ядро, используя опцию «Ядро-> Перезапустить ядро» в меню.

Вот шаблон Cloud Formation (с заменой имен подсетей и сегментов):

---
AWSTemplateFormatVersion: 2010-09-09

Parameters:
  SubnetId:
    Type: "String"

Resources:
  EmrCluster:
    Type: AWS::EMR::Cluster
    Properties:
      Applications:
        - Name: Spark
        - Name: Livy
        - Name: JupyterEnterpriseGateway
        - Name: Hive
        - Name: Presto
      EbsRootVolumeSize: '50'
      Name: !Join ['-', ['emr-studio-', !Select [4, !Split ['-', !Select [2, !Split ['/', !Ref AWS::StackId]]]]]]
      JobFlowRole: emr-studio-instance-role
      ServiceRole: EMR_DefaultRole
      ReleaseLabel: "emr-6.3.0"
      VisibleToAllUsers: true
      LogUri:
        Fn::Sub: 's3://<my-bucket>/'
      Instances:
        TerminationProtected: false
        Ec2SubnetId: '<my-subnet>'
        MasterInstanceGroup:
          InstanceCount: 1
          InstanceType: "m5.xlarge"
      BootstrapActions:
      - Name: Auto-Termination
        ScriptBootstrapAction:
          Path: "s3://<my-bucket>/scripts/bootstrap-actions/install-s3fs-fuse.sh"
      Steps:
      - Name: Enable-Notebooks-Magics
        ActionOnFailure: CONTINUE
        HadoopJarStep:
          Jar: command-runner.jar
          Args:
          - "sudo"
          - "/mnt/notebook-env/bin/pip"
          - "install"
          - "emr-notebooks-magics"

Outputs:
  ClusterId:
    Value:
      Ref: EmrCluster
    Description: The ID of the EMR Cluster

Вот содержимое скрипта install-s3fs-fuse.sh:

sudo amazon-linux-extras install epel -y
sudo yum install s3fs-fuse -y

Я также пробовал с EMR 6.5.0.

Есть ли шаг, который я пропустил?

Подозреваю, что проблема в этой строчке в настройках: dst = os.path.expanduser("~/.ipython/profile_default/startup/") где магия добавляется в домашнюю директорию. Шаг выполняется как пользователь hadoop, а записная книжка (я думаю) выполняется как пользователь с именем notebook.

dennislloydjr 18.03.2022 00:35
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, в сценарии setup.py emr-notebooks-magics есть ошибка, из-за которой сценарий 001-setup-emr-notebook-magics.py не копируется в нужное место. Мне нужно было добавить следующие шаги, чтобы заставить его работать:

  Steps:
  - Name: Enable-Notebooks-Magics
    ActionOnFailure: CONTINUE
    HadoopJarStep:
      Jar: command-runner.jar
      Args:
      - "sudo"
      - "/mnt/notebook-env/bin/pip3"
      - "install"
      - "emr-notebooks-magics"
  - Name: Copy-Magics-Script
    ActionOnFailure: CONTINUE
    HadoopJarStep:
      Jar: command-runner.jar
      Args:
      - "sudo"
      - "cp"
      - "/mnt/notebook-env/bin/001-setup-emr-notebook-magics.py"
      - "/home/emr-notebook/.ipython/profile_default/startup/"

Другие вопросы по теме