Команда разделения в оболочке HBase

Я пытаюсь запустить YCSB на HBase с посылкой CDH YCSB. Я слежу за блогом Cloudera http://blog.cloudera.com/blog/2015/08/ycsb-the-open-standard-for-nosql-benchmarking-joins-cloudera-labs/. В этом блоге я вижу следующую команду:

hbase(main):001:0> n_splits = 200 # HBase recommends (10 * number of regionservers)

hbase(main):002:0> create 'usertable', 'cf', {SPLITS => (1..n_splits).map {|i| "user#{1000+i*(9999-1000)/n_splits}"}},

что делает это {SPLITS => (1..n_splits).map {|i| "user#{1000+i*(9999-1000)/n_splits}"} имею в виду? Я понимаю, что это используется для разделения регионов. Но я не могу найти, что на самом деле делает вышеуказанная команда? Пожалуйста, помогите мне лучше понять это.

0 ответов

Как вы уже упоминали, команда предварительно разбивает таблицу на регионы. Это рекомендуется для YCSB, потому что тест производительности загружает много данных, которые попадают на сервер в одном регионе и в конечном итоге не будут оценены, поскольку данные не будут распределены по кластеру.

Идеальное количество разделений зависит от других факторов. Я не уверен, почему они выбрали эту формулу, но я предполагаю, что это из-за примеров рабочей нагрузки.

Вы также можете запустить команду в онлайн-инструменте Ruby и самостоятельно проверить результаты:

user1044
user1089
user1134
user1179
...
user9999

Это рубиновая вещь, как указано здесь http://hbase.apache.org/book.html

Оболочка Apache HBase - это (J)Ruby IRB с добавленными некоторыми командами HBase. Все, что вы можете делать в IRB, вы должны уметь делать в HBase Shell.

Итак, вы сначала объявляете числовую переменную разделения

hbase(main):001:0> n_splits = 200 # HBase recommends (10 * number of regionservers)

Затем используйте синтаксис ruby ​​для создания массива в качестве параметра SPLITS команды create.

hbase(main):002:0> create 'usertable', 'cf', {SPLITS => (1..n_splits).map {|i| "user#{1000+i*(9999-1000)/n_splits}"}}

Даже сама команда create - это функция Ruby. вы можете найти определения в $HBASE_HOME/lib/ruby ​​/ shell / commands

Другие вопросы по тегам