org/apache/commons/lang3/exception/ExceptionUtils (java.lang.NoClassDefFoundError) ?

21 views
Skip to first unread message

范文剑

unread,
Nov 15, 2023, 2:42:45 AM11/15/23
to actionml-user
I looked through https://groups.google.com/g/actionml-user/c/tItDrTqrv8k/m/2v8wOPeNCQAJ

However it is not the same situation to me.

this is my way
at first, I run this one line code 
$ docker run -it -p 8000:8000 -p 7070:7070 steveny/predictionio:0.12.0 /bin/bash
everything works well, onley one thing, when I use crontab to timely retrain and redeloy. it works well at the first 10 round. then it raise error. I searched by google that, it is No.120 push that the es connection is gone. https://github.com/apache/predictionio/commit/3451836584e16f324dc90f973846618e6a5bc3c9

Then I turned to a higher verson of predictionio. and following the steps of https://predictionio.apache.org/install/install-sourcecode/. download the binary zip of proecitonio14, extracted it into my docker container which I built from openjdk:8

as well vendor of Spark, Elasticsearch, HBase, strictly follow the steps of that page.
my pio-env.sh as follow:

SPARK_HOME=$PIO_HOME/vendors/spark-2.4.0-bin-hadoop2.7

ES_CONF_DIR=$PIO_HOME/vendors/elasticsearch-5.6.9
HBASE_CONF_DIR=$PIO_HOME/vendors/hbase-1.2.6/conf
PIO_FS_BASEDIR=$HOME/.pio_store
PIO_FS_ENGINESDIR=$PIO_FS_BASEDIR/engines
PIO_FS_TMPDIR=$PIO_FS_BASEDIR/tmp

PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta
PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=ELASTICSEARCH

PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event
PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=HBASE

PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model
PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=LOCALFS

PIO_STORAGE_SOURCES_ELASTICSEARCH_TYPE=elasticsearch
PIO_STORAGE_SOURCES_ELASTICSEARCH_CLUSTERNAME=predictionio
PIO_STORAGE_SOURCES_ELASTICSEARCH_HOSTS=localhost
PIO_STORAGE_SOURCES_ELASTICSEARCH_PORTS=9200
PIO_STORAGE_SOURCES_ELASTICSEARCH_HOME=$PIO_HOME/vendors/elasticsearch-5.6.9

PIO_STORAGE_SOURCES_HBASE_TYPE=hbase
PIO_STORAGE_SOURCES_HBASE_HOME=$PIO_HOME/vendors/hbase-1.2.6

when I run command /path/bin/pio-start-all, eveythign seems well.

Starting Elasticsearch...
Starting HBase...
starting master, logging to /PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/bin/../logs/hbase--master-78a14dac9659.out
OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
Waiting 10 seconds for Storage Repositories to fully initialize...
Starting PredictionIO Event Server...

then jps -l,
98 org.elasticsearch.bootstrap.Elasticsearch
599 org.apache.predictionio.tools.console.Console
219 org.apache.hadoop.hbase.master.HMaster
699 sun.tools.jps.Jps

The error shows when I run /opt/PredictionIO-0.14.0/bin/pio status

pio@b3d58a214ecd:/opt$ /opt/PredictionIO-0.14.0/bin/pio status
[INFO] [Management$] Inspecting PredictionIO...
[INFO] [Management$] PredictionIO 0.14.0 is installed at /opt/PredictionIO-0.14.0
[INFO] [Management$] Inspecting Apache Spark...
[INFO] [Management$] Apache Spark is installed at /opt/PredictionIO-0.14.0/vendors/spark-2.4.0-bin-hadoop2.7
[INFO] [Management$] Apache Spark 2.4.0 detected (meets minimum requirement of 2.0.2)
[INFO] [Management$] Inspecting storage backend connections...
[ERROR] [Storage$] LOCALFS is not a configured storage source.
[INFO] [Storage$] Verifying Meta Data Backend (Source: ELASTICSEARCH)...
[INFO] [Storage$] Verifying Model Data Backend (Source: )...
[ERROR] [Management$] Unable to connect to all storage backends successfully.
The following shows the error message from the storage backend.

org/apache/commons/lang3/exception/ExceptionUtils (java.lang.NoClassDefFoundError)

Dumping configuration of initialized storage backend sources.
Please make sure they are correct.

Source Name: ELASTICSEARCH; Type: elasticsearch; Configuration: HOME -> /opt/PredictionIO-0.14.0/vendors/elasticsearch-5.6.9, HOSTS -> localhost, PORTS -> 9200, CLUSTERNAME -> predictionio, TYPE -> elasticsearch

I run curl -XGET 'http://localhost:9200/'
pio@b3d58a214ecd:/opt$ curl -XGET 'http://localhost:9200/'
{
  "name" : "xsrroXe",
  "cluster_name" : "predictionio",
  "cluster_uuid" : "tn7Pb7YQQzmH6lUdBZblcA",
  "version" : {
    "number" : "5.6.9",
    "build_hash" : "877a590",
    "build_date" : "2018-04-12T16:25:14.838Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}


I downloaded https://dlcdn.apache.org//commons/lang/binaries/commons-lang3-3.13.0-bin.tar.gz and extract and pick commons-lang3-3.0.jar to PredictionIO-0.14.0/lib
The error org/apache/commons/lang3/exception/ExceptionUtils (java.lang.NoClassDefFoundError) still there. seems nothing work for it.

The above is my question, anybody can help me with?

Pat Ferrel

unread,
Nov 15, 2023, 10:03:15 AM11/15/23
to 范文剑, actionml-user
We don’t support the old deprecated PredictionIO here. We have switched to Harness as the ML server several years ago. PredictionIO has been retired at Apache and is now in the “attic” which means it is archived.

I am not aware of anyone being able to run PredictionIO in a docker container, especially when running Spark too.

Spark is itself difficult to get working inside containers. We at ActionML were able to create a custom version of Spark that runs in a container under Kubetnetes but this is not supported here. You can find out in the GitHub and docker repositories but is too complicated for me to support here.

If I were you and wanted to get Harness with the Universal Recommender running in docker I’d look here: https://github.com/actionml/harness-docker-compose some docs about it are here: https://actionml.com/docs/harness_container_guide

It has been a long time since I’ve used that and think it has an encapsulated Spark inside the Harness container. This too is provided as-is. 



--
You received this message because you are subscribed to the Google Groups "actionml-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to actionml-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/actionml-user/1009db60-1ca1-45b7-a1e7-fcea4ebc0b75n%40googlegroups.com.

Pat Ferrel

unread,
Nov 30, 2023, 7:43:04 PM11/30/23
to actionml-user
What engine do you expect to use? If its the Universal Recommender I suggest you install Harness instead of PredictionIO.. It is far ahead in terms of features, performance, and versions of components supported.
Reply all
Reply to author
Forward
0 new messages