Я пытаюсь запустить экземпляр на Amazon EC2 с помощью питона MRJob Вот простой питон скрипт, чтобы найти наиболее часто используемые слова в текстовом файлеmrjob InstanceProfile требуется для создания кластера
from mrjob.job import MRJob
class MRWordFrequencyCount(MRJob):
def mapper(self, _, line):
yield "chars", len(line)
yield "words", len(line.split())
yield "lines", 1
def reducer(self, key, values):
yield key, sum(values)
if __name__ == '__main__':
MRWordFrequencyCount.run()
Вот мой файл mrjob.conf:
runners:
emr:
aws_access_key_id: XXXXXXXXXXXXXXXXXX
aws_secret_access_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
aws_region: us-west-1
ec2_key_pair: EMR
ec2_key_pair_file: ~/EMR.pem # ~/ and $ENV_VARS allowed here
ssh_tunnel_to_job_tracker: true
При запуске сценария:
python MRMostUsedWord.py -r emr romeo.txt > most_used_word.out
I получите следующую ошибку:
<Error>
<Type>Sender</Type>
<Code>ValidationError</Code>
<Message>InstanceProfile is required for creating cluster</Message>
</Error>
<RequestId>4d1a1e3b-e665-11e4-b9e1-a557982e1081</RequestId>
</ErrorResponse>
У вас есть идеи, почему я получаю эту ошибку?
Я также создание профилей экземпляра с помощью команды:
aws emr create-default-roles
Может нужен mrjob.conf файл должен быть изменен? Но я не знаю, как это сделать?