Ошибка при использовании YCSB с Gemfire

Hii Am Использование YCSB для тестирования производительности Pivotal Gemfire Мой сервер Gemfire работает правильно, и с помощью следующей команды я запускаю тестовый тест.

bin / ycsb load gemfire -P workloads / workloada -p gemfire.serverhost = x.x.x.x -P gemfire-binding / conf / cache.xml -p gemfire.serverport = 40404 -s> load.txt

Загрузка рабочей нагрузки ... Запуск теста. 0 сек: 0 операций; Исключение в потоке «Thread-1» java.lang.IllegalStateException: при использовании ClientCacheFactory необходимо использовать клиентский кеш в файле cache.xml. на com.gemstone.gemfire.internal.cache.xmlcache.CacheCreation.create (CacheCreation.java:316) на com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlParser.create (CacheXmlParser.java:274) на com.gemstone .gemfire.internal.cache.GemFireCacheImpl.loadCacheXml (GemFireCacheImpl.java:3495) в com.gemstone.gemfire.internal.cache.GemFireCacheImpl.initializeDeclarativeCache (GemFireCacheImpl.gemternal.java.gemaster.infirecacheImpl.gemcache.gemternal.java.gemplus.index.cache.inImpl.java: 926) .init (GemFireCacheImpl.java:708) в com.gemstone.gemfire.internal.cache.GemFireCacheImpl.create (GemFireCacheImpl.java:533) в com.gemstone.gemfire.cache.client.ClientCacheFactory.basicCreate (ClientCacheFactory.basicCreate. ) на com.gemstone.gemfire.cache.client.ClientCacheFactory.create (ClientCacheFactory.java:161) на com.yahoo.ycsb.db.GemFireClient.init (GemFireClient.java:125) на com.yahoo.ycsb.DBWrapper. init (DBWrapper.java:63) в com.yahoo.ycsb.ClientThread.run (Client.java:189) 0 сек: 0 операций;

Пожалуйста, кто-нибудь скажет мне, где я ошибаюсь

заранее спасибо


person user1802481    schedule 26.03.2014    source источник
comment
Вы можете показать свой файл cache.xml?   -  person Tom    schedule 26.03.2014
comment
‹? Xml version = 1.0 encoding = UTF-8?› ‹! DOCTYPE cache PUBLIC - // GemStone Systems, Inc.//GemFire ​​Declarative Cache 7.0 // EN gemstone.com/dtd/cache7_0.dtd› ‹cache lock-lease = 120 lock-timeout = 60 search-timeout = 300 is-server = false copy -on-read = false ›‹! - Добавьте сюда элементы региона - ›‹ имя региона = usertable refid = PARTITION / ›‹/cache›   -  person user1802481    schedule 26.03.2014
comment
это cache.xml, который в настоящее время используется сервером кеширования   -  person user1802481    schedule 26.03.2014
comment
пожалуйста, упомяните шаг по настройке gemfire для ycsb it vl, это будет очень полезно для меня, заранее спасибо :)   -  person user1802481    schedule 26.03.2014
comment
Мне не понятны ваши настройки. Есть ли у вас уже запущенный сервер кеширования, настроенный с указанным выше файлом cache.xml, к которому вы пытаетесь подключить свой тест ycsb? Я не знаком с ycsb, но думаю, что это проблема конфигурации gemfire в любом случае. Похоже, вы пытаетесь использовать клиентский кеш в своих тестах, но ваша тестовая конфигурация cache.xml не настроена как клиентский кеш.   -  person Tom    schedule 26.03.2014
comment
Нет, я запустил сервер с помощью административной оболочки gfsh с помощью следующей команды start server --name = server1 --server-port = 40405 --server-host = xxxx --cache-xml-file = / home / prashant / YCSB / cache.xml   -  person user1802481    schedule 27.03.2014
comment
Мой ответ помог вам решить проблему?   -  person Tom    schedule 04.04.2014


Ответы (2)


В вашем GemFireClient.java вы настраиваете клиентский кеш с классом ClientCacheFactory, но в cache.xml, который вы даете ему для конфигурации, указывается элемент cache вместо элемента client-cache. Попробуйте изменить свой cache.xml, чтобы использовать client-cache, как в примере ниже. Обратите внимание, что при настройке клиентского кеша в вашем cache.xml вам нужно будет использовать другое DTD, отличное от того, которое использовалось выше.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE client-cache PUBLIC
    "-//GemStone Systems, Inc.//GemFire Declarative Caching 7.0//EN"
    "http://www.gemstone.com/dtd/cache7_0.dtd">
<client-cache copy-on-read="false" >
    <region name="usertable" refid="PARTITION"/> 
</client-cache>
person Tom    schedule 27.03.2014
comment
@ tom Я также пробовал после внесения вышеуказанных изменений в xml, но он показывает ошибку при запуске сервера: Exception in thread main java.lang.IllegalStateException: вы должны использовать ClientCacheFactory, когда cache.xml использует клиентский кеш. в com.gemstone.gemfire.internal.cache.xmlcache.ClientCacheCreation.create (ClientCacheCreation.java:189) в com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlParser.create (CacheXmlParser.java_:293) в - person user1802481; 14.04.2014
comment
Можете ли вы показать код для GemFireClient.java и клиентского cache.xml (тот, который вы указываете в строке запуска ycbs)? - person Tom; 15.04.2014
comment
Клиент Gemfire, который я использую, находится здесь, по этой ссылке [ссылка] github.com/brianfrankcooper/YCSB/blob/master/gemfire/src/main/ и client.xml, которые используют то же, что вы упомянули в своем ответе выше - person user1802481; 16.04.2014
comment
А какой файл cache.xml вы используете для сервера? Тот, который находится в /home/prashant/YCSB/cache.xm? - person Tom; 17.04.2014

вам не нужно указывать cache.xml при запуске клиента YCSB. Файл cache.xml в папке gemfire-binding / conf предназначен для передачи на сервер GemFire.

person Swapnil    schedule 05.05.2014