Bringing the scalability of distributed computing to modern geospatial software.
rfecher on gh-pages
Lastest javadoc on successful t… (compare)
rfecher on master
fixing coveralls (#1488) (compare)
rfecher on master
Update README.md (compare)
rfecher on master
updated readme.md (#1486) (compare)
PATH
or similar) and what you expected to happen instead.
org.locationtech.geowave.core.cli.GeoWaveMain
,the program arguments is store add raster --gwNamespace geowave.raster -t hbase --zookeeper node24,node25,node26:2181
, when run ,the console output is Usage: geowave [options]
Options:
-cf, --config-file
Override configuration file (default is
<home>/.geowave/config.properties)
--debug
Verbose output
--version
Output Geowave build version information
Commands:
config
Commands that affect local configuration only
explain
See what arguments are missing and what values will be used for GeoWave commands
help
Get descriptions of arguments for any GeoWave command
util, utility
GeoWave utility commands
Error: Expected a command, got store
geowave-test
project, which includes most of the other GeoWave projects as dependencies.
Is secondary indexing supposed to be as easy as
options.setSecondaryIndexing(true);
...
dataStore.addType(adapter, primaryIdx, secIdx);
or is there some other way to say that secIdx is the secondary index of the first? Currently I am doing the above and hitting a strange NPE in the GW codebase
primaryIdx
and secIdx
store just the data IDs as the values, and if necessary will refer back to the data ID index for the full data). This all should happen transparently to the API (ie. the data ID index does not need to be referenced anywhere). Does that make more sense given what you're experiencing?
secIdx
and primaryIdx
its still returning a null indexStrategy
and indexModel
for secIdx
, even with it being in the first position. I guess it has something to do with my CustomNameIndex
, because primaryIdx
is an Index provided via geowave APIs. Any idea why a CustomNameIndex
would not be retrieved correctly from Geowave?
this is how Im creating the Index:
default Index makeFuseIdIndex(AttributeDescriptor descriptor) {
NumericIndexStrategy indexStrategy = new MyIndexStrategy();
FeatureAttributeDimensionField[] dimms = {new FeatureAttributeDimensionField(descriptor)};
CommonIndexModel indexModel = new BasicIndexModel(dimms) {
@Override
public boolean useInSecondaryIndex() {
// we want this to be a secondary index. TODO: Is this necessary?
return true;
}
};
return new CustomNameIndex(indexStrategy, indexModel, this.indexName() + "_ID");
}
Seems fairly benign
useInSecondaryIndex
and if you do you'd want it to be part of a index model class that is registered as persistable) - the meaning of that is if true the dimensions/fields defined in your basicindexmodel will be serialized within each secondary index along with the data ID so that queries can be fully resolved without referring to the data ID index to bring back all the data (but then if downstream processing needs all the data, it will eventually need to hit the data ID index). For example, a spatial index would put the geometry in the basicindexmodel by default and a spatial query would be able to fully run geometry intersection without referring back to the data ID index, but of course if you wanted to get simplefeatures with all the data the geometries that pass the filter would eventually need to get data from the data ID index (if on the other hand you were just doing some form of aggregation that didn't need all the fields, like a count or a heatmap you wouldn't need to go to the data ID index) ... but its at the cost of course of storing the basicindexmodel data in each secondary index, so I think generally speaking unless you know what you're doing with that useInSecondaryIndex
method and you have a real use case that supports it pretty well, I'd suggest just leaving that as the default
geowave help
command I get these warnings:$ geowave help
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by javassist.ClassPool (file:/home/denis/geowave/lib/core/javassist-3.20.0-GA.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int)
WARNING: Please consider reporting this to the maintainers of javassist.ClassPool
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
org.opengis.referencing.NoSuchAuthorityCodeException: No code "EPSG:4326" from authority "European Petroleum Survey Group" found for object of type "IdentifiedOb
ject".
I'm stumped. Has anyone received this error before?
org.geotools:gt-epsg-wkt
is critical to have on the classpath for discovering these EPSG coordinate reference systems (using SPI), and should be in included in any of the geowave shaded jars that are distributed. The only other thing I can think of if it is on your classpath is that SPI is being hosed somehow in the context of your hadoop workers, not exactly sure how.
gt-epsg-wkt
just has it as a resource on the classpath and is fine in the MR worker node context - I think and hope that this will do the trick for you
20/04/20 17:07:53 ERROR vector.FeatureDataAdapter: Unable to decode 'EPSG:4326' CRS
org.opengis.referencing.NoSuchAuthorityCodeException: No code "EPSG:4326" from authority "European Petroleum Survey Group" found for object of type "IdentifiedObject".
I wished it worked
gt-epsg-wkt
to the distributed class will work. let me try that
geowave-$VERSION-$VENDOR-tools
as documented here: https://locationtech.github.io/geowave/downloads.html