Nano Hash - криптовалюты, майнинг, программирование

Чтобы запустить загрузку YCSB с параметром включения кластера для REDIS

Я выполняю бенчмаркинг YCSB в кластере Redis. Я создал кластер Redis и работает со следующим условием.

Если я укажу включить режим кластера в клиенте Redis с параметром -c. Части перемещаются правильно.

./redis-cli -h -c "host ip" -p "port"

если я не укажу параметр -c, он переместил чанк с ошибкой

./redis-cli -h "host ip" -p "port"

ТАК в параметре загрузки YCSB я не знаю, как включить параметр кластера (параметр -c).

В настоящее время я использую следующую команду без опции -c

./bin/ycsb load redis -s -P workloads/workloada -p "redis.host=host ip" -p "redis.port=port" > outputLoad.txt

Он возвращает ошибку. Можете ли вы помочь мне решить проблему?


Ответы:


1

Не знаю, разобрались ли вы с этой проблемой или нет.

Но в основном, если вы хотите использовать YCSB в Redis Cluster, вам необходимо реализовать клиент Redis Cluster для YCSB. Он очень похож на клиент YCSB для Redis. Вы можете скопировать и вставить Redis (один экземпляр) и изменить код в init(). Настройте и скомпилируйте с помощью maven, после чего вы сможете запустить YCSB через Redis Cluster Client.

Подробнее:

Поскольку YCSB использует java, нам нужно использовать jedis. В jedis есть вещь под названием JedisCluster, нам нужно использовать ее, чтобы установить соединение между YCSB и Redis Cluster. Более подробную информацию можно найти на jedis github.

Что касается части maven, не забудьте изменить pom.xml в папке кода клиента, а также добавить модуль на стороне клиента в корневую папку YCSB (также pom.xml в nosql).


Стоит упомянуть:

Я экспериментировал с Redis Cluster, используя YCSB. Настройка стандартная, 4 узла без реплик, 8-ядерная машина, 8 ГБ памяти, запуск YCSB с другой машины с такой же настройкой с 6 потоками для рабочих.

Кластер Redis в 3–4 раза медленнее, чем один экземпляр Redis, во всех аспектах. (В основном для сравнения порогов, когда пропускная способность не может быть увеличена путем настройки параметра -target)

Я действительно не знаю, моя ли это проблема или проблема jedis/jedisCluster/YCSB/Redis Cluster/и т. д.

Если вы успешно запустили YCSB в Redis Cluster, сообщите мне результат. Мне будет очень любопытно узнать ваш результат.

Спасибо

01.04.2015

2

В YCSB/redis/src/main/java/com/yahoo/ycsb/db/RedisClient.java и внутри

public void init() throws DBException

добавьте следующие строки

Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
//Jedis Cluster will attempt to discover cluster nodes automatically
jedisClusterNodes.add(new HostAndPort(host, port));
jedis = new JedisCluster(jedisClusterNodes);

Закомментировать

jedis.connect(); 

а также

jedis.disconnect();

Также не забудьте импортировать в RedisClient.java следующее:

import redis.clients.jedis.Protocol;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import java.util.HashSet;

Запустите тест той же командой, что и тест для Redis, он должен работать.

24.10.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..