Я новичок в Ignite.
Test1: (без Kubernetes)
step1: я установил Ignite 2.6.0 на 2 виртуальных машины (ubuntu), запустил узел на одной виртуальной машине.с нижеприведенной командой.bin / ignite.sh examples / config / example-ignite.xml
step2: все мои конфигурации находятся в example-default.xml
step3: выполняется client.jar, который содержит логику сетки данных,в другой виртуальной машине (эта виртуальная машина является как клиентом, так и узлом).
step4: возможность хранить данные в кэше.
Test2: (Kubernetes установлен в облаке)
step1: Выполнены шаги, упомянутые в url, https://apacheignite.readme.io/docs/stateful-deployment.
- Запустите все команды ссылок гиперссылки RBAC и Ignite Servie как есть.
- Далее в разделе «То же хранилище для базы данных и файлов WAL» запустите «ignite-stateful-set.yaml»
- CONFIG_URI в ignite-stateful-set.yaml указывает на «пример»-default.xml (переименован) 'раздела' Kubernetes IP Finder '.
- Добавлены IP-адреса двух виртуальных машин в разделе example-default.xml' адреса 'компонента TcpDiscoveryKubernetesIpFinder.
Шаг 2: Скопировал файл «example-default.xml» в /opt/apache-ignite-fabric-2.6.0-bv-in/examples/config (где установлен режим зажигания) из 2 виртуальных машин.
Шаг 3: Теперь язапустил тот же файл client.jar, который дает команду исключения (присоединено), чтобы запустить клиент, подключен (установка Kubernetes и Ignite находятся на одной виртуальной машине (ubuntu))
Пожалуйста, дайте мне знать, что-то не так в Test2.Заранее спасибо.
example-default.xml
<bean abstract="true" id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<!-- Set to true to enable distributed class loading for examples, default is false. -->
<property name="peerClassLoadingEnabled" value="true"/>
<property name="clientMode" value="false"/>
<!-- Enable task execution events for examples. -->
<property name="includeEventTypes">
<list>
<util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_STARTED"/>
<util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_FINISHED"/>
<util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_FAILED"/>
<util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_TIMEDOUT"/>
<util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_SESSION_ATTR_SET"/>
<util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_REDUCED"/>
<util:constant static-field="org.apache.ignite.events.EventType.EVT_CACHE_OBJECT_PUT"/>
<util:constant static-field="org.apache.ignite.events.EventType.EVT_CACHE_OBJECT_READ"/>
<util:constant static-field="org.apache.ignite.events.EventType.EVT_CACHE_OBJECT_REMOVED"/>
</list>
</property>
<property name="publicThreadPoolSize" value="40"/>
<property name="systemThreadPoolSize" value="30"/>
<property name="dataStorageConfiguration">
<bean class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="dataRegionConfigurations">
<list>
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<!-- Custom region name. -->
<property name="name" value="6GB_Region"/>
<!-- 100 MB initial size. -->
<property name="initialSize" value="#{100L * 1024 * 1024}"/>
<!-- 6 GB maximum size. -->
<property name="maxSize" value="#{6L * 1024 * 1024 * 1024}"/>
<!-- Enabling persistence for the region. -->
<property name="persistenceEnabled" value="true"/>
<property name="metricsEnabled" value="true"/>
</bean>
</list>
</property>
</bean>
</property>
<property name="cacheConfiguration">
<list>
<bean id="myCacheTemplate" class="org.apache.ignite.configuration.CacheConfiguration">
<property name="dataRegionName" value="6GB_Region"/>
<property name="name" value="myCache"/>
<property name="atomicityMode" value="ATOMIC"/>
<property name="cacheMode" value="REPLICATED"/>
<property name="backups" value="0"/>
<property name="copyOnRead" value="false"/>
<property name="rebalanceBatchSize" value="#{1024 * 1024}"/>
<property name="rebalanceThrottle" value="0"/>
<property name="rebalanceThreadPoolSize" value="4"/>
<!-- <property name="swapEnabled" value="false"/>
<property name="startSize" value="#{100 * 1024 * 1024}"/>
<property name="evictionPolicy">
<bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
<property name="maxSize" value="1000000"/>
</bean>
</property>
<property name="offHeapMaxMemory" value="0"/>-->
</bean>
</list>
</property>
<!-- Explicitly configure TCP discovery SPI to provide list of initial nodes. -->
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<!--
Ignite provides several options for automatic discovery that can be used
instead os static IP based discovery. For information on all options refer
to our documentation: http://apacheignite.readme.io/docs/cluster-config
-->
<!-- Uncomment static IP finder to enable static-based discovery of initial nodes. -->
<!--<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">-->
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder">
<property name="namespace" value="ignite"/>
<property name="serviceName" value="ignite"/>
<!-- <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>xxx.xxx.xxx.xxx:47500</value>
<value>xxx.xxx.xxx.xxx:47500</value>
</list>
</property>
</bean>
<!--<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder">
<property name="namespace" value="ignite"/>
</bean>-->
</property>
</bean>
</property>
</bean>
</beans>
Фрагмент кода:
try (Ignite ignite = Ignition.start("/opt/apache-ignite-fabric-2.6.0-bin/examples/config/example-ignite.xml")) {
//try (Ignite ignite = Ignition.start("D:\\ApacheIgnite\\apache-ignite-fabric-2.6.0-bin\\examples\\config\\example-ignite.xml")) {
ignite.cluster().active(true);
System.out.println(">>> Cache asynchronous API started.");
// Auto-close cache at the end of the example.
try (IgniteCache<String, String> cache = ignite.getOrCreateCache("myCache")) {
Collection<IgniteFuture<?>> futs = new ArrayList<>();
// Execute several puts asynchronously.
String key = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
String value = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
System.out.println("CAME HERE 11");
long put_start_time = System.currentTimeMillis();
// Execute several puts asynchronously.
for(int i=0;i<messageCount;i++) {
futs.add(cache.putAsync(key+String.valueOf(i), value));
}
long put_end_time = System.currentTimeMillis();
System.out.println("Time taken to put="+(put_end_time-put_start_time)+" Milli Seconds ");
key = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
long get_start_time = System.currentTimeMillis();
// Wait for completion of all futures.
for (IgniteFuture<?> fut : futs) fut.get();
// Execute get operation asynchronously and wait for result.
for(int i=0;i<messageCount;i++) {
cache.getAsync(key+String.valueOf(i)).listen(new IgniteInClosure<IgniteFuture<String>>() {
/**
*
*/
private static final long serialVersionUID = -2066693655303313807L;
@Override
public void apply(IgniteFuture<String> fut) {
//System.out.println("Get operation completed [value=" + fut.get() + ']');
}
});
}
long get_end_time = System.currentTimeMillis();
System.out.println("Time taken to get="+(get_end_time-get_start_time)+" Milli Seconds ");
// Get the metrics of all the data regions configured on a node.
Collection<DataRegionMetrics> regionsMetrics = ignite.dataRegionMetrics();
System.out.println("----------------------------------Data Region Metrics---------------------------------- ");
// Print out some of the metrics.
for (DataRegionMetrics metrics : regionsMetrics) {
System.out.println(">>> Memory Region Name: " + metrics.getName());
System.out.println(">>> Allocation Rate: " + metrics.getAllocationRate());
System.out.println(">>> Fill Factor: " + metrics.getPagesFillFactor());
System.out.println(">>> Allocated Size: " + metrics.getTotalAllocatedSize());
System.out.println(">>> Physical Memory Size: " + metrics.getPhysicalMemorySize());
System.out.println(">>> Total allocated Size: " + metrics.getTotalAllocatedSize());
System.out.println(">>> Eviction Rate: " + metrics.getEvictionRate());
System.out.println(">>> Off Heap Size: " + metrics.getOffHeapSize());
System.out.println(">>> Off Heap used Size: " + metrics.getOffheapUsedSize());
}
System.out.println("Cached size=="+cache.size(CachePeekMode.ALL));
ignite.compute().broadcast(()->System.out.println(cache.get("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0")));
//cache.removeAll();
cache.clear();
//cache.removeAllAsync();
System.out.println("Cached size1=="+cache.size(CachePeekMode.ALL));
}
finally {
// Distributed cache could be removed from cluster only by #destroyCache() call.
//ignite.destroyCache("myCache");
}
}
ignite-stateful-set.yaml
apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
name: ignite
namespace: ignite
spec:
selector:
matchLabels:
app: ignite
serviceName: ignite
replicas: 2
template:
metadata:
labels:
app: ignite
spec:
serviceAccountName: ignite
containers:
- name: ignite
image: apacheignite/ignite:2.6.0
env:
- name: OPTION_LIBS
value: ignite-kubernetes,ignite-rest-http
- name: selfLink
value: file:///opt/apache-ignite-fabric-2.6.0-bin/examples/config/example-default.xml
- name: IGNITE_QUIET
value: "false"
- name: JVM_OPTS
value: "-Djava.net.preferIPv4Stack=true"
ports:
- containerPort: 11211 # JDBC port number.
- containerPort: 47100 # communication SPI port number.
- containerPort: 47500 # discovery SPI port number.
- containerPort: 49112 # JMX port number.
- containerPort: 10800 # SQL port number.
- containerPort: 8080 # REST port number.
- containerPort: 10900 #Thin clients port number.
volumeMounts:
- mountPath: "/data/ignite"
name: ignite-storage
volumeClaimTemplates:
- metadata:
name: ignite-storage
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
Наблюдения после запуска клиента.
Исключение:
Exception in thread "main" class org.apache.ignite.IgniteException: Failed to instantiate Spring XML application context (make sure all classes used in Spring configuration are present at CLASSPATH) [springUrl=file:/opt/apache-ignite-fabric-2.6.0-bin/examples/config/example-ignite.xml]
at org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:990)
at org.apache.ignite.Ignition.start(Ignition.java:355)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to instantiate Spring XML application context (make sure all classes used in Spring configuration are present at CLASSPATH) [springUrl=file:/opt/apache-ignite-fabric-2.6.0-bin/examples/config/example-ignite.xml]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ignite.cfg$child#0' defined in URL [file:/opt/apache-ignite-fabric-2.6.0-bin/examples/config/example-ignite.xml]: Cannot create inner bean 'org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi#c038203' of type [org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi] while setting bean property 'discoverySpi'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi#c038203' defined in URL
[file:/opt/apache-ignite-fabric-2.6.0-bin/examples/config/example-default.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:313)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi#c038203' defined in URL [file:/opt/apache-ignite-fabric-2.6.0-bin/examples/config/example-default.xml]: Cannot create inner bean
[file:/opt/apache-ignite-fabric-2.6.0-bin/examples/config/example-default.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder
Другая форма вопроса ...
Как только Kubernetes поднятв соответствии с шагами, упомянутыми выше, например, с двумя модулями, как и где развернуть мой файл логики client.jar для таблицы зажигания, чтобы выполнить файл Java внутри.
@ clarification
** Ниже файла ...
- имя: selfLink значение: файл: ///opt/apache-ignite-fabric-2.6.0-bin/examples/config/example-default.xml
должен содержать только содержимое ниже **
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder">
<property name="namespace" value="ignite"/>
</bean>
** и файл
try (Ignite ignite = Ignition.start ("/ opt / apache-ignite-fabric-2.6.0-bin / examples / config / example-ignite.xml ")) содержит мои пользовательские конфигурации, как показано ниже
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="namespace" value="ignite"/>
<property name="serviceName" value="ignite"/>
<bean
<property name="addresses">
<list>
<value>xxx.xxx.xxx.xxx:47500</value>
<value>xxx.xxx.xxx.xxx:47500</value>
</list>
</property>
</bean>
И приведенные ниже теги помогут кластеру Kubernetesопределить Ignite кластера NODэс.Я могу запустить свой клиент.
имя свойства = "пространство имен" value = "ignite" имя свойства = "serviceName" value = "ignite
Пожалуйста, исправьте, если это неправильный подход
@ клиент работает
java -Xms5g -Xmx15g -XX: + UseG1GC -XX: + DisableExplicitGC -cp "/ opt / apache-ignite-fabric-2.6.0-бен / ЛИЭС / воспламенить-SHMEM-1.0.0.jar: /opt/apache-ignite-fabric-2.6.0-bin/libs/cache-api-1.0.0.jar: / OPT / апач-ignite-ткань-2.6.0-bin / ЛИЭС / аннотации-13.0.jar: /Opt/apache-ignite-fabric-2.6.0-bin/libs/ignite-core-2.6.0.jar: /opt/apache-ignite-fabric-2.6.0-bin/libs/ignite-indexing/lucene-queryparser-5.5.2.jar: /opt/apache-ignite-fabric-2.6.0-bin/libs/ignite-indexing/lucene-core-5.5.2.jar: /opt/apache-ignite-fabric-2.60,0-бен / LIBS / воспламенить индексации / Lucene-анализаторы общего-5.5.2.jar: /opt/apache-ignite-fabric-2.6.0-bin/libs/ignite-indexing/ignite-indexing-2.6.0.jar: /opt/apache-ignite-fabric-2.6.0-bin/libs/ignite-indexing/h2-1.4.195.jar: /opt/apache-ignite-fabric-2.6.0-bin/libs/воспламенить индексации / Обще-кодек-1.11.jar: /opt/apache-ignite-fabric-2.6.0-bin/libs/ignite-spring/spring-tx-4.3.16.RELEASE.jar: / опт / apache-воспламенить-ткань-2.6.0-бен / LIBS / воспламенить-рессора / рессора-4.3.16.RELEASE.jar-JDBC: /opt/apache-ignite-fabric-2.6.0-bin/libs/ignite-spring/spring-expression-4.3.16.RELEASE.jar: /opt/apache-ignite-fabric-2.6.0-bin/libs/ignite-spring/spring-core-4.3.16.RELEASE.jar: / OPT / апаша-Воспламенение-fabric-2.6.0-bin / ЛИЭС / воспламенить-рессора / рессора-контекстно-4.3.16.RELEASE.jar: / опт / апче-воспламеняться-ткань-2.6.0-бен / ЛИЭС / воспламенить-рессора / рессора-бобы-4.3.16.RELEASE.jar: /opt/apache-ignite-fabric-2.6.0-bin/libs/ignite-spring/spring-aop-4.3.16.RELEASE.jar:/opt/apache-ignite-fabric-2.6.0-bin/libs/ignite-spring/ignite-spring-2.6.0.jar:/opt/apache-ignite-fabric-2.6.0-bin / ЛИЭС / воспламенить-весна / Обще-каротаж 1.1.1.jar: /opt/apache-ignite-fabric-2.6.0-bin/libs/optional/ignite-kubernetes.jar:/opt/apache-ignite-fabric-2.6.0-bin/libs/apache-ignite.jar "com.ecoenergy.cortix.ignite.IgniteFutureAsync 1000000