Podczas próby uruchomienia węzła głównego w moim klastrze, zaraz po uaktualnieniu z wersji 1.5 do 2.0 (tak, to duży skok), pojawia się następujący dziennik błędów:Elasticsearch - Odwzorowywanie błędów konfliktu mapowania z wersji 1.5 na 2.0
[2015-11-03 18:15:10,948][ERROR][gateway ] [mon-01] failed to read local state, exiting...
java.lang.IllegalStateException: unable to upgrade the mappings for the index [logstash-2015.10.18], reason: [Mapper for [timestamp] conflicts with existing mapping in other types:
[mapper [timestamp] cannot be changed from type [date] to [string]]]
Niestety, nie mam szczegółowego opisu pola lub odpowiedniej konfiguracji analizatora na polu, ale jak jego nazwa wskazuje, jest to datownik z logstash, więc powinno to wyglądać jak jedna z nich:
- "dd/MMM/rrrr: HH: mm: ss Z"
- "YYYY MM-dd HH: MM: SS"
- "HH: MM: SS"
- "YYYY MM-dd HH: MM: SS SSS ZZ"
- „YYYY MM-dd HH: mm: ss, SSSZZ”
- "YYYY-mM-dD HH: mm: ss, SSS"
dziennik kończy się w ten sposób:
[2015-11-03 18:15:11,383][ERROR][bootstrap ] Guice Exception: java.lang.IllegalStateException: unable to upgrade the mappings for the index [logstash-2015.10.18], reason: [Mapper for [timestamp] conflicts with existing mapping in other types:
[mapper [timestamp] cannot be changed from type [date] to [string]]]
Likely root cause: java.lang.IllegalArgumentException: Mapper for [timestamp] conflicts with existing mapping in other types:
[mapper [timestamp] cannot be changed from type [date] to [string]]
at org.elasticsearch.index.mapper.FieldTypeLookup.checkCompatibility(FieldTypeLookup.java:117)
at org.elasticsearch.index.mapper.MapperService.checkNewMappersCompatibility(MapperService.java:345)
at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:296)
at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:242)
at org.elasticsearch.cluster.metadata.MetaDataIndexUpgradeService.checkMappingsCompatibility(MetaDataIndexUpgradeService.java:329)
at org.elasticsearch.cluster.metadata.MetaDataIndexUpgradeService.upgradeIndexMetaData(MetaDataIndexUpgradeService.java:112)
at org.elasticsearch.gateway.GatewayMetaState.pre20Upgrade(GatewayMetaState.java:226)
at org.elasticsearch.gateway.GatewayMetaState.<init>(GatewayMetaState.java:85)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at <<<guice>>>
at org.elasticsearch.node.Node.<init>(Node.java:198)
at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:145)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
a węzłem wyłączy.
Mam dokładnie przeczytać problemy #13169 i #13345, ale nic z tych nie pomógł mi, węzeł nadal nie może rozpocząć.
Wiem, że changing the mappings jest łatwe, gdy ES jest podniesione, ale utknąłem tutaj.
Każdy pomysł?
Jest to narzędzie musi posiadać: https://github.com/elastic/elasticsearch-migration – chilladx