-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtrigger_spark_job.sh
More file actions
executable file
·81 lines (74 loc) · 2.11 KB
/
Copy pathtrigger_spark_job.sh
File metadata and controls
executable file
·81 lines (74 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/bash
# Spark Job Trigger Script
# This script triggers the ML Spark job to preprocess data and train the model
set -e
echo "🔥 Triggering Spark Job..."
echo "=========================="
# Get AWS account ID and region from environment or set defaults
AWS_ACCOUNT_ID=${AWS_ACCOUNT_ID:-$(aws sts get-caller-identity --query Account --output text)}
AWS_REGION=${AWS_REGION:-us-east-2}
echo "📊 Configuration:"
echo " AWS Account ID: $AWS_ACCOUNT_ID"
echo " AWS Region: $AWS_REGION"
echo " S3 Bucket: ml-crash-course-data"
echo " Dataset: House_Rent_Dataset.csv"
# Create the Spark job with proper image URI and AWS credentials
cat <<EOF | kubectl apply -f -
apiVersion: batch/v1
kind: Job
metadata:
name: ml-spark-job-$(date +%s)
labels:
app: ml-spark-job
spec:
template:
metadata:
labels:
app: ml-spark-job
spec:
serviceAccountName: spark-sa
containers:
- name: spark-job
image: $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/ml-crash-course-spark:latest
env:
- name: S3_BUCKET
value: "ml-crash-course-data"
- name: S3_KEY
value: "House_Rent_Dataset.csv"
- name: AWS_REGION
value: "$AWS_REGION"
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: aws-credentials
key: access-key-id
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: aws-credentials
key: secret-access-key
resources:
requests:
memory: "1Gi"
cpu: "500m"
limits:
memory: "2Gi"
cpu: "1000m"
restartPolicy: Never
backoffLimit: 3
EOF
echo ""
echo "✅ Spark job created successfully!"
echo ""
echo "📋 Monitoring Commands:"
echo " # Check job status"
echo " kubectl get jobs"
echo ""
echo " # View job logs"
echo " kubectl logs job/ml-spark-job-$(date +%s)"
echo ""
echo " # Monitor job progress"
echo " kubectl describe job ml-spark-job-$(date +%s)"
echo ""
echo " # Check pod status"
echo " kubectl get pods -l app=ml-spark-job"