For the past couple of days, my Snowplow script has been failing. It hangs up for about 38 minutes and then terminates saying there was an internal error. The script uses EC2 Classic. No changes have been made to the environment. I experimented with skipping all but one step and it is the EMR step that is causing the issue. However, if only the EMR step is used and the rest skipped, instead of hanging up for 38 minutes, the command finishes after a couple of seconds saying “INFO – : Completed successfully.” Has anyone experienced this?
Here is the script:
#!/bin/bash
clear
# use jruby environment
# https://rvm.io/integration/cron#loading-rvm-environment-files-in-shell-scripts
source /usr/local/rvm/environments/jruby-1.7.19
echo "enrichment kick-off"
cd /home/ec2-user/snowplow/3-enrich/emr-etl-runner
bundle exec bin/snowplow-emr-etl-runner --config config/sp.yml --resolver config/resolver.json --enrichments ../config/enrichments
Here is the sp.yml file:
aws:
access_key_id: Aaxc
secret_access_key: asdf
s3:
region: us-east-1
buckets:
assets: s3://snowplow-hosted-assets
log: s3://rrsnowplow-log/emr
raw:
in:
- s3://elasticbeanstalk-us-east-1-69/resources/environments/logs/publish/e-p/
- s3://elasticbeanstalk-us-east-1-69/resources/environments/logs/publish/e-i /
- s3://elasticbeanstalk-us-east-1-69/resources/environments/logs/publish/e-9/
processing: s3://rrsnowplow-etl/processing
archive: s3://rrsnowplow-archive/raw
enriched:
good: s3://rrsnowplow-data/enriched/good
bad: s3://rrsnowplow-data/enriched/bad
errors: s3://rrsnowplow-data/enriched/errors
archive: s3://rrsnowplow-storage-archive/enriched/good
shredded:
good: s3://rrsnowplow-data/shredded/good
bad: s3://rrsnowplow-data/shredded/bad
errors: s3://rrsnowplow-data/shreddederrors
archive: s3://rrsnowplow-storage-archive/shredded/good
jsonpath_assets:
emr:
ami_version: 3.6.0
region: us-east-1
placement: us-east-1c
ec2_subnet_id:
jobflow_role: EMR_EC2_DefaultRole
service_role: EMR_DefaultRole
ec2_key_name: Key_Name
software:
hbase: # not used for ami_version 3.6.0
lingual: # not used for ami_version 3.6.0
jobflow:
master_instance_type: m1.medium
core_instance_count: 3
core_instance_type: c3.xlarge
task_instance_count: 0
task_instance_type: m1.medium
task_instance_bid: 0.015
bootstrap_failure_tries: 3
collectors:
format: clj-tomcat
enrich:
job_name: Snowplow ETL
versions:
hadoop_enrich: 1.0.0
hadoop_shred: 0.4.0
continue_on_unexpected_error: false
output_compression: NONE
storage:
download:
folder:
targets:
- name: RR Snowplow Events
type: redshift
host: snowplow.redshift.amazonaws.com
database: db
port: 5439
table: atomic.table
username: adm
password: pw
maxerror: 10
comprows: 200000
monitoring:
tags: {}
logging:
level: INFO
snowplow: