You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by "Derrick Oswald (Jira)" <ji...@apache.org> on 2020/03/08 15:25:00 UTC
[jira] [Created] (SIS-491) sis-embedded-data database fails to
start on Apache Spark
Derrick Oswald created SIS-491:
----------------------------------
Summary: sis-embedded-data database fails to start on Apache Spark
Key: SIS-491
URL: https://issues.apache.org/jira/browse/SIS-491
Project: Spatial Information Systems
Issue Type: Bug
Components: Metadata
Affects Versions: 1.0, 0.8
Environment: Spark version 2.4.4
Hadoop version 2.7.6
Scala version 2.11.12
Java version 1.8.0_242
OS: Linux <computer> 4.15.0-88-generic #88-Ubuntu SMP Tue Feb 11 20:11:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Reporter: Derrick Oswald
Operation _CRS_.forCode fails when used within the Apache Spark environment.
Steps to reproduce (see full log below):
1) Start spark-shell with the --packages argument specifying the sis-embedded-data artifact
2) Execute CRS.forCode ("EPSG:21781") {color:#808080}// Swiss coordinate system [https://epsg.io/21781]
{color}
{color:#172b4d}Result:{color}
{color:#172b4d} NoSuchAuthorityCodeException (with a prior warning message: Failed to start database 'classpath:SIS_DATA/Databases/SpatialMetadata'){color}
{color:#172b4d}Expected result:{color}
{color:#172b4d} Returns a valid CoordinateReferenceSystem for "EPSG:21781".
{color}
{color:#172b4d}Workaround:{color}
{color:#172b4d} Use _CRS.fromWKT_ instead.
{color}
{color:#172b4d}Note:{color}
{{{color:#172b4d}It works fine in a stand-alone Scala program with build.sbt:{color}}}
{{{color:#172b4d}
{color}}}{{{color:#660e7a}name {color}:= {color:#008000}"ApacheSISTest"
{color}{color:#660e7a}version {color}:= {color:#008000}"0.1"
{color}{color:#660e7a}scalaVersion {color}:= {color:#008000}"2.11.12"
{color}{color:#660e7a}libraryDependencies {color}+= {color:#008000}"org.apache.sis.core" {color}% {color:#008000}"sis-referencing" {color}% {color:#008000}"1.0"
{color}{color:#660e7a}libraryDependencies {color}+= {color:#008000}"org.apache.sis.non-free" {color}% {color:#008000}"sis-embedded-data" {color}% {color:#008000}"1.0"{color}}}
and code
{color:#000080}import {color}org.apache.sis.geometry.DirectPosition2D
{color:#000080}import {color}org.apache.sis.referencing.CRS
{color:#000080}object {color}Test {color:#000080}extends {color}App {
{color:#000080}val {color}{color:#660e7a}position {color}= {color:#000080}new {color}DirectPosition2D ({color:#0000ff}678544.6095273666{color}, {color:#0000ff}248462.881516265{color})
println ({color:#008000}"Source: " {color}+ {color:#660e7a}position{color})
{color:#000080}val {color}{color:#660e7a}sourceCRS {color}= CRS.forCode ({color:#008000}"EPSG:21781"{color}) {color:#808080}// Swiss coordinate system https://epsg.io/21781
{color} {color:#000080}val {color}{color:#660e7a}targetCRS {color}= CRS.forCode ({color:#008000}"EPSG:4326"{color}) {color:#808080}// WGS 84 https://epsg.io/4326
{color}{color:#808080}
{color} {color:#000080}val {color}{color:#660e7a}operation {color}= CRS.findOperation ({color:#660e7a}sourceCRS{color}, {color:#660e7a}targetCRS{color}, {color:#000080}null{color})
{color:#000080}val {color}{color:#660e7a}transform {color}= {color:#660e7a}operation{color}.getMathTransform
{color:#000080}val {color}{color:#660e7a}latlong {color}= {color:#660e7a}transform{color}.transform ({color:#660e7a}position{color}, {color:#000080}null{color}) {color:#808080}// °N, °E
{color} println ({color:#008000}"Target: " {color}+ {color:#660e7a}latlong{color})
}
{color:#172b4d}Full Spark log:
{color}
$ *spark-shell --master local[*] --verbose --packages org.apache.sis.core:sis-referencing:1.0,org.apache.sis.non-free:sis-embedded-data:1.0*
Using properties file: null
20/03/08 15:41:42 WARN Utils: Your hostname, <computer> resolves to a loopback address: 127.0.1.1; using 192.168.10.221 instead (on interface wlp4s0)
20/03/08 15:41:42 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address
Parsed arguments:
master local[*]
deployMode null
executorMemory null
executorCores null
totalExecutorCores null
propertiesFile null
driverMemory null
driverCores null
driverExtraClassPath null
driverExtraLibraryPath null
driverExtraJavaOptions null
supervise false
queue null
numExecutors null
files null
pyFiles null
archives null
mainClass org.apache.spark.repl.Main
primaryResource spark-shell
name Spark shell
childArgs []
jars null
packages org.apache.sis.core:sis-referencing:1.0,org.apache.sis.non-free:sis-embedded-data:1.0
packagesExclusions null
repositories null
verbose true
Spark properties used, including those specified through
--conf and those from the properties file null:
Ivy Default Cache set to: /home/<user>/.ivy2/cache
The jars for the packages stored in: /home/<user>/.ivy2/jars
:: loading settings :: url = jar:file:/home/<user>/spark/spark-2.4.4-bin-hadoop2.7/jars/ivy-2.4.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
org.apache.sis.core#sis-referencing added as a dependency
org.apache.sis.non-free#sis-embedded-data added as a dependency
:: resolving dependencies :: org.apache.spark#spark-submit-parent-83046344-c80a-4a8a-9d41-e6145875a27a;1.0
confs: [default]
found org.apache.sis.core#sis-referencing;1.0 in central
found org.apache.sis.core#sis-utility;1.0 in central
found javax.measure#unit-api;1.0 in central
found org.opengis#geoapi;3.0.1 in central
found org.apache.sis.core#sis-metadata;1.0 in central
found org.apache.sis.non-free#sis-embedded-data;1.0 in central
found org.apache.derby#derby;10.14.2.0 in central
downloading https://repo1.maven.org/maven2/org/apache/sis/core/sis-referencing/1.0/sis-referencing-1.0.jar ...
[SUCCESSFUL ] org.apache.sis.core#sis-referencing;1.0!sis-referencing.jar (245ms)
downloading https://repo1.maven.org/maven2/org/apache/sis/non-free/sis-embedded-data/1.0/sis-embedded-data-1.0.jar ...
[SUCCESSFUL ] org.apache.sis.non-free#sis-embedded-data;1.0!sis-embedded-data.jar (489ms)
downloading https://repo1.maven.org/maven2/org/apache/sis/core/sis-utility/1.0/sis-utility-1.0.jar ...
[SUCCESSFUL ] org.apache.sis.core#sis-utility;1.0!sis-utility.jar (92ms)
downloading https://repo1.maven.org/maven2/org/apache/sis/core/sis-metadata/1.0/sis-metadata-1.0.jar ...
[SUCCESSFUL ] org.apache.sis.core#sis-metadata;1.0!sis-metadata.jar (134ms)
:: resolution report :: resolve 7312ms :: artifacts dl 970ms
:: modules in use:
javax.measure#unit-api;1.0 from central in [default]
org.apache.derby#derby;10.14.2.0 from central in [default]
org.apache.sis.core#sis-metadata;1.0 from central in [default]
org.apache.sis.core#sis-referencing;1.0 from central in [default]
org.apache.sis.core#sis-utility;1.0 from central in [default]
org.apache.sis.non-free#sis-embedded-data;1.0 from central in [default]
org.opengis#geoapi;3.0.1 from central in [default]
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 7 | 6 | 6 | 0 || 7 | 4 |
---------------------------------------------------------------------
:: problems summary ::
:::: ERRORS
unknown resolver null
unknown resolver null
unknown resolver null
:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
:: retrieving :: org.apache.spark#spark-submit-parent-83046344-c80a-4a8a-9d41-e6145875a27a
confs: [default]
7 artifacts copied, 0 already retrieved (10240kB/20ms)
Main class:
org.apache.spark.repl.Main
Arguments:
Spark config:
(spark.jars,file:///home/<user>/.ivy2/jars/org.apache.sis.core_sis-referencing-1.0.jar,file:///home/<user>/.ivy2/jars/org.apache.sis.non-free_sis-embedded-data-1.0.jar,file:///home/<user>/.ivy2/jars/org.apache.sis.core_sis-utility-1.0.jar,file:///home/<user>/.ivy2/jars/org.apache.sis.core_sis-metadata-1.0.jar,file:///home/<user>/.ivy2/jars/javax.measure_unit-api-1.0.jar,file:///home/<user>/.ivy2/jars/org.opengis_geoapi-3.0.1.jar,file:///home/<user>/.ivy2/jars/org.apache.derby_derby-10.14.2.0.jar)
(spark.app.name,Spark shell)
(spark.ui.showConsoleProgress,true)
(spark.submit.deployMode,client)
(spark.master,local[*])
(spark.repl.local.jars,file:///home/<user>/.ivy2/jars/org.apache.sis.core_sis-referencing-1.0.jar,file:///home/<user>/.ivy2/jars/org.apache.sis.non-free_sis-embedded-data-1.0.jar,file:///home/<user>/.ivy2/jars/org.apache.sis.core_sis-utility-1.0.jar,file:///home/<user>/.ivy2/jars/org.apache.sis.core_sis-metadata-1.0.jar,file:///home/<user>/.ivy2/jars/javax.measure_unit-api-1.0.jar,file:///home/<user>/.ivy2/jars/org.opengis_geoapi-3.0.1.jar,file:///home/<user>/.ivy2/jars/org.apache.derby_derby-10.14.2.0.jar)
Classpath elements:
file:///home/<user>/.ivy2/jars/org.apache.sis.core_sis-referencing-1.0.jar
file:///home/<user>/.ivy2/jars/org.apache.sis.non-free_sis-embedded-data-1.0.jar
file:///home/<user>/.ivy2/jars/org.apache.sis.core_sis-utility-1.0.jar
file:///home/<user>/.ivy2/jars/org.apache.sis.core_sis-metadata-1.0.jar
file:///home/<user>/.ivy2/jars/javax.measure_unit-api-1.0.jar
file:///home/<user>/.ivy2/jars/org.opengis_geoapi-3.0.1.jar
file:///home/<user>/.ivy2/jars/org.apache.derby_derby-10.14.2.0.jar
20/03/08 15:41:58 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
20/03/08 15:41:58 WARN Utils: Service 'SparkUI' could not bind on port 4041. Attempting port 4042.
Spark context Web UI available at http://192.168.10.221:4042
Spark context available as 'sc' (master = local[*], app id = local-1583678518329).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.4.4
/_/
Using Scala version 2.11.12 (OpenJDK 64-Bit Server VM, Java 1.8.0_242)
Type in expressions to have them evaluated.
Type :help for more information.
scala> *import org.apache.sis.geometry.DirectPosition2D*
import org.apache.sis.geometry.DirectPosition2D
scala> *import org.apache.sis.referencing.CRS*
import org.apache.sis.referencing.CRS
scala> *val position = new DirectPosition2D (678544.6095273666, 248462.881516265)*
position: org.apache.sis.geometry.DirectPosition2D = POINT(678544.6095273666 248462.881516265)
scala> *println ("Source: " + position)*
Source: POINT(678544.6095273666 248462.881516265)
scala>
scala> *val sourceCRS = CRS.forCode ("EPSG:21781")*
20/03/08 15:43:14 WARN factory: Can not use the EPSG geodetic parameters: Failed to start database 'classpath:SIS_DATA/Databases/SpatialMetadata' with class loader sun.misc.Launcher$AppClassLoader@f2a0b8e, see the next exception for details.
org.opengis.referencing.NoSuchAuthorityCodeException: No ‘CoordinateReferenceSystem’ object found for code “21781”. However only a subset of the EPSG geodetic dataset has been queried. See http://sis.apache.org/epsg.html for instruction about how to install the full EPSG database.
at org.apache.sis.referencing.EPSGFactoryFallback.predefined(EPSGFactoryFallback.java:355)
at org.apache.sis.referencing.EPSGFactoryFallback.createCoordinateReferenceSystem(EPSGFactoryFallback.java:231)
at org.apache.sis.referencing.CRS.forCode(CRS.java:236)
... 49 elided
scala> *val targetCRS = CRS.forCode ("EPSG:4326")*
20/03/08 15:43:17 WARN system: Can not connect to “jdbc/SpatialMetadata”.
java.sql.SQLException: Failed to start database 'classpath:SIS_DATA/Databases/SpatialMetadata' with class loader sun.misc.Launcher$AppClassLoader@f2a0b8e, see the next exception for details.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
at org.apache.derby.jdbc.InternalDriver$1.run(Unknown Source)
at org.apache.derby.jdbc.InternalDriver$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown Source)
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
at org.apache.derby.jdbc.BasicEmbeddedDataSource40.getConnection(Unknown Source)
at org.apache.derby.jdbc.BasicEmbeddedDataSource40.getConnection(Unknown Source)
at org.apache.sis.metadata.sql.MetadataSource.connection(MetadataSource.java:490)
at org.apache.sis.metadata.sql.MetadataSource.install(MetadataSource.java:457)
at org.apache.sis.metadata.sql.MetadataSource.getProvided(MetadataSource.java:318)
at org.apache.sis.internal.simple.CitationConstant.delegate(CitationConstant.java:177)
at org.apache.sis.internal.simple.CitationConstant.getIdentifiers(CitationConstant.java:204)
at org.apache.sis.internal.metadata.Identifiers.getIdentifier(Identifiers.java:117)
at org.apache.sis.referencing.ImmutableIdentifier.formatTo(ImmutableIdentifier.java:517)
at org.apache.sis.io.wkt.Formatter.append(Formatter.java:691)
at org.apache.sis.io.wkt.Formatter.appendComplement(Formatter.java:849)
at org.apache.sis.io.wkt.Formatter.append(Formatter.java:738)
at org.apache.sis.io.wkt.FormattableObject.formatWKT(FormattableObject.java:200)
at org.apache.sis.io.wkt.FormattableObject.toString(FormattableObject.java:126)
at scala.runtime.ScalaRunTime$.scala$runtime$ScalaRunTime$$inner$1(ScalaRunTime.scala:332)
at scala.runtime.ScalaRunTime$.stringOf(ScalaRunTime.scala:337)
at scala.runtime.ScalaRunTime$.replStringOf(ScalaRunTime.scala:345)
at $line21.$eval$.$print$lzycompute(<console>:10)
at $line21.$eval$.$print(<console>:6)
at $line21.$eval.$print(<console>)
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 scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:793)
at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:1054)
at scala.tools.nsc.interpreter.IMain$WrappedRequest$$anonfun$loadAndRunReq$1.apply(IMain.scala:645)
at scala.tools.nsc.interpreter.IMain$WrappedRequest$$anonfun$loadAndRunReq$1.apply(IMain.scala:644)
at scala.reflect.internal.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:31)
at scala.reflect.internal.util.AbstractFileClassLoader.asContext(AbstractFileClassLoader.scala:19)
at scala.tools.nsc.interpreter.IMain$WrappedRequest.loadAndRunReq(IMain.scala:644)
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:576)
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:572)
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:819)
at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:691)
at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:404)
at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:425)
at org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply$mcZ$sp(SparkILoop.scala:285)
at org.apache.spark.repl.SparkILoop.runClosure(SparkILoop.scala:159)
at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:182)
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 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.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:845)
at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:920)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:929)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: ERROR XJ040: Failed to start database 'classpath:SIS_DATA/Databases/SpatialMetadata' with class loader sun.misc.Launcher$AppClassLoader@f2a0b8e, see the next exception for details.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source)
... 65 more
Caused by: ERROR XCL20: Catalogs at version level 'null' cannot be upgraded to version level '10.12'.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.catalog.DD_Version.upgradeIfNeeded(Unknown Source)
at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.loadDictionaryTables(Unknown Source)
at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source)
at org.apache.derby.impl.services.monitor.FileMonitor.startModule(Unknown Source)
at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown Source)
at org.apache.derby.impl.db.BasicDatabase$5.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.derby.impl.db.BasicDatabase.bootServiceModule(Unknown Source)
at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(Unknown Source)
at org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection$4.run(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.derby.impl.jdbc.EmbedConnection.startPersistentService(Unknown Source)
... 62 more
targetCRS: org.opengis.referencing.crs.CoordinateReferenceSystem =
GeodeticCRS["WGS 84",
Datum["World Geodetic System 1984",
Ellipsoid["WGS 84", 6378137.0, 298.257223563]],
CS[ellipsoidal, 2],
Axis["Geodetic latitude (φ)", north],
Axis["Geodetic longitude (λ)", east],
Unit["degree", 0.017453292519943295],
Scope["Horizontal component of 3D system."],
Area["World"],
BBox[-90.00, -180.00, 90.00, 180.00],
Id["EPSG", 4326, URI["urn:ogc:def:crs:EPSG::4326"]]]
scala>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)