fly*_*zai 10 python amazon-s3 amazon-emr apache-spark pyspark
我正在创建一个解析大量服务器数据的工作,然后将其上传到Redshift数据库中.
我的工作流程如下:
dataframes或spark sql来解析数据并写回S3我已经开始讨论如何自动执行此操作,以便我的进程旋转EMR集群,引导正确的安装程序,并运行我的python脚本,其中包含用于解析和编写的代码.
有没有人有任何可以与我分享的示例,教程或经验,以帮助我学习如何做到这一点?
ksi*_*ndi 23
看一下boto3 EMR文档来创建集群.您基本上必须调用run_job_flow并创建运行所需程序的步骤.
import boto3
client = boto3.client('emr', region_name='us-east-1')
S3_BUCKET = 'MyS3Bucket'
S3_KEY = 'spark/main.py'
S3_URI = 's3://{bucket}/{key}'.format(bucket=S3_BUCKET, key=S3_KEY)
# upload file to an S3 bucket
s3 = boto3.resource('s3')
s3.meta.client.upload_file("myfile.py", S3_BUCKET, S3_KEY)
response = client.run_job_flow(
Name="My Spark Cluster",
ReleaseLabel='emr-4.6.0',
Instances={
'MasterInstanceType': 'm4.xlarge',
'SlaveInstanceType': 'm4.xlarge',
'InstanceCount': 4,
'KeepJobFlowAliveWhenNoSteps': True,
'TerminationProtected': False,
},
Applications=[
{
'Name': 'Spark'
}
],
BootstrapActions=[
{
'Name': 'Maximize Spark Default Config',
'ScriptBootstrapAction': {
'Path': 's3://support.elasticmapreduce/spark/maximize-spark-default-config',
}
},
],
Steps=[
{
'Name': 'Setup Debugging',
'ActionOnFailure': 'TERMINATE_CLUSTER',
'HadoopJarStep': {
'Jar': 'command-runner.jar',
'Args': ['state-pusher-script']
}
},
{
'Name': 'setup - copy files',
'ActionOnFailure': 'CANCEL_AND_WAIT',
'HadoopJarStep': {
'Jar': 'command-runner.jar',
'Args': ['aws', 's3', 'cp', S3_URI, '/home/hadoop/']
}
},
{
'Name': 'Run Spark',
'ActionOnFailure': 'CANCEL_AND_WAIT',
'HadoopJarStep': {
'Jar': 'command-runner.jar',
'Args': ['spark-submit', '/home/hadoop/main.py']
}
}
],
VisibleToAllUsers=True,
JobFlowRole='EMR_EC2_DefaultRole',
ServiceRole='EMR_DefaultRole'
)
Run Code Online (Sandbox Code Playgroud)
如果您知道作业流ID,还可以向正在运行的集群添加步骤:
job_flow_id = response['JobFlowId']
print("Job flow ID:", job_flow_id)
step_response = client.add_job_flow_steps(JobFlowId=job_flow_id, Steps=SomeMoreSteps)
step_ids = step_response['StepIds']
print("Step IDs:", step_ids)
Run Code Online (Sandbox Code Playgroud)
有关更多配置,请查看sparksteps.
| 归档时间: |
|
| 查看次数: |
9645 次 |
| 最近记录: |