Even easier: skip cloning, and just edit the shell script directly in the binary distribution. Hope that works.
Regards, Donald On Tue, Mar 6, 2018 at 5:41 PM Shane Johnson <sh...@liftiq.com> wrote: > Thanks Mars and Donald. I think this gets me to next steps: > > - Clone PredictionIO 0.12 and adjust the bin/compute-classpath.sh to > have aws-java-sdk-1.7.4 loaded first. > - Create custom binary distribution of PredicionIO 0.12. > - Add config var to point to custom binary distribution. > > This is very helpful. Thank you! > > *Shane Johnson | LIFT IQ* > *Founder | CEO* > > *www.liftiq.com <http://www.liftiq.com/>* or *sh...@liftiq.com > <sh...@liftiq.com>* > mobile: (801) 360-3350 > LinkedIn <https://www.linkedin.com/in/shanewjohnson/> | Twitter > <https://twitter.com/SWaldenJ> | Facebook > <https://www.facebook.com/shane.johnson.71653> > > > > On Tue, Mar 6, 2018 at 4:52 PM, Mars Hall <mars.h...@salesforce.com> > wrote: > >> >> >> On Tue, Mar 6, 2018 at 11:39 PM, Shane Johnson <sh...@liftiq.com> wrote: >> >>> >>> Do you know the version of hadoop-aws.jar and aws-java-sdk.jar that you >>> are using? >>> >>> I do not know what version is being used. Is this something that I can >>> specify or control? I am using the PredictionIO buildpack >>> https://github.com/heroku/predictionio-buildpack. I am *not* specifying >>> these in my build.sbt currently. >>> >> >> The versions are specified in the "bin/common/setup-runtime" script of >> the buildpack: >> >> https://github.com/heroku/predictionio-buildpack/blob/master/bin/common/setup-runtime#L50 >> >> Currently they are: >> >> - hadoop-aws-2.7.3 >> - aws-java-sdk-1.7.4 >> >> If you fork the buildpack, those download URLs (currently hosted in my S3 >> bucket) can be changed. >> >> >> >>> You are also right that you can modify the class path in >>> bin/compute-classpath.sh as a short term fix. The current order is >>> following the output of your target system's `ls`, so the order is not >>> guaranteed like you speak. Right before the last line (echo $CLASSPATH), >>> you can add a line to make sure that the JAR you want to be loaded first is >>> at the very beginning. >>> >>> I believe this would need to be something that is edited on master ( >>> https://github.com/apache/predictionio) as the buildpack leverages it >>> vs. a cloned version of the code that I can edit, am I thinking through >>> that correctly? I may need to circle back with Mars to see if there are any >>> other options to get this to work with Heroku. Is this something that can >>> be committed to master? The aws-java-sdk.jar is the one that we need to >>> load first. >>> >> >> If you build your own custom binary distribution of PredictionIO 0.12 and >> upload it to a publicly accessible URL, then the buildpack can be >> configured to use it by setting config var `PREDICTIONIO_DIST_URL` which is >> used by the same setup script as above: >> >> https://github.com/heroku/predictionio-buildpack/blob/master/bin/common/setup-runtime#L82 >> >> This is how I tested my pre-release builds on Heroku. >> >> -- >> *Mars Hall >> 415-818-7039 <(415)%20818-7039> >> Customer Facing Architect >> Salesforce Platform / Heroku >> San Francisco, California >> > >