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