Я пытаюсь сохранить таблицу памяти Spark в Ignite. Когда я пытаюсь это сделать, я получаю сообщение об ошибке:
Не удалось найти узел сервера сходства с конфигурацией хранения данных для запуска кэша [cacheName = SQL_PUBLIC_JSON_TBL, aliveSrvNodes = []].
Я запускаю его в настройке кластера HDP на машине Ec2, но когда я делаю то же самое на машине кластера, он работает отлично, но не на машине EC2.
Заранее спасибо.
UPDATE:
Я использую оболочку Spark. Вот код.
val df = sqlContext.read.json("~/responses")
val s = df.select("response.id","response.name")
s.write.format(IgniteDataFrameSettings.FORMAT_IGNITE).option(IgniteDataFrameSettings.OPTION_CONFIG_FILE, "~/apache-ignite-fabric-2.6.0-bin/examples/config/spark/example-shared-rdd.xml").option(IgniteDataFrameSettings.OPTION_CREATE_TABLE_PRIMARY_KEY_FIELDS,"id").option(IgniteDataFrameSettings.OPTION_TABLE, "json_table").save()
Вот файл конфигурации xml, который я использую для своего единственного сервера Ignite:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="cacheConfiguration">
<!-- SharedRDD cache example configuration (Atomic mode). -->
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<!-- Set a cache name. -->
<property name="name" value="sharedRDD"/>
<!-- Set a cache mode. -->
<property name="cacheMode" value="PARTITIONED"/>
<!-- Index Integer pairs used in the example. -->
<property name="indexedTypes">
<list>
<value>java.lang.Integer</value>
<value>java.lang.Integer</value>
</list>
</property>
<!-- Set atomicity mode. -->
<property name="atomicityMode" value="ATOMIC"/>
<!-- Configure a number of backups. -->
<property name="backups" value="1"/>
</bean>
</property>
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
<property name="addresses">
<list>
<!-- In distributed environment, replace with actual host IP address. -->
<value>127.0.0.1:47500..47509</value>
</list>
</property>
</bean>
</property>
</bean>
</property>
</bean>
</beans>
Вот полный журнал.
18/10/30 12:32:54 WARN GridDiagnostic: начальный размер кучи составляет 252 МБ (должно быть не менее 512 МБ, используйте -Xms512m -Xmx512m).
18/10/30 12:32:54 WARN TcpCommunicationSpi: Предел очереди сообщений установлен в 0, что может привести к потенциальным OOME при выполнении операций кэширования в режимах FULL_ASYNC или PRIMARY_SYNC из-за роста очередей сообщений на стороне отправителя и получателя.
18/10/30 12:32:55 ПРЕДУПРЕЖДЕНИЕ NoopCheckpointSpi: контрольные точки отключены (для включения настройки любой реализации GridCheckpointSpi)
18/10/30 12:32:55 WARN GridCollisionManager: разрешение столкновений отключено (все задания будут активированы по прибытии).
18/10/30 12:32:57 WARN TcpDiscoverySpi: Не удалось прочитать сообщение из-за ClassNotFoundException (убедитесь, что одинаковые версии всех классов доступны на всех узлах) [rmtNodeId = 3085dfa9-58ba-4ac0-a7f8-f78e2901a699, err = oaii processors.hadoop.HadoopAttributes]
18/10/30 12:32:57 WARN IgniteAuthenticationProcessor: Не удается найти узел координатора сервера. Возможно, клиент запущен с forceServerMode = true. Предупреждение безопасности: аутентификация пользователя будет отключена на клиенте.
18/10/30 12:32:58 ОШИБКА ClusterCachesInfo: Не удалось найти узел сервера сходства с конфигурацией хранения данных для запуска кэша [cacheName = SQL_PUBLIC_JSON_TBL6, aliveSrvNodes = []]
18/10/30 12:32:58 WARN CacheAffinitySharedManager: Не найдены узлы сервера для клиента кэширования: SQL_PUBLIC_JSON_TBL