[英]Cannot run MapReduce job on AWS EMR Spark application
我正在嘗試從mrjob運行這個關於在 AWS EMR 上運行字數統計 MapReduce 作業的示例。
這是來自mrjob
字數代碼示例:
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: <my_key_id>
aws_secret_access_key: <my_access_key>
region: ap-southeast-1
subnet: subnet-9a2f90fc
ec2_key_pair: EMR
ec2_key_pair_file: ~/.ssh/EMR.pem
ssh_tunnel: true
運行命令:
python word_count.py -r emr --cluster-id=j-CLUSTER_ID readme.rst --conf-path mrjob.conf
我的問題是,如果我選擇集群的 Application 是Core Hadoop
,我可以運行這個例子,我不能用Spark
應用程序選項運行它。
這是使用 Spark EMR 集群運行時的錯誤:
Waiting for Step 1 of 1 (s-xxx) to complete...
PENDING (cluster is RUNNING: Running step)
FAILED
Cluster j-CLUSTER_ID is WAITING: Cluster ready after last step failed.
我想用Spark
運行它,因為我的應用程序涉及一些 Spark 代碼和一些 MapReduce 代碼。
我該如何解決這個問題?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.