Here is my build.gradle and I am not sure which jar uses org.codehaus.commons.compiler.ICompilerFactory
buildscript { repositories { jcenter() // this applies only to the Gradle 'Shadow' plugin } dependencies { classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' } } plugins { id 'java' id 'application' } mainClassName = 'Test' apply plugin: 'com.github.johnrengelman.shadow' // artifact properties /*group = 'org.myorg.quickstart' version = '0.1'*/ description = """Flink Quickstart Job""" ext { javaVersion = '1.8' flinkVersion = '1.10.0' scalaBinaryVersion = '2.11' slf4jVersion = '1.7.7' log4jVersion = '1.2.17' } sourceCompatibility = javaVersion targetCompatibility = javaVersion tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } applicationDefaultJvmArgs = ["-Dlog4j.configuration=log4j.properties"] // declare where to find the dependencies of your project repositories { mavenCentral() maven { url "https://repository.apache.org/content/repositories/snapshots/" } } // NOTE: We cannot use "compileOnly" or "shadow" configurations since then we could not run code // in the IDE or with "gradle run". We also cannot exclude transitive dependencies from the // shadowJar yet (see https://github.com/johnrengelman/shadow/issues/159). // -> Explicitly define the // libraries we want to be included in the "flinkShadowJar" configuration! configurations { flinkShadowJar // dependencies which go into the shadowJar // always exclude these (also from transitive dependencies) since they are provided by Flink flinkShadowJar.exclude group: 'org.apache.flink', module: 'force-shading' flinkShadowJar.exclude group: 'com.google.code.findbugs', module: 'jsr305' flinkShadowJar.exclude group: 'org.slf4j' flinkShadowJar.exclude group: 'log4j' } // declare the dependencies for your production and test code dependencies { // -------------------------------------------------------------- // Compile-time dependencies that should NOT be part of the // shadow jar and are provided in the lib folder of Flink // -------------------------------------------------------------- compile "org.apache.flink:flink-java:${flinkVersion}" compile "org.apache.flink:flink-streaming-java_${scalaBinaryVersion}:${flinkVersion}" flinkShadowJar "org.apache.flink:flink-connector-kafka_2.11:${flinkVersion}" flinkShadowJar "org.apache.flink:flink-table-api-java:${flinkVersion}" flinkShadowJar "org.apache.flink:flink-table-planner-blink_2.11:${flinkVersion}" flinkShadowJar "org.apache.flink:flink-streaming-scala_2.11:${flinkVersion}" flinkShadowJar "org.apache.flink:flink-statebackend-rocksdb_2.11:${flinkVersion}" // -------------------------------------------------------------- // Dependencies that should be part of the shadow jar, e.g. // connectors. These must be in the flinkShadowJar configuration! // -------------------------------------------------------------- //flinkShadowJar "org.apache.flink:flink-connector-kafka-0.11_${scalaBinaryVersion}:${flinkVersion}" compile "log4j:log4j:${log4jVersion}" compile "org.slf4j:slf4j-log4j12:${slf4jVersion}" // Add test dependencies here. // testCompile "junit:junit:4.12" } // make compileOnly dependencies available for tests: sourceSets { main.compileClasspath += configurations.flinkShadowJar main.runtimeClasspath += configurations.flinkShadowJar test.compileClasspath += configurations.flinkShadowJar test.runtimeClasspath += configurations.flinkShadowJar javadoc.classpath += configurations.flinkShadowJar } run.classpath = sourceSets.main.runtimeClasspath jar { manifest { attributes 'Built-By': System.getProperty('user.name'), 'Build-Jdk': System.getProperty('java.version') } } shadowJar { configurations = [project.configurations.flinkShadowJar] } On Thu, Feb 27, 2020 at 10:31 PM Jingsong Li <jingsongl...@gmail.com> wrote: > Hi kant, > > As Jark said, > Your user jar should not contains " > org.codehaus.commons.compiler.ICompilerFactory" dependencies. This will > make calcite can not work. > > In 1.10, have made Flink client respect classloading policy that default > policy is child first [1]. More details can find in [2]. > > [1] > https://ci.apache.org/projects/flink/flink-docs-release-1.10/release-notes/flink-1.10.html#flink-client-respects-classloading-policy-flink-13749 > [2] https://issues.apache.org/jira/browse/FLINK-13749 > > Best, > Jingsong Lee > > On Fri, Feb 28, 2020 at 11:19 AM Jark Wu <imj...@gmail.com> wrote: > >> Hi Kant, >> >> Are you depending a custom janino or something like hive-exec in your >> pom.xml? >> >> Best, >> Jark >> >> On Fri, 28 Feb 2020 at 10:13, kant kodali <kanth...@gmail.com> wrote: >> >>> It works within IDE but not when I submit using command using flink run >>> myApp.jar >>> >>> >>> >>> On Thu, Feb 27, 2020 at 3:32 PM kant kodali <kanth...@gmail.com> wrote: >>> >>>> Below is the sample code using Flink 1.10 >>>> >>>> public class Test { >>>> >>>> public static void main(String... args) throws Exception { >>>> >>>> EnvironmentSettings bsSettings = >>>> EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build(); >>>> final StreamExecutionEnvironment env = >>>> StreamExecutionEnvironment.getExecutionEnvironment(); >>>> env.setStateBackend((StateBackend) new >>>> RocksDBStateBackend("file:///tmp")); >>>> >>>> >>>> StreamTableEnvironment bsTableEnv = >>>> StreamTableEnvironment.create(env, bsSettings); >>>> >>>> Properties properties = new Properties(); >>>> properties.setProperty("bootstrap.servers", "localhost:9092"); >>>> properties.setProperty("group.id", "test"); >>>> >>>> FlinkKafkaConsumer<String> consumer1 = new FlinkKafkaConsumer<>( >>>> java.util.regex.Pattern.compile("test-topic1"), >>>> new SimpleStringSchema(), >>>> properties); >>>> >>>> FlinkKafkaConsumer<String> consumer2 = new FlinkKafkaConsumer<>( >>>> java.util.regex.Pattern.compile("test-topic2"), >>>> new SimpleStringSchema(), >>>> properties); >>>> >>>> DataStream<String> stream1 = env.addSource(consumer1); >>>> DataStream<String> stream2 = env.addSource(consumer2); >>>> >>>> bsTableEnv.createTemporaryView("sample1", stream1); >>>> bsTableEnv.createTemporaryView("sample2", stream2); >>>> >>>> Table result = bsTableEnv.sqlQuery("SELECT * FROM sample1 INNER >>>> JOIN sample2 on sample1.f0=sample2.f0"); >>>> result.printSchema(); >>>> >>>> >>>> bsTableEnv.toRetractStream(result, Row.class).print(); >>>> bsTableEnv.execute("sample job"); >>>> } >>>> } >>>> >>>> >>>> On Thu, Feb 27, 2020 at 3:22 PM kant kodali <kanth...@gmail.com> wrote: >>>> >>>>> Fixed the typo. >>>>> >>>>> >>>>> Hi All, >>>>> >>>>> >>>>> My sample program works in Flink 1.9 but in 1.10 I get the following >>>>> error when I am submitting the job. otherwords it fails to submit a job. >>>>> any idea? >>>>> >>>>> >>>>> Thanks! >>>>> >>>>> On Thu, Feb 27, 2020 at 2:19 PM kant kodali <kanth...@gmail.com> >>>>> wrote: >>>>> >>>>>> Hi All, >>>>>> >>>>>> >>>>>> My sample program works in Flink 1.9 but in 1.0 I get the following >>>>>> error when I am submitting the job. otherwords it fails to submit a job. >>>>>> any idea? >>>>>> >>>>>> >>>>>> Thanks! >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> org.apache.flink.client.program.ProgramInvocationException: The main >>>>>> method caused an error: Unable to instantiate java compiler >>>>>> >>>>>> at >>>>>> org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:335) >>>>>> >>>>>> at >>>>>> org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:205) >>>>>> >>>>>> at >>>>>> org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:138) >>>>>> >>>>>> at >>>>>> org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:664) >>>>>> >>>>>> at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:213) >>>>>> >>>>>> at >>>>>> org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:895) >>>>>> >>>>>> at >>>>>> org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:968) >>>>>> >>>>>> at >>>>>> org.apache.flink.runtime.security.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:30) >>>>>> >>>>>> at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:968) >>>>>> >>>>>> Caused by: java.lang.IllegalStateException: Unable to instantiate >>>>>> java compiler >>>>>> >>>>>> at >>>>>> org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:434) >>>>>> >>>>>> at >>>>>> org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.load3(JaninoRelMetadataProvider.java:375) >>>>>> >>>>>> at >>>>>> org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.lambda$static$0(JaninoRelMetadataProvider.java:109) >>>>>> >>>>>> at >>>>>> org.apache.flink.calcite.shaded.com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:149) >>>>>> >>>>>> at >>>>>> org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3542) >>>>>> >>>>>> at >>>>>> org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2323) >>>>>> >>>>>> at >>>>>> org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2286) >>>>>> >>>>>> at >>>>>> org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201) >>>>>> >>>>>> at >>>>>> org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache.get(LocalCache.java:3953) >>>>>> >>>>>> at >>>>>> org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3957) >>>>>> >>>>>> at >>>>>> org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4875) >>>>>> >>>>>> at >>>>>> org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.create(JaninoRelMetadataProvider.java:475) >>>>>> >>>>>> at >>>>>> org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:488) >>>>>> >>>>>> at >>>>>> org.apache.calcite.rel.metadata.RelMetadataQuery.revise(RelMetadataQuery.java:193) >>>>>> >>>>>> at >>>>>> org.apache.calcite.rel.metadata.RelMetadataQuery.getPulledUpPredicates(RelMetadataQuery.java:797) >>>>>> >>>>>> at >>>>>> org.apache.calcite.rel.rules.ReduceExpressionsRule$ProjectReduceExpressionsRule.onMatch(ReduceExpressionsRule.java:298) >>>>>> >>>>>> at >>>>>> org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:319) >>>>>> >>>>>> at >>>>>> org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:560) >>>>>> >>>>>> at >>>>>> org.apache.calcite.plan.hep.HepPlanner.applyRules(HepPlanner.java:419) >>>>>> >>>>>> at >>>>>> org.apache.calcite.plan.hep.HepPlanner.executeInstruction(HepPlanner.java:256) >>>>>> >>>>>> at >>>>>> org.apache.calcite.plan.hep.HepInstruction$RuleInstance.execute(HepInstruction.java:127) >>>>>> >>>>>> at >>>>>> org.apache.calcite.plan.hep.HepPlanner.executeProgram(HepPlanner.java:215) >>>>>> >>>>>> at >>>>>> org.apache.calcite.plan.hep.HepPlanner.findBestExp(HepPlanner.java:202) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.planner.plan.optimize.program.FlinkHepProgram.optimize(FlinkHepProgram.scala:69) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.planner.plan.optimize.program.FlinkHepRuleSetProgram.optimize(FlinkHepRuleSetProgram.scala:87) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.planner.plan.optimize.program.FlinkChainedProgram$$anonfun$optimize$1.apply(FlinkChainedProgram.scala:62) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.planner.plan.optimize.program.FlinkChainedProgram$$anonfun$optimize$1.apply(FlinkChainedProgram.scala:58) >>>>>> >>>>>> at >>>>>> scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:157) >>>>>> >>>>>> at >>>>>> scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:157) >>>>>> >>>>>> at scala.collection.Iterator$class.foreach(Iterator.scala:891) >>>>>> >>>>>> at scala.collection.AbstractIterator.foreach(Iterator.scala:1334) >>>>>> >>>>>> at scala.collection.IterableLike$class.foreach(IterableLike.scala:72) >>>>>> >>>>>> at scala.collection.AbstractIterable.foreach(Iterable.scala:54) >>>>>> >>>>>> at >>>>>> scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:157) >>>>>> >>>>>> at >>>>>> scala.collection.AbstractTraversable.foldLeft(Traversable.scala:104) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.planner.plan.optimize.program.FlinkChainedProgram.optimize(FlinkChainedProgram.scala:57) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.planner.plan.optimize.StreamCommonSubGraphBasedOptimizer.optimizeTree(StreamCommonSubGraphBasedOptimizer.scala:170) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.planner.plan.optimize.StreamCommonSubGraphBasedOptimizer.doOptimize(StreamCommonSubGraphBasedOptimizer.scala:90) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.planner.plan.optimize.CommonSubGraphBasedOptimizer.optimize(CommonSubGraphBasedOptimizer.scala:77) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.planner.delegation.PlannerBase.optimize(PlannerBase.scala:248) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.planner.delegation.PlannerBase.translate(PlannerBase.scala:151) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.api.java.internal.StreamTableEnvironmentImpl.toDataStream(StreamTableEnvironmentImpl.java:351) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.api.java.internal.StreamTableEnvironmentImpl.toRetractStream(StreamTableEnvironmentImpl.java:296) >>>>>> >>>>>> at >>>>>> org.apache.flink.table.api.java.internal.StreamTableEnvironmentImpl.toRetractStream(StreamTableEnvironmentImpl.java:287) >>>>>> >>>>>> at Reconciliation.main(Reconciliation.java:52) >>>>>> >>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>> >>>>>> at >>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>>>> >>>>>> at >>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>> >>>>>> at java.lang.reflect.Method.invoke(Method.java:498) >>>>>> >>>>>> at >>>>>> org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:321) >>>>>> >>>>>> ... 8 more >>>>>> >>>>>> Caused by: java.lang.ClassCastException: >>>>>> org.codehaus.janino.CompilerFactory cannot be cast to >>>>>> org.codehaus.commons.compiler.ICompilerFactory >>>>>> >>>>>> at >>>>>> org.codehaus.commons.compiler.CompilerFactoryFactory.getCompilerFactory(CompilerFactoryFactory.java:129) >>>>>> >>>>>> at >>>>>> org.codehaus.commons.compiler.CompilerFactoryFactory.getDefaultCompilerFactory(CompilerFactoryFactory.java:79) >>>>>> >>>>>> at >>>>>> org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:432) >>>>>> >>>>>> ... 57 more >>>>>> >>>>> > > -- > Best, Jingsong Lee >