Hello... I am trying to get started with a batch/o...
# troubleshooting
s
Hello... I am trying to get started with a batch/offline ingestion
Copy code
../apache-pinot-0.8.0-bin/bin/pinot-ingestion-job.sh -jobSpecFile ./pinot_ingest_samples/batch_ingestion_no_comment.yaml
Using this file
Copy code
executionFrameworkSpec:
  name: 'standalone'
  segmentGenerationJobRunnerClassName: 'org.apache.pinot.plugin.ingestion.batch.standalone.SegmentGenerationJobRunner'
  segmentTarPushJobRunnerClassName: 'org.apache.pinot.plugin.ingestion.batch.standalone.SegmentTarPushJobRunner'
  segmentUriPushJobRunnerClassName: 'org.apache.pinot.plugin.ingestion.batch.standalone.SegmentUriPushJobRunner'
  segmentMetadataPushJobRunnerClassName: 'org.apache.pinot.plugin.ingestion.batch.standalone.SegmentMetadataPushJobRunner'
jobType: SegmentCreationAndUriPush
inputDirURI: '<s3://data-platform/samples/data/>'
includeFileNamePattern: 'glob:**/*.parquet'
outputDirURI: '<s3://pinot-development/sample/segments>'
overwriteOutput: true
pinotFSSpecs:
  - scheme: s3
    className: org.apache.pinot.plugin.filesystem.S3PinotFS
    configs:
      region: 'us-east-1'
recordReaderSpec:
  dataFormat: 'parquet'
  className: 'org.apache.pinot.plugin.inputformat.parquet.ParquetRecordReader'
tableSpec:
  tableName: 'sample'
  schemaURI: '<http://pinot-controller.pinot.cluster.svc.local:9000/tables/sample/schema>'
  tableConfigURI: '<http://pinot-controller.pinot.cluster.svc.local:9000/tables/sample>'
pinotClusterSpecs:
  - controllerURI: '<http://pinot-controller.pinot.cluster.svc.local:9000>'
pushJobSpec:
  pushAttempts: 2
  pushRetryIntervalMillis: 1000
  segmentUriPrefix: '<s3://pinot-development>'
  segmentUriSuffix: ''
But i get a class not found exception
java.lang.RuntimeException: Failed to create IngestionJobRunner instance for class - org.apache.pinot.plugin.ingestion.batch.standalone.SegmentGenerationJobRunner
I am wondering if there are some Java nooob things i need to do like setting certain env vars, classpaths or something. I expected to just download the binary for pinot, run the script with an input file, and for it to just work but not so.
... or maybe i should use docker locally for testing as well as when deploying agents to K8s and it will make life easier - i can do that too?
r
which JDK version are you using?
there was a regression in 0.8.0 which has been fixed by @Ken Krugler which might relate to this
s
My java version output is
Copy code
java version "11.0.12" 2021-07-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.12+8-LTS-237)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.12+8-LTS-237, mixed mode)
r
thanks, I'm not sure the fix applies then.
s
Ok thanks Richard. Ill try the same thing in docker later - running locally is not something i really need to do except to get that warm fuzzy feeling when it works for the first time
Trailing question; is there another way for me to use the REST interface on the controller to ingest data. Really all i want is some scheduled way to move data from parquet files on S3 to table segments ? I guess this is pretty basic.
k
Hi @Saoirse Amarteifio - I’d suggest asking that question on the #CDRCA57FC channel.
s
Thanks @Ken Krugler for the guidance - will do!