----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/66064/ -----------------------------------------------------------
(Updated April 13, 2018, 2:55 a.m.) Review request for atlas, David Radley, Madhan Neethiraj, and Sarath Subramanian. Changes ------- This update is a rebase against master. It also resolves an inconsistent startup of elasticsearch. This partially resolves some of the issues found in this review, but I believe further discussion is needed to resolve things correctly. Issues: - Berkley db is excluded from the distribution, so there is this copy hack that must happen. This has always been the case and falls outside the scope of this patch - The way I configure the Constants is not ideal. I am in need of guidance on where/how to implement this fix as my understanding of the internals of Atlas is limited. - The connection to elasticsearch is now done by REST and not by native client. The jars do not contain any shaded 3rd party jars, and are needed for the REST client. If we build/distribute a full distribution that isn't based on a particular profile, these jars will be required if someone wants to use Elasticsearch. They should be harmless due to the lack of shaded 3rd party jars. - I need to add some documentation around using this profile, but wish to hold off until we have agreement on what and how to deal with the Elasticsearch jars. To Run this profile: mvn clean install -Pdist,berkeley-elasticsearch -DskipTests cd distro/target/apache-atlas-1.0.0-SNAPSHOT-bin/apache-atlas-1.0.0-SNAPSHOT ./bin/atlas_start.py ./bin/atlas_stop.py <-- Atlas will NOT start correctly becuase the berkley db jar is missing, starting and stopping will create the lib dir where the berkley db jar is needed. cp ../../../../webapp/target/atlas-webapp-1.0.0-SNAPSHOT/WEB-INF/lib/je-7.3.7.jar server/webapp/atlas/WEB-INF/lib ./bin/atlas_start.py Bugs: ATLAS-2478 https://issues.apache.org/jira/browse/ATLAS-2478 Repository: atlas Description ------- This patch fixes the Elasticsearch support for JanusGraph 0.2.0 and updates documentation. Included with this patch is an update to the berkley-elasticsearch profile to automatically download and include elasticsearch as a side application much like solr is. Updates to the start/stop/conf scripts are included as well. NOTE: This patch includes a **BACKWARDS INCOMPATIBLE** change to /atlas/common/src/main/java/org/apache/atlas/repository/Constants.java. There are six constants that are incorrectly named with a '.' (dot). This is not supported in Elasticsearch 5 and beyond when defining a mapping **UNLESS** the field names can be collectively thought of as an object. In the case of the fields defined in the Constants.java file, 'type' is defined as a string field, and 'type.name' is also defined as a string field. Elasticsearch sees this as an error, since it cannot convert type to an object. The fix included simply changes the field names from using a '.' (dot) to an '_' (underscore). This should NOT affect compatibility with hbase/solr for new installs. For existing installations, a reindex will be required as the field names will have changed. **Query**: There is a way we can simplify integration/unit tests for the in-memory graph store by using a maven plugin that will download and run an elasticsearch node. This is nothing more than a maven change, and change to the atlas-application.properties to switch to elasticsearch from solr. I did not implement this, but am curious if this change would be desired. If so, this can be done with a separate ticket. Diffs (updated) ----- common/src/main/java/org/apache/atlas/repository/Constants.java 01e49157d distro/pom.xml 1f4c6d557 distro/src/bin/atlas_config.py 9062da649 distro/src/bin/atlas_start.py 61d69eb21 distro/src/bin/atlas_stop.py 94c3d6d46 distro/src/conf/atlas-env.sh 9213f488b distro/src/main/assemblies/standalone-package.xml dc2a66ba9 docs/src/site/twiki/Configuration.twiki 63c3fce96 docs/src/site/twiki/HighAvailability.twiki 4270d0974 docs/src/site/twiki/InstallationSteps.twiki dca0618e3 graphdb/janus/pom.xml 016a09c33 pom.xml 4d2ab7391 webapp/pom.xml 284f538f7 Diff: https://reviews.apache.org/r/66064/diff/2/ Changes: https://reviews.apache.org/r/66064/diff/1-2/ Testing ------- We currently use this fix with our Atlas setup in a fork of the Atlas code, and have found no issues with it. Additionally, with the update to the berkley-elasticsearch profile, I have extensively tested that profile to make sure that management of Elasticsearch functioned correctly. Thanks, Pierre Padovani