Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can not save Pipeline model in Spark Apache 3.2.0 with xgboost4j-spark_2.12-1.3.1 -1.4.1 - 1.5; they are not compatible with Spark 3.2.0 #7384

Closed
FelixDuong opened this issue Oct 30, 2021 · 15 comments

Comments

@FelixDuong
Copy link

Dear all,

I have met these errors when training model . I searched and found that the errors already happened with some previous version xgboost4j and xgboost4j-spark.
I hope to find down a solution which can run with Spark 3.2 ( it was improved BLAS performance). Thanks all guys. !!!

java.lang.NoSuchMethodError: 'org.json4s.JsonDSL$JsonAssoc org.json4s.JsonDSL$.pair2Assoc(scala.Tuple2, scala.Function1)' at ml.dmlc.xgboost4j.scala.spark.params.DefaultXGBoostParamsWriter$.getMetadataToSave(DefaultXGBoostParamsWriter.scala:75) at ml.dmlc.xgboost4j.scala.spark.params.DefaultXGBoostParamsWriter$.saveMetadata(DefaultXGBoostParamsWriter.scala:51) at ml.dmlc.xgboost4j.scala.spark.XGBoostRegressionModel$XGBoostRegressionModelWriter.saveImpl(XGBoostRegressor.scala:454) at org.apache.spark.ml.util.MLWriter.save(ReadWrite.scala:168) at org.apache.spark.ml.Pipeline$SharedReadWrite$.$anonfun$saveImpl$5(Pipeline.scala:257) at org.apache.spark.ml.MLEvents.withSaveInstanceEvent(events.scala:174) at org.apache.spark.ml.MLEvents.withSaveInstanceEvent$(events.scala:169) at org.apache.spark.ml.util.Instrumentation.withSaveInstanceEvent(Instrumentation.scala:42) at org.apache.spark.ml.Pipeline$SharedReadWrite$.$anonfun$saveImpl$4(Pipeline.scala:257) at org.apache.spark.ml.Pipeline$SharedReadWrite$.$anonfun$saveImpl$4$adapted(Pipeline.scala:254) at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36) at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33) at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:198) at org.apache.spark.ml.Pipeline$SharedReadWrite$.$anonfun$saveImpl$1(Pipeline.scala:254) at org.apache.spark.ml.Pipeline$SharedReadWrite$.$anonfun$saveImpl$1$adapted(Pipeline.scala:247) at org.apache.spark.ml.util.Instrumentation$.$anonfun$instrumented$1(Instrumentation.scala:191) at scala.util.Try$.apply(Try.scala:213) at org.apache.spark.ml.util.Instrumentation$.instrumented(Instrumentation.scala:191) at org.apache.spark.ml.Pipeline$SharedReadWrite$.saveImpl(Pipeline.scala:247) at org.apache.spark.ml.PipelineModel$PipelineModelWriter.saveImpl(Pipeline.scala:346) at org.apache.spark.ml.util.MLWriter.save(ReadWrite.scala:168) at org.apache.spark.ml.PipelineModel$PipelineModelWriter.super$save(Pipeline.scala:344) at org.apache.spark.ml.PipelineModel$PipelineModelWriter.$anonfun$save$4(Pipeline.scala:344) at org.apache.spark.ml.MLEvents.withSaveInstanceEvent(events.scala:174) at org.apache.spark.ml.MLEvents.withSaveInstanceEvent$(events.scala:169) at org.apache.spark.ml.util.Instrumentation.withSaveInstanceEvent(Instrumentation.scala:42) at org.apache.spark.ml.PipelineModel$PipelineModelWriter.$anonfun$save$3(Pipeline.scala:344) at org.apache.spark.ml.PipelineModel$PipelineModelWriter.$anonfun$save$3$adapted(Pipeline.scala:344) at org.apache.spark.ml.util.Instrumentation$.$anonfun$instrumented$1(Instrumentation.scala:191) at scala.util.Try$.apply(Try.scala:213) at org.apache.spark.ml.util.Instrumentation$.instrumented(Instrumentation.scala:191) at org.apache.spark.ml.PipelineModel$PipelineModelWriter.save(Pipeline.scala:344) ... 75 elided

@trivialfis
Copy link
Member

Could you please try nightly? Seems to be fixed by #7376

@FelixDuong
Copy link
Author

Could you please try nightly? Seems to be fixed by #7376

Thanks guy. But anyway, I try to find nightly build version 1.5.1 at aws but there is nothing 😢.

@trivialfis
Copy link
Member

Can you visit this link https://xgboost.readthedocs.io/en/latest/install.html#id4 and see if it helps?

@trivialfis
Copy link
Member

Feel free to close the issue if it's fixed.

@FelixDuong
Copy link
Author

FelixDuong commented Oct 31, 2021

I searched in Maven repository at https://s3-us-west-2.amazonaws.com/xgboost-maven-repo/list.html, and failed with the nightly version 1.5.0 "xgboost4j_2.12-1.5.0-20210927.120858-111.jar" - it was built on 27 Sep 2021 , not work with Spark 3.2. And I test with 1.6.0 SNAPSHOT :xgboost4j-spark_2.12-1.6.0-20211030.101815-26.jar , I encountered the errors :
21/10/31 09:37:11 ERROR XGBoostSpark: the job was aborted due to ml.dmlc.xgboost4j.java.XGBoostError: XGBoostModel training failed --- >>> FAILED at ml.dmlc.xgboost4j.scala.spark.XGBoost$.postTrackerReturnProcessing(XGBoost.scala:750) at ml.dmlc.xgboost4j.scala.spark.XGBoost$.trainDistributed(XGBoost.scala:624) at ml.dmlc.xgboost4j.scala.spark.XGBoostRegressor.train(XGBoostRegressor.scala:194) at ml.dmlc.xgboost4j.scala.spark.XGBoostRegressor.train(XGBoostRegressor.scala:42) at org.apache.spark.ml.Predictor.fit(Predictor.scala:151) at org.apache.spark.ml.Predictor.fit(Predictor.scala:115) at org.apache.spark.ml.Pipeline.$anonfun$fit$5(Pipeline.scala:151) at org.apache.spark.ml.MLEvents.withFitEvent(events.scala:130) at org.apache.spark.ml.MLEvents.withFitEvent$(events.scala:123) at org.apache.spark.ml.util.Instrumentation.withFitEvent(Instrumentation.scala:42) at org.apache.spark.ml.Pipeline.$anonfun$fit$4(Pipeline.scala:151) at scala.collection.Iterator.foreach(Iterator.scala:943) at scala.collection.Iterator.foreach$(Iterator.scala:943) at scala.collection.AbstractIterator.foreach(Iterator.scala:1431) at org.apache.spark.ml.Pipeline.$anonfun$fit$2(Pipeline.scala:147) at org.apache.spark.ml.MLEvents.withFitEvent(events.scala:130) at org.apache.spark.ml.MLEvents.withFitEvent$(events.scala:123) at org.apache.spark.ml.util.Instrumentation.withFitEvent(Instrumentation.scala:42) at org.apache.spark.ml.Pipeline.$anonfun$fit$1(Pipeline.scala:133) at org.apache.spark.ml.util.Instrumentation$.$anonfun$instrumented$1(Instrumentation.scala:191) at scala.util.Try$.apply(Try.scala:213) at org.apache.spark.ml.util.Instrumentation$.instrumented(Instrumentation.scala:191) at org.apache.spark.ml.Pipeline.fit(Pipeline.scala:133) at $line65.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(BehaviorCF.scala:37) at $line65.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(BehaviorCF.scala:41) at $line65.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(BehaviorCF.scala:43) at $line65.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(BehaviorCF.scala:45) at $line65.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(BehaviorCF.scala:47) at $line65.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(BehaviorCF.scala:49) at $line65.$read$$iw$$iw$$iw$$iw$$iw$$iw.<init>(BehaviorCF.scala:51) at $line65.$read$$iw$$iw$$iw$$iw$$iw.<init>(BehaviorCF.scala:53) at $line65.$read$$iw$$iw$$iw$$iw.<init>(BehaviorCF.scala:55) at $line65.$read$$iw$$iw$$iw.<init>(BehaviorCF.scala:57) at $line65.$read$$iw$$iw.<init>(BehaviorCF.scala:59) at $line65.$read$$iw.<init>(BehaviorCF.scala:61) at $line65.$read.<init>(BehaviorCF.scala:63) at $line65.$read$.<init>(BehaviorCF.scala:67) at $line65.$read$.<clinit>(BehaviorCF.scala) at $line65.$eval$.$print$lzycompute(BehaviorCF.scala:7) at $line65.$eval$.$print(BehaviorCF.scala:6) at $line65.$eval.$print(BehaviorCF.scala) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:747) at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:1020) at scala.tools.nsc.interpreter.IMain.$anonfun$interpret$1(IMain.scala:568) at scala.reflect.internal.util.ScalaClassLoader.asContext(ScalaClassLoader.scala:36) at scala.reflect.internal.util.ScalaClassLoader.asContext$(ScalaClassLoader.scala:116) at scala.reflect.internal.util.AbstractFileClassLoader.asContext(AbstractFileClassLoader.scala:41) at scala.tools.nsc.interpreter.IMain.loadAndRunReq$1(IMain.scala:567) at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:594) at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:564) at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:865) at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:733) at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:435) at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:456) at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:451) at scala.tools.nsc.interpreter.ILoop.$anonfun$interpretAllFrom$3(ILoop.scala:468) at scala.reflect.io.Streamable$Chars.applyReader(Streamable.scala:118) at scala.reflect.io.Streamable$Chars.applyReader$(Streamable.scala:116) at scala.reflect.io.File.applyReader(File.scala:50) at scala.tools.nsc.interpreter.ILoop.$anonfun$interpretAllFrom$2(ILoop.scala:464) at scala.tools.nsc.interpreter.ILoop.savingReplayStack(ILoop.scala:97) at scala.tools.nsc.interpreter.ILoop.$anonfun$interpretAllFrom$1(ILoop.scala:464) at scala.tools.nsc.interpreter.ILoop.savingReader(ILoop.scala:102) at scala.tools.nsc.interpreter.ILoop.interpretAllFrom(ILoop.scala:463) at scala.tools.nsc.interpreter.ILoop.$anonfun$loadCommand$1(ILoop.scala:629) at scala.tools.nsc.interpreter.ILoop.$anonfun$withFile$1(ILoop.scala:622) at scala.tools.nsc.interpreter.IMain.withLabel(IMain.scala:111) at scala.tools.nsc.interpreter.ILoop.withFile(ILoop.scala:621) at scala.tools.nsc.interpreter.ILoop.run$3(ILoop.scala:628) at scala.tools.nsc.interpreter.ILoop.loadCommand(ILoop.scala:635) at scala.tools.nsc.interpreter.ILoop.$anonfun$standardCommands$9(ILoop.scala:194) at scala.tools.nsc.interpreter.LoopCommands$LineCmd.apply(LoopCommands.scala:161) at scala.tools.nsc.interpreter.LoopCommands.colonCommand(LoopCommands.scala:121) at scala.tools.nsc.interpreter.LoopCommands.colonCommand$(LoopCommands.scala:119) at scala.tools.nsc.interpreter.ILoop.colonCommand(ILoop.scala:48) at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:731) at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:435) at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:456) at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:239) at org.apache.spark.repl.Main$.doMain(Main.scala:78) at org.apache.spark.repl.Main$.main(Main.scala:58) at org.apache.spark.repl.Main.main(Main.scala) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52) at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:955) at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180) at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203) at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90) at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1043) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1052) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
`
Last night, I re-built jvm-package from github/dlmc/xgboost and met the same errors the SNAPSHOT 1.6.0 -...-26 above. I update infos to all guys.

@FelixDuong
Copy link
Author

This morning, I re-build jvm-package in Docker , I encounter the errors:

[DEBUG] Executing command line: [python, create_jni.py, --log-capi-invocation, OFF] File "create_jni.py", line 125 run(f'"{sys.executable}" mapfeat.py') ^ SyntaxError: invalid syntax [ERROR] Command execution failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:404) at org.apache.commons.exec.DefaultExecutor.execute (DefaultExecutor.java:166) at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:804) at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:751) at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:313) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289) at org.apache.maven.cli.MavenCli.main (MavenCli.java:193) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:566) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary for XGBoost JVM Package 1.6.0-SNAPSHOT: [INFO] [INFO] XGBoost JVM Package ................................ SUCCESS [ 1.976 s] [INFO] xgboost4j_2.12 ..................................... FAILURE [ 1.370 s] [INFO] xgboost4j-spark_2.12 ............................... SKIPPED [INFO] xgboost4j-flink_2.12 ............................... SKIPPED [INFO] xgboost4j-example_2.12 ............................. SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.748 s [INFO] Finished at: 2021-10-31T11:15:51+07:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:exec (native) on project xgboost4j_2.12: Command execution failed.: Process exited with an error: 1 (Exit value: 1) -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:exec (native) on project xgboost4j_2.12: Command execution failed. at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289) at org.apache.maven.cli.MavenCli.main (MavenCli.java:193) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:566) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) Caused by: org.apache.maven.plugin.MojoExecutionException: Command execution failed. at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:326) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289) at org.apache.maven.cli.MavenCli.main (MavenCli.java:193) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:566) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) Caused by: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:404) at org.apache.commons.exec.DefaultExecutor.execute (DefaultExecutor.java:166) at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:804) at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:751) at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:313) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289) at org.apache.maven.cli.MavenCli.main (MavenCli.java:193) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:566) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) [ERROR]

@wbo4958
Copy link
Contributor

wbo4958 commented Nov 1, 2021

So @FelixDuong, you failed to build xgboost 1.6.0 snapshot?

@FelixDuong
Copy link
Author

Yeah, I built successfully at the first time in VMWare Ubuntu, and failed at the second time in Docker Ubuntu. Maybe, I lacked experience in combining OpenBlas with Jni -Java (config).

@trivialfis
Copy link
Member

trivialfis commented Nov 1, 2021

OpenBlas

Hmm? XGBoost doesn't use openblas.

Executing command line: [python, create_jni.py, --log-capi-invocation, OFF] File "create_jni.py", line 125 run(f'"{sys.executable}" mapfeat.py') ^ SyntaxError: invalid syntax [ERROR]

From your log, I think you have a weird Python installation (like 2.7) in your docker environment. Could you please verify that?

@FelixDuong
Copy link
Author

FelixDuong commented Nov 2, 2021

Yeah, in running Xgboost on Spark , RabbitMQ uses python2.7 to run ( I was paintful before realizing that). so when early I just has just used Python 3.8 ,and the errors appeared at that step when fail connecting to workers until when I installed Python 2.7 --> the errors have gone ( in Spark 3.1.2 and Xgboost4j-spark 1.4.1 and 1.3.1 was ok, in Docker Ubuntu 20.04 enviroment) . So, when upgrading to Spark 3.2.0 Python 2.7 & 3.8 were still in system.

@trivialfis
Copy link
Member

That's an unexpected result. I think it's going to work with Python 3.8 and stop working when it's Python 2.7. I'm using Python 3.8.

@trivialfis
Copy link
Member

I pushed a PR for better shebang in the python data preprocessing script. #7389 . For JVM package those scripts are only used in testing.

@trivialfis
Copy link
Member

Closing. We have merged the fix for compatibility, doc update, and shebang improvement. Should be working now. Feel free to reopen if the issue remains in your test.

@LinzeSu
Copy link

LinzeSu commented Sep 27, 2023

Hi,
I got the similar problem when building the latest jvm packages on centos. Is this related to OS?

$ mvn -DskipTests=true package
...
[INFO] --- exec:3.1.0:exec (native) @ xgboost4j_2.13 ---
  File "create_jni.py", line 125
    run(f'"{sys.executable}" mapfeat.py')
                                       ^
SyntaxError: invalid syntax
[ERROR] Command execution failed.
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
    at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:404)
...

The python version is:

$ python --version
Python 3.6.8

@trivialfis
Copy link
Member

Hi, the minimum required version is 3.8.

We are working to remove the Python dependency, but will take some time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants