Кластерный анализ
Кластерный анализКластерный анализ
Основная цель
Термин кластерный анализ (впервые ввел Tryon, 1939) в действительности включает в себя набор различных алгоритмов классификации. Общий вопрос, задаваемый исследователями во многих областях, состоит в том, как организовать наблюдаемые данные в наглядные структуры, т.е. развернуть таксономии. Например, биологи ставят цель разбить животных на различные виды, чтобы содержательно описать различия между ними. В соответствии с современной системой, принятой в биологии, человек принадлежит к приматам, млекопитающим, амниотам, позвоночным и животным. Заметьте, что в этой классификации, чем выше уровень агрегации, тем меньше сходства между членами в соответствующем классе.
Проверка статистической значимости
Заметим, что предыдущие рассуждения ссылаются на алгоритмы кластеризации, но ничего не упоминают о проверке статистической значимости. Фактически, кластерный анализ является не столько обычным статистическим методом, сколько «набором» различных алгоритмов «распределения объектов по кластерам». Существует точка зрения, что в отличие от многих других статистических процедур, методы кластерного анализа используются в большинстве случаев тогда, когда вы не имеете каких-либо априорных гипотез относительно классов, но все еще находитесь в описательной стадии исследования.
Следует понимать, что кластерный анализ определяет «наиболее возможно значимое решение». Поэтому проверка статистической значимости в действительности здесь неприменима, даже в случаях, когда известны p-уровни (как, например, в методе K средних).Области применения
Техника кластеризации применяется в самых разнообразных областях. Хартиган (Hartigan, 1975) дал прекрасный обзор многих опубликованных исследований, содержащих результаты, полученные методами кластерного анализа. Например, в области медицины кластеризация заболеваний, лечения заболеваний или симптомов заболеваний приводит к широко используемым таксономиям. В области психиатрии правильная диагностика кластеров симптомов, таких как паранойя, шизофрения и т.д., является решающей для успешной терапии. В археологии с помощью кластерного анализа исследователи пытаются установить таксономии каменных орудий, похоронных объектов и т.
Объединение (древовидная кластеризация)
Общая логика
Приведенный в разделе Основная цель пример поясняет цель алгоритма объединения (древовидной кластеризации). Назначение этого алгоритма состоит в объединении объектов (например, животных) в достаточно большие кластеры, используя некоторую меру сходства или расстояние между объектами. Типичным результатом такой кластеризации является иерархическое дерево.
Иерархическое дерево
Рассмотрим горизонтальную древовидную диаграмму. Диаграмма начинается с каждого объекта в классе (в левой части диаграммы). Теперь представим себе, что постепенно (очень малыми шагами) вы «ослабляете» ваш критерий о том, какие объекты являются уникальными, а какие нет. Другими словами, вы понижаете порог, относящийся к решению об объединении двух или более объектов в один кластер.
В результате, вы связываете вместе всё большее и большее число объектов и агрегируете (объединяете) все больше и больше кластеров, состоящих из все сильнее различающихся элементов. Окончательно, на последнем шаге все объекты объединяются вместе. На этих диаграммах горизонтальные оси представляют расстояние объединения (в
Меры расстояния
Объединение или метод древовидной кластеризации используется при формировании кластеров несходства или расстояния между объектами. Эти расстояния могут определяться в одномерном или многомерном пространстве. Например, если вы должны кластеризовать типы еды в кафе, то можете принять во внимание количество содержащихся в ней калорий, цену, субъективную оценку вкуса и т.д. Наиболее прямой путь вычисления расстояний между объектами в многомерном пространстве состоит в вычислении евклидовых расстояний. Если вы имеете двух- или трёхмерное пространство, то эта мера является реальным геометрическим расстоянием между объектами в пространстве (как будто расстояния между объектами измерены рулеткой).
Однако алгоритм объединения не «заботится» о том, являются ли «предоставленные» для этого расстояния настоящими или некоторыми другими производными мерами расстояния, что более значимо для исследователя; и задачей исследователей является подобрать правильный метод для специфических применений.Евклидово расстояние. Это, по-видимому, наиболее общий тип расстояния. Оно попросту является геометрическим расстоянием в многомерном пространстве и вычисляется следующим образом:
расстояние(x,y) = {i (xi — yi)2 }1/2
Заметим, что евклидово расстояние (и его квадрат) вычисляется по исходным, а не по стандартизованным данным. Это обычный способ его вычисления, который имеет определенные преимущества (например, расстояние между двумя объектами не изменяется при введении в анализ нового объекта, который может оказаться выбросом). Тем не менее, на расстояния могут сильно влиять различия между осями, по координатам которых вычисляются эти расстояния. К примеру, если одна из осей измерена в сантиметрах, а вы потом переведете ее в миллиметры (умножая значения на 10), то окончательное евклидово расстояние (или квадрат евклидова расстояния), вычисляемое по координатам, сильно изменится, и, как следствие, результаты кластерного анализа могут сильно отличаться от предыдущих.
Квадрат евклидова расстояния. Иногда может возникнуть желание возвести в квадрат стандартное евклидово расстояние, чтобы придать большие веса более отдаленным друг от друга объектам. Это расстояние вычисляется следующим образом (см. также замечания в предыдущем пункте):
расстояние(x,y) = i (xi — yi)2
Расстояние городских кварталов (манхэттенское расстояние).
расстояние(x,y) = i |xi — yi|
Расстояние Чебышева. Это расстояние может оказаться полезным, когда желают определить два объекта как «различные», если они различаются по какой-либо одной координате (каким-либо одним измерением). Расстояние Чебышева вычисляется по формуле:
расстояние(x,y) = Максимум|xi — yi|
Степенное расстояние. Иногда желают прогрессивно увеличить или уменьшить вес, относящийся к размерности, для которой соответствующие объекты сильно отличаются.
Это может быть достигнуто с использованием степенного расстояния. Степенное расстояние вычисляется по формуле:расстояние(x,y) = (i |xi — yi|p)1/r
где r и p — параметры, определяемые пользователем. Несколько примеров вычислений могут показать, как «работает» эта мера. Параметр p ответственен за постепенное взвешивание разностей по отдельным координатам, параметр r ответственен за прогрессивное взвешивание больших расстояний между объектами. Если оба параметра — r и p, равны двум, то это расстояние совпадает с расстоянием Евклида.
Процент несогласия. Эта мера используется в тех случаях, когда данные являются категориальными. Это расстояние вычисляется по формуле:
расстояние(x,y) = (Количество xi yi)/ i
Правила объединения или связи
На первом шаге, когда каждый объект представляет собой отдельный кластер, расстояния между этими объектами определяются выбранной мерой. Однако когда связываются вместе несколько объектов, возникает вопрос, как следует определить расстояния между кластерами? Другими словами, необходимо правило объединения или связи для двух кластеров. Здесь имеются различные возможности: например, вы можете связать два кластера вместе, когда любые два объекта в двух кластерах ближе друг к другу, чем соответствующее расстояние связи. Другими словами, вы используете «правило ближайшего соседа» для определения расстояния между кластерами; этот метод называется методом одиночной связи. Это правило строит «волокнистые» кластеры, т.е. кластеры, «сцепленные вместе» только отдельными элементами, случайно оказавшимися ближе остальных друг к другу. Как альтернативу вы можете использовать соседей в кластерах, которые находятся дальше всех остальных пар объектов друг от друга. Этот метод называется метод полной связи. Существует также множество других методов объединения кластеров, подобных тем, что были рассмотрены.
Одиночная связь (метод ближайшего соседа). Как было описано выше, в этом методе расстояние между двумя кластерами определяется расстоянием между двумя наиболее близкими объектами (ближайшими соседями) в различных кластерах. Это правило должно, в известном смысле, нанизывать объекты вместе для формирования кластеров, и результирующие кластеры имеют тенденцию быть представленными длинными «цепочками».
Полная связь (метод наиболее удаленных соседей). В этом методе расстояния между кластерами определяются наибольшим расстоянием между любыми двумя объектами в различных кластерах (т.е. «наиболее удаленными соседями»). Этот метод обычно работает очень хорошо, когда объекты происходят на самом деле из реально различных «рощ». Если же кластеры имеют в некотором роде удлиненную форму или их естественный тип является «цепочечным», то этот метод непригоден.
Невзвешенное попарное среднее. В этом методе расстояние между двумя различными кластерами вычисляется как среднее расстояние между всеми парами объектов в них. Метод эффективен, когда объекты в действительности формируют различные «рощи», однако он работает одинаково хорошо и в случаях протяженных («цепочного» типа) кластеров. Отметим, что в своей книге Снит и Сокэл (Sneath, Sokal, 1973) вводят аббревиатуру UPGMA для ссылки на этот метод, как на метод невзвешенного попарного арифметического среднего — unweighted pair-group method using arithmetic averages.
Взвешенное попарное среднее. Метод идентичен методу невзвешенного попарного среднего, за исключением того, что при вычислениях размер соответствующих кластеров (т.е. число объектов, содержащихся в них) используется в качестве весового коэффициента. Поэтому предлагаемый метод должен быть использован (скорее даже, чем предыдущий), когда предполагаются неравные размеры кластеров. В книге Снита и Сокэла (Sneath, Sokal, 1973) вводится аббревиатура WPGMA для ссылки на этот метод, как на метод взвешенного попарного арифметического среднего — weighted pair-group method using arithmetic averages.
Невзвешенный центроидный метод. В этом методе расстояние между двумя кластерами определяется как расстояние между их центрами тяжести. Снит и Сокэл (Sneath and Sokal (1973)) используют аббревиатуру UPGMC для ссылки на этот метод, как на метод невзвешенного попарного центроидного усреднения — unweighted pair-group method using the centroid average.
Взвешенный центроидный метод (медиана). тот метод идентичен предыдущему, за исключением того, что при вычислениях используются веса для учёта разницы между размерами кластеров (т.е. числами объектов в них). Поэтому, если имеются (или подозреваются) значительные отличия в размерах кластеров, этот метод оказывается предпочтительнее предыдущего. Снит и Сокэл (Sneath, Sokal 1973) использовали аббревиатуру WPGMC для ссылок на него, как на метод невзвешенного попарного центроидного усреднения — weighted pair-group method using the centroid average.
Метод Варда. Этот метод отличается от всех других методов, поскольку он использует методы дисперсионного анализа для оценки расстояний между кластерами. Метод минимизирует сумму квадратов (SS) для любых двух (гипотетических) кластеров, которые могут быть сформированы на каждом шаге. Подробности можно найти в работе Варда (Ward, 1963). В целом метод представляется очень эффективным, однако он стремится создавать кластеры малого размера.
Для обзора других методов кластеризации, см. Двухвходовое объединение и Метод K средних.
Двувходовое объединение
Вводный обзор
Ранее этот метод обсуждался в терминах «объектов», которые должны быть кластеризованы (см. Объединение (древовидная кластеризация)). Во всех других видах анализа интересующий исследователя вопрос обычно выражается в терминах наблюдений или переменных. Оказывается, что кластеризация, как по наблюдениям, так и по переменным может привести к достаточно интересным результатам. Например, представьте, что медицинский исследователь собирает данные о различных характеристиках (переменные) состояний пациентов (наблюдений), страдающих сердечными заболеваниями. Исследователь может захотеть кластеризовать наблюдения (пациентов) для определения кластеров пациентов со сходными симптомами. В то же самое время исследователь может захотеть кластеризовать переменные для определения кластеров переменных, которые связаны со сходным физическим состоянием.
Двувходовое объединение
После этого обсуждения, относящегося к тому, кластеризовать наблюдения или переменные, можно задать вопрос, а почему бы не проводить кластеризацию в обоих направлениях? Модуль Кластерный анализ содержит эффективную двувходовую процедуру объединения, позволяющую сделать именно это. Однако двувходовое объединение используется (относительно редко) в обстоятельствах, когда ожидается, что и наблюдения и переменные одновременно вносят вклад в обнаружение осмысленных кластеров.
Так, возвращаясь к предыдущему примеру, можно предположить, что медицинскому исследователю требуется выделить кластеры пациентов, сходных по отношению к определенным кластерам характеристик физического состояния. Трудность с интерпретацией полученных результатов возникает вследствие того, что сходства между различными кластерами могут происходить из (или быть причиной) некоторого различия подмножеств переменных. Поэтому получающиеся кластеры являются по своей природе неоднородными. Возможно это кажется вначале немного туманным; в самом деле, в сравнении с другими описанными методами кластерного анализа (см. Объединение (древовидная кластеризация) и Метод K средних), двувходовое объединение является, вероятно, наименее часто используемым методом. Однако некоторые исследователи полагают, что он предлагает мощное средство разведочного анализа данных (за более подробной информацией вы можете обратиться к описанию этого метода у Хартигана (Hartigan, 1975)).
Метод K средних
Общая логика
Этот метод кластеризации существенно отличается от таких агломеративных методов, как Объединение (древовидная кластеризация) и Двувходовое объединение. Предположим, вы уже имеете гипотезы относительно числа кластеров (по наблюдениям или по переменным). Вы можете указать системе образовать ровно три кластера так, чтобы они были настолько различны, насколько это возможно. Это именно тот тип задач, которые решает алгоритм метода K средних. В общем случае метод K средних строит ровно K различных кластеров, расположенных на возможно больших расстояниях друг от друга.
Пример
В примере с физическим состоянием (см. Двувходовое объединение), медицинский исследователь может иметь «подозрение» из своего клинического опыта, что его пациенты в основном попадают в три различные категории. Далее он может захотеть узнать, может ли его интуиция быть подтверждена численно, то есть, в самом ли деле кластерный анализ K средних даст три кластера пациентов, как ожидалось? Если это так, то средние различных мер физических параметров для каждого кластера будут давать количественный способ представления гипотез исследователя (например, пациенты в кластере 1 имеют высокий параметр 1, меньший параметр 2 и т.д.).
Вычисления
С вычислительной точки зрения вы можете рассматривать этот метод, как дисперсионный анализ (см. Дисперсионный анализ) «наоборот». Программа начинает с K случайно выбранных кластеров, а затем изменяет принадлежность объектов к ним, чтобы: (1) - минимизировать изменчивость внутри кластеров, и (2) — максимизировать изменчивость между кластерами. Данный способ аналогичен методу «дисперсионный анализ (ANOVA) наоборот» в том смысле, что критерий значимости в дисперсионном анализе сравнивает межгрупповую изменчивость с внутригрупповой при проверке гипотезы о том, что средние в группах отличаются друг от друга. В кластеризации методом K средних программа перемещает объекты (т.е. наблюдения) из одних групп (кластеров) в другие для того, чтобы получить наиболее значимый результат при проведении дисперсионного анализа (ANOVA).
Интерпретация результатов
Обычно, когда результаты кластерного анализа методом K средних получены, можно рассчитать средние для каждого кластера по каждому измерению, чтобы оценить, насколько кластеры различаются друг от друга. В идеале вы должны получить сильно различающиеся средние для большинства, если не для всех измерений, используемых в анализе. Значения F-статистики, полученные для каждого измерения, являются другим индикатором того, насколько хорошо соответствующее измерение дискриминирует кластеры.
Все права на материалы электронного учебника принадлежат компании StatSoft
Кластерный анализ — это алгоритм исследования групп данных
Кластерный анализ этоДоброго времени суток. Вот есть у меня уважение к людям, которые являются фанатами своего дела.
Максим, мой друг, относится именно к этой категории. Постоянно работает с цифрами, анализирует их, делает соответствующие отчеты.
Вчера вместе обедали, так почти полчаса рассказывал мне про кластерный анализ – что это и в каких случаях его применения является обоснованным и целесообразным. Ну а я что?
Память у меня хорошая, поэтому все эти данные, к слову, о которых я и так знала, предоставлю вам в первозданном и максимально информативном виде.
Содержание статьи:
Что такое кластер?
Кластерный анализ предназначен для разбиения совокупности объектов на однородные группы (кластеры или классы). Это задача многомерной классификации данных.
Важно!
Существует около 100 разных алгоритмов кластеризации, однако, наиболее часто используемые — иерархический кластерный анализ и кластеризация методом k-средних.
Где применяется кластерный анализ? В маркетинге это сегментация конкурентов и потребителей.
В менеджменте: разбиение персонала на различные по уровню мотивации группы, классификация поставщиков, выявление схожих производственных ситуаций, при которых возникает брак.
В медицине — классификация симптомов, пациентов, препаратов. В социологии — разбиение респондентов на однородные группы. По сути кластерный анализ хорошо зарекомендовал себя во всех сферах жизнедеятельности человека.
Прелесть данного метода — он работает даже тогда, когда данных мало и невыполняются требования нормальности распределений случайных величин и другие трбования классических методов статистического анализа.
Поясним суть кластерного анализа, не прибегая к строгой терминологии:
допустим, Вы провели анкетирование сотрудников и хотите определить, каким образом можно наиболее эффективно управлять персоналом.
То есть Вы хотите разделить сотрудников на группы и для каждой из них выделить наиболее эффективные рычаги управления. При этом различия между группами должны быть очевидными, а внутри группы респонденты должны быть максимально похожи.
Для решения задачи предлагается использовать иерархический кластерный анализ.
Совет!
В результате мы получим дерево, глядя на которое мы должны определиться на сколько классов (кластеров) мы хотим разбить персонал.
Предположим, что мы решили разбить персонал на три группы, тогда для изучения респондентов, попавших в каждый кластер получим табличку примерно следующего содержания:
Категории респондентовПоясним, как сформирована приведенная выше таблица. В первом столбце расположен номер кластера — группы, данные по которой отражены в строке.
Например, первый кластер на 80% составляют мужчины. 90% первого кластера попадают в возрастную категорию от 30 до 50 лет, а 12% респондентов считает, что льготы очень важны. И так далее.
Попытаемся составить портреты респондентов каждого кластера:
- Первая группа — в основном мужчины зрелого возраста, занимающие руководящие позиции. Соцпакет (MED, LGOTI, TIME-своб время) их не интересует. Они предпочитают получать хорошую зарплату, а не помощь от работодателя.
- Группа два наоборот отдает предпочтение соцпакету. Состоит она, в основном, из людей «в возрасте», занимающих невысокие посты. Зарплата для них безусловно важна, но есть и другие приоритеты.
- Третья группа наиболее «молодая». В отличие от предыдущих двух, очевиден интерес к возможностям обучения и профессионального роста. У этой категории сотрудников есть хороший шанс в скором времени пополнить первую группу.
Таким образом, планируя кампанию по внедрению эффективных методов управления персоналом, очевидно, что в нашей ситуации можно увеличить соцпакет у второй группы в ущерб, к примеру, зарплате.
Если говорить о том, каких специалистов следует направлять на обучение, то можно однозначно рекомендовать обратить внимание на третью группу.
Источник: http://finvopros.com/www.nickart.spb.ru/analysis/cluster.php
Особенности кластерного анализа
Кластер — это цена актива в определенный промежуток времени, на котором совершались сделки. Результирующий объём покупок и продаж указан цифрой внутри кластера.
Бар любого ТФ вмещает в себя ,как правило, несколько кластеров. Это позволяет детально видеть объемы покупок, продаж и их баланс в каждом отдельном баре, по каждому ценовому уровню.
Построение кластерного графикаИзменение цены одного актива, неизбежно влечёт за собой цепочку ценовых движений и на других инструментах.
Внимание!
В большинстве случаев понимание трендового движения происходит уже в тот момент, когда оно бурно развивается, и вход в рынок по тренду чреват попаданием в коррекционную волну.
Для успешных сделок необходимо понимать текущую ситуацию и уметь предвидеть будущие ценовые движения. Этому можно научиться, анализируя график кластеров.
С помощью кластерного анализа можно видеть активность участников рынка внутри даже самого маленького ценового бара. Это наиболее точный и детальный анализ, так как показывает точечное распределение объёмов сделок по каждому ценовому уровню актива.
На рынке постоянно идёт противоборство интересов продавцов и покупателей. И каждое самое маленькое движение цены (тик), является тем ходом к компромиссу – ценовому уровню — который в данный момент устраивает обе стороны.
Но рынок динамичен, количество продавцов и покупателей непрерывно изменяется. Если в один момент времени на рынке доминировали продавцы, то в следующий момент, вероятнее всего, будут покупатели.
Не одинаковым оказывается и количество совершённых сделок на соседних ценовых уровнях. И всё же сначала рыночная ситуация отражается на суммарных объёмах сделок, а уж затем на цене.
Если видеть действия доминирующих участников рынка (продавцов или покупателей), то можно предсказывать и само движение цены.
Для успешного применения кластерного анализа прежде всего следует понять, что такое кластер и дельта.
Кластерный графикКластером называют ценовое движение, которое разбито на уровни, на которых совершались сделки с известными объёмами. Дельта показывает разницу между покупками и продажами, происходящими в каждом кластере.
Каждый кластер, или группа дельт, позволяет разобраться в том, покупатели или продавцы преобладают на рынке в данный момент времени.
Достаточно лишь подсчитать общую дельту, просуммировав продажи и покупки. Если дельта отрицательна, то рынок перепродан, на нём избыточными являются сделки на продажу. Когда же дельта положительна, то на рынке явно доминируют покупатели.
Важно!
Сама дельта может принимать нормальное или критическое значение. Значение объёма дельты сверх нормального в кластере выделяют красным цветом.
Если дельта умеренна, то это характеризует флетовое состояние на рынке. При нормальном значении дельты на рынке наблюдается трендовое движение, а вот критическое значение всегда является предвестником разворота цены.
Торговля на Форекс с помощью КА
Для получения максимальной прибыли нужно уметь определить переход дельты из умеренного уровня в нормальный. Ведь в этом случае можно заметить само начало перехода от флета к трендовому движению и суметь получить наибольшую прибыль.
Более наглядным является кластерный график на нём можно увидеть значимые уровни накопления и распределения объемов, построить уровни поддержки и сопротивления. Это позволяет трейдеру найти точный вход в сделку.
Используя дельту, можно судить о преобладании на рынке продаж или покупок. Кластерный анализ позволяет наблюдать сделки и отслеживать их объёмы внутри бара любого ТФ.
Особо это важно при подходе к значимым уровням поддержки или сопротивления. Суждения по кластерам — ключ к пониманию рынка.
Источник: http://finvopros.com/orderflowtrading.ru/analitika-rynka/obemy/klasternyy-analiz/
Области и особенности применения анализа кластеров
Термин кластерный анализ (впервые ввел Tryon, 1939) в действительности включает в себя набор различных алгоритмов классификации.
Совет!
Общий вопрос, задаваемый исследователями во многих областях, состоит в том, как организовать наблюдаемые данные в наглядные структуры, т.е. развернуть таксономии.
Например, биологи ставят цель разбить животных на различные виды, чтобы содержательно описать различия между ними.
В соответствии с современной системой, принятой в биологии, человек принадлежит к приматам, млекопитающим, амниотам, позвоночным и животным.
Заметьте, что в этой классификации, чем выше уровень агрегации, тем меньше сходства между членами в соответствующем классе.
Человек имеет больше сходства с другими приматами (т. е. с обезьянами), чем с «отдаленными» членами семейства млекопитающих (например, собаками) и т.д.
Заметим, что предыдущие рассуждения ссылаются на алгоритмы кластеризации, но ничего не упоминают о проверке статистической значимости.
Фактически, кластерный анализ является не столько обычным статистическим методом, сколько «набором» различных алгоритмов «распределения объектов по кластерам».
Существует точка зрения, что в отличие от многих других статистических процедур, методы кластерного анализа используются в большинстве случаев тогда, когда вы не имеете каких-либо априорных гипотез относительно классов, но все еще находитесь в описательной стадии исследования.
Внимание!
Следует понимать, что кластерный анализ определяет «наиболее возможно значимое решение».
Поэтому проверка статистической значимости в действительности здесь неприменима, даже в случаях, когда известны p-уровни (как, например, в методе K средних).
Техника кластеризации применяется в самых разнообразных областях. Хартиган (Hartigan, 1975) дал прекрасный обзор многих опубликованных исследований, содержащих результаты, полученные методами кластерного анализа.
Например, в области медицины кластеризация заболеваний, лечения заболеваний или симптомов заболеваний приводит к широко используемым таксономиям.
В области психиатрии правильная диагностика кластеров симптомов, таких как паранойя, шизофрения и т.д., является решающей для успешной терапии. В археологии с помощью кластерного анализа исследователи пытаются установить таксономии каменных орудий, похоронных объектов и т.д.
Известны широкие применения кластерного анализа в маркетинговых исследованиях. В общем, всякий раз, когда необходимо классифицировать «горы» информации к пригодным для дальнейшей обработки группам, кластерный анализ оказывается весьма полезным и эффективным.
Древовидная кластеризация
Приведенный в разделе Основная цель пример поясняет цель алгоритма объединения (древовидной кластеризации).
Важно!
Назначение этого алгоритма состоит в объединении объектов (например, животных) в достаточно большие кластеры, используя некоторую меру сходства или расстояние между объектами. Типичным результатом такой кластеризации является иерархическое дерево.
Рассмотрим горизонтальную древовидную диаграмму. Диаграмма начинается с каждого объекта в классе (в левой части диаграммы).
Иерархическое деревоТеперь представим себе, что постепенно (очень малыми шагами) вы «ослабляете» ваш критерий о том, какие объекты являются уникальными, а какие нет.
Другими словами, вы понижаете порог, относящийся к решению об объединении двух или более объектов в один кластер.
В результате, вы связываете вместе всё большее и большее число объектов и агрегируете (объединяете) все больше и больше кластеров, состоящих из все сильнее различающихся элементов.
Окончательно, на последнем шаге все объекты объединяются вместе. На этих диаграммах горизонтальные оси представляют расстояние объединения (в вертикальных древовидных диаграммах вертикальные оси представляют расстояние объединения).
Так, для каждого узла в графе (там, где формируется новый кластер) вы можете видеть величину расстояния, для которого соответствующие элементы связываются в новый единственный кластер.
Когда данные имеют ясную «структуру» в терминах кластеров объектов, сходных между собой, тогда эта структура, скорее всего, должна быть отражена в иерархическом дереве различными ветвями.
Совет!
В результате успешного анализа методом объединения появляется возможность обнаружить кластеры (ветви) и интерпретировать их.
Объединение или метод древовидной кластеризации используется при формировании кластеров несходства или расстояния между объектами. Эти расстояния могут определяться в одномерном или многомерном пространстве.
Например, если вы должны кластеризовать типы еды в кафе, то можете принять во внимание количество содержащихся в ней калорий, цену, субъективную оценку вкуса и т.д.
Наиболее прямой путь вычисления расстояний между объектами в многомерном пространстве состоит в вычислении евклидовых расстояний.
Если вы имеете двух- или трёхмерное пространство, то эта мера является реальным геометрическим расстоянием между объектами в пространстве (как будто расстояния между объектами измерены рулеткой).
Однако алгоритм объединения не «заботится» о том, являются ли «предоставленные» для этого расстояния настоящими или некоторыми другими производными мерами расстояния, что более значимо для исследователя; и задачей исследователей является подобрать правильный метод для специфических применений.
Евклидово расстояние. Это, по-видимому, наиболее общий тип расстояния. Оно попросту является геометрическим расстоянием в многомерном пространстве и вычисляется следующим образом:
Заметим, что евклидово расстояние (и его квадрат) вычисляется по исходным, а не по стандартизованным данным.
Это обычный способ его вычисления, который имеет определенные преимущества (например, расстояние между двумя объектами не изменяется при введении в анализ нового объекта, который может оказаться выбросом).
Внимание!
Тем не менее, на расстояния могут сильно влиять различия между осями, по координатам которых вычисляются эти расстояния. К примеру, если одна из осей измерена в сантиметрах, а вы потом переведете ее в миллиметры (умножая значения на 10), то окончательное евклидово расстояние (или квадрат евклидова расстояния), вычисляемое по координатам, сильно изменится, и, как следствие, результаты кластерного анализа могут сильно отличаться от предыдущих.
Квадрат евклидова расстояния. Иногда может возникнуть желание возвести в квадрат стандартное евклидово расстояние, чтобы придать большие веса более отдаленным друг от друга объектам.
Это расстояние вычисляется следующим образом:
Расстояние городских кварталов (манхэттенское расстояние). Это расстояние является просто средним разностей по координатам.
В большинстве случаев эта мера расстояния приводит к таким же результатам, как и для обычного расстояния Евклида.
Однако отметим, что для этой меры влияние отдельных больших разностей (выбросов) уменьшается (так как они не возводятся в квадрат). Манхэттенское расстояние вычисляется по формуле:
Расстояние Чебышева. Это расстояние может оказаться полезным, когда желают определить два объекта как «различные», если они различаются по какой-либо одной координате (каким-либо одним измерением). Расстояние Чебышева вычисляется по формуле:
Степенное расстояние. Иногда желают прогрессивно увеличить или уменьшить вес, относящийся к размерности, для которой соответствующие объекты сильно отличаются.
Это может быть достигнуто с использованием степенного расстояния. Степенное расстояние вычисляется по формуле:
где r и p — параметры, определяемые пользователем. Несколько примеров вычислений могут показать, как «работает» эта мера.
Параметр p ответственен за постепенное взвешивание разностей по отдельным координатам, параметр r ответственен за прогрессивное взвешивание больших расстояний между объектами. Если оба параметра — r и p, равны двум, то это расстояние совпадает с расстоянием Евклида.
Процент несогласия. Эта мера используется в тех случаях, когда данные являются категориальными. Это расстояние вычисляется по формуле:
Правила объединения или связи
На первом шаге, когда каждый объект представляет собой отдельный кластер, расстояния между этими объектами определяются выбранной мерой.
Важно!
Однако когда связываются вместе несколько объектов, возникает вопрос, как следует определить расстояния между кластерами?
Другими словами, необходимо правило объединения или связи для двух кластеров. Здесь имеются различные возможности: например, вы можете связать два кластера вместе, когда любые два объекта в двух кластерах ближе друг к другу, чем соответствующее расстояние связи.
Другими словами, вы используете «правило ближайшего соседа» для определения расстояния между кластерами; этот метод называется методом одиночной связи.
Это правило строит «волокнистые» кластеры, т.е. кластеры, «сцепленные вместе» только отдельными элементами, случайно оказавшимися ближе остальных друг к другу.
Как альтернативу вы можете использовать соседей в кластерах, которые находятся дальше всех остальных пар объектов друг от друга. Этот метод называется метод полной связи.
Существует также множество других методов объединения кластеров, подобных тем, что были рассмотрены.
Одиночная связь (метод ближайшего соседа). Как было описано выше, в этом методе расстояние между двумя кластерами определяется расстоянием между двумя наиболее близкими объектами (ближайшими соседями) в различных кластерах.
Это правило должно, в известном смысле, нанизывать объекты вместе для формирования кластеров, и результирующие кластеры имеют тенденцию быть представленными длинными «цепочками».
Полная связь (метод наиболее удаленных соседей). В этом методе расстояния между
Эффективные кластерные решения
Для начала следует определить, на кого рассчитана статья, чтобы читатели решили, стоит ли тратить на нее время.
Потребность в написании этой статьи возникла после прочитанного семинара на выставке ENTEREX’2002 в городе Киеве. Именно тогда, в начале 2002-го я увидел, что интерес к теме кластерных систем значительно возрос по сравнению с тем, что наблюдалось всего пару лет назад.
Я не ставил себе целью на семинаре и в этой статье проанализировать варианты решения конкретных прикладных задач на кластерных системах, это отдельная и очень обширная тема. Я ставил себе задачу познакомить читателей с терминологией и средствами построения кластерных систем, а также показать, для каких задач полезен кластеринг. Для полного убеждения сомневающихся в статье приведены конкретные примеры реализации кластерных систем и мои контакты, по которым я готов отвечать по мере возможностей на вопросы, связанные с кластерными технологиями, а также принимать ваши замечания и советы.
Концепция кластерных систем
Рисунок 1. Кластерная система
- LAN — Local Area Network, локальная сеть
- SAN — Storage Area Network, сеть хранения данных
Впервые в классификации вычислительных систем термин «кластер» определила компания Digital Equipment Corporation (DEC).
По определению DEC, кластер — это группа вычислительных машин, которые связаны между собою и функционируют как один узел обработки информации.
Кластер функционирует как единая система, то есть для пользователя или прикладной задачи вся совокупность вычислительной техники выглядит как один компьютер. Именно это и является самым важным при построении кластерной системы.
Первые кластеры компании Digital были построены на машинах VAX. Эти машины уже не производятся, но все еще работают на площадках, где были установлены много лет назад. И наверное самое важное то, что общие принципы, заложенные при их проектировании, остаются основой при построении кластерных систем и сегодня.
К общим требованиям, предъявляемым к кластерным системам, относятся:
- Высокая готовность
- Высокое быстродействие
- Масштабирование
- Общий доступ к ресурсам
- Удобство обслуживания
Естественно, что при частных реализациях одни из требований ставятся во главу угла, а другие отходят на второй план. Так, например, при реализации кластера, для которого самым важным является быстродействие, для экономии ресурсов меньше внимания придают высокой готовности.
В общем случае кластер функционирует как мультипроцессорная система, поэтому, важно понимать классификацию таких систем в рамках распределения программно-аппаратных ресурсов.
Рисунок 2. Тесно связанная мультипроцессорная система
Рисунок 3. Умеренно связанная мультипроцессорная система
Рисунок 4. Слабо связанная мультипроцессорная система
Обычно на PC платформах, с которыми мне приходится работать, используются реализации кластерной системы в моделях тесно связанной и умеренно связанной мультипроцессорных архитектур.
Разделение на High Avalibility и High Performance системы
В функциональной классификации кластеры можно разделить на «Высокоскоростные» (High Performance, HP), «Системы Высокой Готовности» (High Availability, HA), а также «Смешанные Системы».
Высокоскоростные кластеры используются для задач, которые требуют значительной вычислительной мощности. Классическими областями, в которых используются подобные системы, являются:
- обработка изображений: рендеринг, распознавание образов
- научные исследования: физика, биоинформатика, биохимия, биофизика
- промышленность (геоинформационные задачи, математическое моделирование)
и много других…
Кластеры, которые относятся к системам высокой готовности, используются везде, где стоимость возможного простоя превышает стоимость затрат, необходимых для построения кластерной системы, например:
- биллинговые системы
- банковские операции
- электронная коммерция
- управление предприятием, и т. п….
Смешанные системы объединяют в себе особенности как первых, так и вторых. Позиционируя их, следует отметить, что кластер, который обладает параметрами как High Performance, так и High Availability, обязательно проиграет в быстродействии системе, ориентированной на высокоскоростные вычисления, и в возможном времени простоя системе, ориентированной на работу в режиме высокой готовности.
Проблематика High Performance кластеров
Рисунок 5. Высокоскоростной кластер
Почти в любой ориентированной на параллельное вычисление задаче невозможно избегнуть необходимости передавать данные от одной подзадачи другой.
Таким образом, быстродействие High Performance кластерной системы определяется быстродействием узлов и связей между ними. Причем влияние скоростных параметров этих связей на общую производительность системы зависит от характера выполняемой задачи. Если задача требует частого обмена данными с подзадачами, тогда быстродействию коммуникационного интерфейса следует уделять максимум внимания. Естественно, чем меньше взаимодействуют части параллельной задачи между собою, тем меньше времени потребуется для ее выполнения. Что диктует определенные требования также и на программирование параллельных задач.
Основные проблемы при необходимости обмена данными между подзадачами возникают в связи с тем, что быстродействие передачи данных между центральным процессором и оперативной памятью узла значительно превышает скоростные характеристики систем межкомпьютерного взаимодействия. Кроме того, сильно сказывается на изменении функционирования системы, по сравнению с привычными нам SMP системами, разница в быстродействии кэш памяти процессоров и межузловых коммуникаций.
Быстродействие интерфейсов характеризуется двумя параметрами: пропускной способностью непрерывного потока даных и максимальным количеством самых маленьких пакетов, которые можно передать за единицу времени. Варианты реализаций коммуникационных интерфейсов мы рассмотрим в разделе «Средства реализации High Performance кластеров».
Проблематика High Availability кластерных систем
Сегодня в мире распространены несколько типов систем высокой готовности. Среди них кластерная система является воплощением технологий, которые обеспечивают высокий уровень отказоустойчивости при самой низкой стоимости. Отказоустойчивость кластера обеспечивается дублированием всех жизненно важных компонент. Максимально отказоустойчивая система должна не иметь ни единой точки, то есть активного элемента, отказ которого может привести к потере функциональности системы. Такую характеристику как правило называют — NSPF (No Single Point of Failure, — англ., отсутствие единой точки отказа).
Рисунок 6. Кластерная система с отсутствием точек отказов
При построении систем высокой готовности, главная цель — обеспечить минимальное время простоя.
Для того, чтобы система обладала высокими показатели готовности, необходимо:
- чтобы ее компоненты были максимально надежными
- чтобы она была отказоустойчивая, желательно, чтобы не имела точек отказов
- а также важно, чтобы она была удобна в обслуживании и разрешала проводить замену компонент без останова
Пренебрежение любым из указанных параметров, может привести к потере функциональности системы.
Давайте коротко пройдемся по всем трём пунктам.
Что касается обеспечения максимальной надежности, то она осуществляется путем использования электронных компонент высокой и сверхвысокой интеграции, поддержания нормальных режимов работы, в том числе тепловых.
Отказоустойчивость обеспечивается путем использования специализированных компонент (ECC, Chip Kill модули памяти, отказоустойчивые блоки питания, и т.п.), а также с помощью технологий кластеризации. Благодаря кластеризации достигается такая схема функционирования, когда при отказе одного из компьютеров задачи перераспределяются между другими узлами кластера, которые функционируют исправно. Причем одной из важнейших задач производителей кластерного программного обеспечения является обеспечение минимального времени восстановления системы в случае сбоя, так как отказоустойчивость системы нужна именно для минимизации так называемого внепланового простоя.
Много кто забывает, что удобство в обслуживании, которое служит уменьшению плановых простоев (например, замены вышедшего из строя оборудования) является одним из важнейших параметров систем высокой готовности. И если система не разрешает заменять компоненты без выключения всего комплекса, то ее коэффициент готовности уменьшается.
Смешанные архитектуры
Рисунок 7. Высокоскоростной отказоустойчивый кластер
Сегодня часто можно встретить смешанные кластерные архитектуры, которые одновременно являются как системами высокой готовности, так и высокоскоростными кластерными архитектурами, в которых прикладные задачи распределяются по узлам системы. Наличие отказоустойчивого комплекса, увеличение быстродействия которого осуществляется путем добавления нового узла, считается самым оптимальным решением при построении вычислительной системы. Но сама схема построения таких смешанных кластерных архитектур приводит к необходимости объединения большого количества дорогих компонент для обеспечения высокого быстродействия и резервирования одновременно. И так как в High Performance кластерной системе наиболее дорогим компонентом является система высокоскоростных коммуникаций, ее дублирование приведет к значительным финансовым затратам. Следует отметить, что системы высокой готовности часто используются для OLTP задач, которые оптимально функционируют на симметричных мультипроцессорных системах. Реализации таких кластерных систем часто ограничиваются 2-х узловыми вариантами, ориентированными в первую очередь на обеспечение высокой готовности. Но в последнее время использование недорогих систем количеством более двух в качестве компонент для построения смешанных HA/HP кластерных систем становится популярным решением.
Что подтверждает, в частности, информация агентства The Register, опубликованная на его страничке:
«Председатель корпорации Oracle объявил о том, что в ближайшее время три Unіх сервера, на которых работает основная масса бизнес-приложений компании, будут заменены на блок серверов на базе процессоров Іntеl под управлением ОС Lіnuх. Ларри Эллисон настаивает на том, что введение поддержки кластеров при работе с приложениями и базами данных снижает затраты и повышает отказоустойчивость. »
Средства реализации High Performance кластеров
Самыми популярными сегодня коммуникационными технологиями для построения суперкомпьютеров на базе кластерных архитектур являются:
Myrinet, Virtual Interface Architecture (cLAN компании Giganet — одна из первых коммерческих аппаратных реализаций), SCI (Scalable Coherent Interface), QsNet (Quadrics Supercomputers World), Memory Channel (разработка Compaq Computer и Encore Computer Corp), а также хорошо всем известные Fast Ethertnet и Gigabit Ethernet.
Рисунок 8. Скорость передачи непрерывного потока данных
Рисунок 9. Время передачи пакета нулевой длинны
Эти диаграммы (Рис. 8 и 9) дают возможность увидеть быстродействие аппаратных реализаций разных технологий, но следует помнить, что на реальных задачах и при использовании разнообразных аппаратных платформ параметры задержки и скорости передачи данных получаются на 20-40%, а иногда на все 100% хуже, чем максимально возможные.
Например, при использовании библиотек MPI для коммуникационных карточек cLAN и Intel Based серверов с шиной PCI, реальная пропускная способность канала составляет 80-100 MByte/sec, задержка — около 20 мксек.
Одной из проблем, которые возникают при использовании скоростных интерфейсов, например, таких как SCI является то, что архитектура PCI не подходит для работы с высокоскоростными устройствами такого типа. Но если перепроектировать PCI Bridge с ориентацией на одно устройство передачи данных, то эта проблема решается. Такие реализации имеют место в решениях некоторых производителей, например, компании SUN Microsystems.
Таким образом, при проектировании высокоскоростных кластерных систем и расчета их быстродействия, следует учитывать потери быстродействия, связанные с обработкой и передачей данных в узлах кластера.
Таблица 1. Сравнение высокоскоростных коммуникационных интерфейсов
Технология | Пропускная способность MByte/s | Задержка мксек/пакет | Стоимость карточки/свича на 8 портов | Поддержка платформ | Комментарий |
---|---|---|---|---|---|
Fast Ethertnet | 12. 5 | 158 | 50/200 | Linux, UNIX, Windows | Низкие цены, популярная |
Gigabit Ethernet | 125 | 33 | 150/3500 | Linux, UNIX, Windows | Удобство модернизации |
Myrinet | 245 | 6 | 1500/5000 | Linux, UNIX, Windows | Открытый стандарт, популярная |
VI (сLAN от Giganet) | 150 | 8 | 800/6500 | Linux, Windows | Первая аппаратная промышленная реализация VI |
SCI | 400 | 1.5 | 1200/5000* | Linux, UNIX, Windows | Стандартизирована, широко используется |
QsNet | 340 | 2 | N/A** | True64 UNIX | AlphaServer SC и системы Quadrics |
Memory Channel | 100 | 3 | N/A | True64 UNIX | Используется в Compaq AlphaServer |
* аппаратура SCI (и программное обеспечение поддержки) допускает построение так называемых MASH топологий без использования коммутаторов
** нет данных
Рисунок 10. Тесно связанная мультипроцессорная система с несимметричным доступом к памяти
Одной интересной особенностью коммуникационных интерфейсов, которые обеспечивают низкие задержки, является то, что на их основе можно строить системы с архитектурой NUMA, а также системы, которые на уровне программного обеспечения могут моделировать многопроцессорные SMP системы. Преимуществом такой системы является то, что вы можете использовать стандартные операционные системы и программное обеспечение, ориентированное на использование в SMP решениях, но в связи с высокой, в несколько раз выше по сравнению с SMP задержкой междупроцессорного взаимодействия, быстродействие такой системы будет малопрогнозируемо.
Средства распараллеливания
Существует несколько разных подходов к программированию параллельных вычислительных систем:
- на стандартных широко распространенных языках программирования с использованием коммуникационных библиотек и интерфейсов для организации межпроцессорного взаимодействия (PVM, MPI, HPVM, MPL, OpenMP, ShMem)
- использование специализированных языков параллельного программирования и параллельных расширений (параллельные реализации Fortran и C/C++, ADA, Modula-3)
- использование средств автоматического и полуавтоматического распараллеливания последовательных программ (BERT 77, FORGE, KAP, PIPS, VAST)
- программирование на стандартных языках с использованием параллельных процедур из специализированных библиотек, которые ориентированы на решение задач в конкретных областях, например: линейной алгебры, методов Монте-Карло, генетических алгоритмов, обработки изображений, молекулярной химии, и т. п. (ATLAS, DOUG, GALOPPS, NAMD, ScaLAPACK).
Существует также немало инструментальных средств, которые упрощают проектирование параллельных программ. Например:
- CODE — Графическая система для создания параллельных программ. Параллельная программа изображается в виде графа, вершины которого есть последовательные части программы. Для передачи сообщений используются PVM и MPI библиотеки.
- TRAPPER — Коммерческий продукт немецкой компании Genias. Графическая среда программирования, которая содержит компоненты построения параллельного программного обеспечения.
По опыту пользователей высокоскоростных кластерных систем, наиболее эффективно работают программы, специально написанные с учетом необходимости межпроцессорного взаимодействия. И даже несмотря на то, что программировать на пакетах, которые используют shared memory interface или средства автоматического распараллеливания, значительно удобней, больше всего распространены сегодня библиотеки MPI и PVM.
Учитывая массовою популярность MPI (The Message Passing Interface), хочется немного о нём рассказать.
«Интерфейс передачи сообщений» — это стандарт, который используется для построения параллельных программ и использует модель обмена сообщениями. Существуют реализации MPI для языка C/C++ и Fortran как в бесплатных, так и коммерческих вариантах для большинства распространенных суперкомпьютерных платформ, в том числе High Performance кластерных систем, построенных на узлах с ОС Unix, Linux и Windows. За стандартизацию MPI отвечает MPI Forum (http://www.mpi-forum.org). В новой версии стандарта 2.0 описано большое число новых интересных механизмов и процедур для организации функционирования параллельных программ: динамическое управление процессами, односторонние коммуникации (Put/Get), параллельные I/O. Но к сожалению, пока нет полных готовых реализаций этой версии стандарта, хотя часть из нововведений уже активно используется.
Для оценки функциональности MPI, хочу представить вашему вниманию график зависимости времени вычисления задачи решения систем линейных уравнений в зависимости от количества задействованных процессоров в кластере. Кластер построен на процессорах Intel и системе межузловых соединений SCI (Scalable Coherent Interface). Естественно, задача частная, и не надо понимать полученные результаты как общую модель прогнозирования быстродействия желаемой системы.
Рисунок 11. Зависимость времени вычисления задачи решения систем линейных уравнений в зависимости от количества задействованных процессоров в кластере
На графике отображены две кривые, синяя — линейное ускорение и красная — полученное в результате эксперимента. То есть, в результате использования каждой новой ноды мы получаем ускорение выше, чем линейное. Автор эксперимента утверждает, что такие результаты получаются из-за более эффективного использования кэш памяти, что вполне логично и объяснимо. Если у кого возникнут мысли и идеи по этому поводу, буду благодарен, если вы ими поделитесь (мой e-mail: [email protected]).
Средства реализации High Availability кластеров
High Availability кластеры можно распределить на:
- Shared Nothing Architecture (архитектура без разделения ресурсов)
- Shared Disk Architecture (архитектура с общими дисками)
Рисунок 12. Архитектура без разделения ресурсов
Архитектура без рас
Классическое машинное обучение: классификация, обобщение,кластеризация
Классическое машинное обучение, или Classical Machine Learning, строится на классических статистических алгоритмах и решает вопросы, связанные с принятием решений на основе данных.
Его активно применяют как в офлайн, так и в онлайн-маркетинге для прогнозирования поведения пользователя и рекомендаций по интересам. Например, вы гуглили «купить солнцезащитные очки». И сразу же после этого во всех соцсетях вам приходит реклама таких же моделей очков. Или вы искали жилье для покупки по вашим субъективным критериям, а затем видите рекламу от застройщиков на любом ресурсе, куда бы ни зашли. Обученная система сама подбирает варианты, которые могут вас заинтересовать. Это – яркие примеры результатов классического машинного обучения.
В классическом машинном обучении с учителем программист, обучающий систему, размечает данные, приводит машине определенные примеры и наблюдает за её прогрессом. Задачами, которые решаются при помощи обучения с учителем являются, например, классификация и регрессия. Машинное обучение без учителя включает в себя следующие типы: кластеризация, обобщение, поиск правил. Эти алгоритмы часто применяются в Data Mining и их можно рассматривать как часть Data Science.
Рассмотрим некоторые из них.
Классификация как задача машинного обучения
Классификация – наиболее популярная задача машинного обучения. Она в чем-то схожа с тем, как ребенок учится определять форму и размер предметов, складывая их в раздельные кучки.
Задача классификации: предсказание категории объекта и разделение объектов согласно определенным и заданным заранее признакам. То есть машина сортирует данные по нужным категориям: одежду – по цветам, сезонам или ткани, книги – по жанрам, авторам, языкам написания, соусы – по степени остроты, письма – по личной или рабочей направленности, спам-составляющей и т.д.
В бизнесе классифицировать можно, например, клиентов: по количеству покупок, частоте заходов на сайт, покупательских привычках. По такой системе работают, например, письма от сети супермаркетов: каждому участнику программы лояльности приходят предложения со скидками на товары, которые они чаще всего покупают. Также подобной системой могут пользоваться банки, которым нужно на основании общего портрета соискателя кредита определить вероятность, что кредит будет возвращен.
Дополнительный продукт классификации по заданным параметрам – возможность выделить всё, что не вписывается в стандартные классы. Например, если речь о медицине, выделенным фрагментом может быть любое отклонение от нормы: утолщение, разрыв, новообразование, завышенные или заниженные показатели анализов. Если речь о финансовых рынках, то нестандартные показатели могут выдать инсайдерских игроков.
Регрессия: предсказание при помощи машинного обучения
Регрессия – это когда по заданному набору признаков необходимо спрогнозировать некую целевую переменную.
Задача регрессии: предсказание места на числовой прямой. Например, загруженность дорог в зависимости от времени суток и время на путь из пункта А в пункт Б в зависимости от пробок. Или каким будет объем рынка определенных товаров через 2 года. И даже скорость развития определенной болезни при общих показателях здоровья человека.
Поскольку регрессия запрограммирована на работу с числами, её встраивают в различные вычислительные системы, даже в классический Excel.
Интересный факт: систему классификации можно «доучить» и научить решать задачи регрессии. На практике это выглядит как понимание не только класса объекта, но и его близости к тому или иному показателю. Например, яблоко свежее или испорченное. А если ближе к испорченному, то на сколько процентов.
Кластеризация как тип обучения без учителя
Кластерный анализ (Data clustering) — задача разбиения заданной выборки данных (объектов) так, чтобы каждый кластер состоял из схожих объектов, а объекты разных кластеров значительно отличались друг от друга.
Задача кластеризации: используя все имеющиеся данные, предсказать соответствие объектов выборки их классам, сформировав таким образом кластеры.
Кластеризацию применяют для анализа и поиска признаков по которым можно объединить объекты, сжатия данных и поиска новизны (что не входит ни в один кластер)
В чем отличие классификации и кластеризации: при классификации у вас есть набор предопределенных классов, вы учите машину на наборе примеров и потом хотите знать, к какому классу принадлежит новый объект. При кластеризации вы используете алгоритм, который пытается сгруппировать набор объектов и определить, существует ли какая-либо взаимосвязь между объектами, машина учится сама.
Поиск ассоциативных правил как тип обучения без учителя
Поиск ассоциативных правил – метод, который активно используется в маркетинге для изучения поведения покупателя и составления типичного шаблона покупок.
Задача поиска ассоциативных правил: находить закономерности в потоке данных. Например, для анализа паттернов поведения пользователей на веб-сайтах или для правильной расстановки товаров на полках в магазине. Ведь не зря жвачки и батарейки расположены в прикассовой зоне, а сладости недалеко от чая/кофе.
Классическое обучение используется для качественного поиска контента, эффективных кросс-продаж, анализа имеющейся информации о клиентах, ускорения и автоматизации бизнес-процессов и многих других целей.
Подробный обзор машинного обучения можно прочесть в нашей статье: “Машинное обучение, искусственный интеллект, и нейросети — в чем разница, и для чего их используют”. Также мы подготовили обзор следующего типа машинного обучения “Обучение с подкреплением”.
14.01.2019
Используемые в статье картинки взяты из открытых источников и используются как иллюстрации. Параметры запуска службы кластеров— Windows Server
- 11 минут на чтение
В этой статье
В этой статье перечислены все доступные переключатели, которые можно использовать в качестве параметров запуска для запуска службы кластеров.
Исходная версия продукта: Windows Server 2012 R2
Оригинальный номер базы знаний: 258078
Сводка
Это список всех доступных переключателей, которые можно использовать в качестве параметров запуска для запуска службы кластеров.
Для этого перейдите в свойства службы, установите соответствующий переключатель в поле «Параметры запуска» и нажмите кнопку «Пуск».
Вы также можете использовать переключатели при запуске службы кластеров из командной строки. Например:
net start clussvc.exe / переключатель
Примечание
Включите тире (-) перед переключателем для Microsoft Windows 2000 Server и более ранних версий.
Переключатель отладки имеет специальные параметры запуска.См. Раздел «Отладка» далее в этой статье для правильного использования.
Windows Server 2003 включает сокращения для каждого переключателя. Это упрощает использование переключателей запуска службы кластера. Например, вы можете запустить службу с помощью переключателя / FixQuorum
или переключателя / FQ
.
Допустимые переключатели опций включают следующее:
Переключатель | Функция | Windows 2003 Аббревиатура |
---|---|---|
FixQuorum | Не монтировать устройство кворума, и ведение журнала кворума отключено. | FQ |
NoQuorumLogging | Ведение журнала кворума отключено. | NQ |
Отладка | Отображает события во время запуска службы кластеров. Для получения информации о специальном синтаксисе см. Раздел «Отладка» далее в этой статье. | |
LogLevel N | Устанавливает уровень журнала для режима отладки. | |
DebugResMon | Служба кластеров ожидает подключения отладчика ко всем процессам монитора ресурсов при их запуске. | DR |
Переключатели только для Windows 2000 и более поздних версий включают следующее.
Переключатель | Функция | Windows 2003 Аббревиатура |
---|---|---|
Сбросить QuorumLog | Динамически воссоздает файлы журнала кворума и контрольных точек (эта функция автоматическая в Microsoft Windows NT 4.0). | RQ |
NoRepEvtLogging | Нет репликации записей журнала событий. | |
Только переключатели Windows Server 2003 и более поздних версий включают следующее.
Переключатель | Функция | Windows 2003 Аббревиатура |
---|---|---|
ForceQuorum или | Принудительно установить большинство узлов со списком узлов N1, N2 и так далее. (Применимо только для кворума большинства узлов.) | FO |
NoGroupInfoEvtLogging | Не записывать в журнал событий события, относящиеся к группе в сети и вне сети. | NG |
Описание выключателей
Ниже приводится описание некоторых переключателей:
Отладка
Функция : ведение журнала кластера может не содержать никакой полезной информации при диагностике службы кластера для запуска сбоев. Это связано с тем, что служба кластеров может выйти из строя до запуска Cluster.log. Запуск службы кластеров с этим переключателем отображает инициализацию службы кластеров и может помочь вам определить эти ранние проблемы.
Требования : Используйте этот переключатель только для временной диагностики. Если служба кластеров не запускается из-за ошибки входа в систему учетной записи службы или другой системной ошибки, у службы может не быть возможности запустить. В результате не может быть создан файл cluster.log. Этот метод запускает службу вне нормальной среды, заданной диспетчером управления службами. Чтобы использовать этот переключатель, вы должны войти в систему локально с правами администратора и запустить команду из командной строки.Не используйте переключатель отладки для нормального использования или в течение любого периода времени. Служба работает не так эффективно с установленной опцией.
Сценарии использования : этот переключатель необходимо использовать только в том случае, если служба кластеров не запускается. Этот переключатель будет отображать на экране работу службы кластеров при ее запуске. Этот переключатель можно использовать только при запуске службы из командной строки, и вы должны находиться в папке, где установлена служба кластеров. По умолчанию это% SystemRoot% \ Cluster.Это также единственный переключатель, который вы не используете с командой net start для запуска службы.
Операция : Откройте командную строку, перейдите в папку% SystemRoot% \ cluster, а затем введите следующий код clussvc / debug [loglevel #] "
.
, где loglevel # — одно из следующих значений.
# | Описание |
---|---|
0 | Регистрация не ведется. |
1 | Регистрируются только ошибки. |
2 | Регистрируются ошибки и предупреждения. |
3 | Все события, в том числе не записанные в журнал событий, регистрируются. |
Кроме того, вы также можете использовать команду set для управления уровнем журнала кластера при использовании переключателя отладки. В командной строке введите следующий набор clusterloglevel = x , где x — одно из значений, показанных в предыдущей таблице.
Служба кластера отправляет в окно вывод, аналогичный тому, который вы бы видели в кластере.журнал. Кроме того, вы также можете записать эту информацию в файл, используя следующий синтаксис команды:
clussvc / отладка> c: \ debug.log
Когда служба кластеров работает правильно, нажмите CTRL + C, чтобы остановить службу.
Примечание
Вы можете использовать переменную среды ClusterLogLevel для управления уровнем вывода при использовании переключателя отладки.
FixQuorum
Функция : разрешает запуск службы кластера, несмотря на проблемы с устройством кворума.Единственные ресурсы, которые будут подключены к сети после запуска службы, — это IP-адрес кластера и имя кластера. Вы можете открыть Администратор кластера и вручную подключить другие ресурсы к сети.
Требования : Этот переключатель ДОЛЖЕН использоваться только в режиме диагностики на очень временной основе, а не во время нормальной работы. Только один узел должен быть запущен с использованием этого переключателя, и второй узел не должен пытаться присоединиться к узлу, запущенному с помощью этого переключателя. Обычно этот переключатель используется отдельно.
Сценарии использования: Если служба кластера не может запуститься обычным способом из-за сбоя ресурса кворума, пользователи могут запустить службу кластера в этом режиме и попытаться диагностировать сбой.
Операция: После запуска службы кластера все ресурсы, включая ресурс кворума, остаются в автономном режиме. Затем пользователи могут вручную попытаться подключить ресурс кворума и отслеживать записи журнала кластера, а также новые записи журнала событий и попытаться диагностировать любые проблемы с ресурсом кворума.Синтаксис следующий: net start clussvc / fixquorum
.
Сбросить Кворум Журнал
Функция : Если журнал кворума и файл контрольной точки не найдены или повреждены, их можно использовать для создания файлов на основе информации в кусте реестра% SystemRoot% \ Cluster \ CLUSDB локального узла. Если файл журнала кворума находится в правильном порядке, этот переключатель не действует.
Требования : Обычно только один узел запускается с использованием этого переключателя, и этот переключатель используется отдельно.Его должны использовать только опытные пользователи, которые понимают последствия использования информации, которая потенциально устарела, для создания нового файла журнала кворума.
Сценарии использования : этот параметр следует использовать только в том случае, если служба кластеров не запускается на компьютере с Windows 2000 или более поздней версии из-за отсутствия или повреждения журнала кворума (Quolog.log) и файлов Chkxxx.tmp. Windows NT 4.0 автоматически воссоздает эти файлы, если они не существуют. Эта функция была добавлена в Windows 2000, чтобы дать больше контроля над запуском службы кластеров.
Примечание
Если кластер работает под управлением Windows 2000 с пакетом обновления 4 (SP4) и ранее было установлено исправление 872970, / resetquorumlog
больше не требуется. По умолчанию при запуске создается новый файл журнала, если старый отсутствует или поврежден.
Операция : служба кластеров выполняет автоматический сброс файла журнала кворума, если он отсутствует или поврежден, используя информацию в текущем загруженном кусте кластера с помощью файла% systemroot% \ Cluster \ CLUSDB.Синтаксис следующий:
чистый старт clussvc / resetquorumlog
DebugResMon
Функция : Помогает вам отлаживать процесс монитора ресурсов и, следовательно, библиотеки динамической компоновки ресурсов (DLL), загружаемые монитором ресурсов. Вы можете использовать любой стандартный отладчик на базе Windows.
Требования : Может использоваться только при запуске службы кластера из командной строки и при использовании переключателя отладки.Не существует эквивалентного параметра реестра, который можно было бы использовать при запуске службы кластеров как службы. Отладчик должен быть доступен для подключения к монитору ресурсов при запуске. Обычно этот переключатель используется отдельно.
Сценарии использования : разработчики могут использовать этот переключатель для отладки процесса монитора ресурсов и своих пользовательских библиотек DLL ресурсов. Этот параметр чрезвычайно полезен, если ошибка в библиотеке ресурсов приводит к неожиданному завершению процесса монитора ресурсов вскоре после его запуска службой кластеров и до того, как пользователи смогут вручную подключить отладчик к процессу монитора ресурсов.
Операция : Непосредственно перед запуском процесса монитора ресурсов процесс службы кластера ожидает с сообщением (Ожидание подключения отладчика к процессу resmon X ), где X — это идентификатор процесса (PID) процесс монитора ресурсов. Служба кластеров делает это в ожидании всех созданных ею процессов монитора ресурсов. После того, как пользователь подключит отладчик к процессу монитора ресурсов и запустится процесс монитора ресурсов, служба кластеров продолжит свою инициализацию.
NoRepEvtLogging
Функция : переключатель norepevtlogging предотвращает репликацию тех событий, которые записаны в журнале событий. Этот переключатель полезен для уменьшения объема информации, отображаемой в командном окне, путем фильтрации событий, уже записанных в журнале событий. Репликация журнала событий — это функция, добавленная в Windows 2000.
Сценарии использования : этот переключатель используется для предотвращения репликации журналов событий. Если имеется большое количество записей журнала событий, служба кластеров реплицирует их и записывает в кластер.журнал. Это может привести к быстрому завершению записи в cluster.log. Переключатель также можно использовать для запуска службы кластеров и регистрации тех событий, которые не записаны в журнале событий, в локальный файл Debugnorep.log. Синтаксис следующий:
clussvc / debug / norepevtlogging> c: \ debugnorep.log \
Операция : команду norepevtlogging можно установить как параметр запуска при запуске службы кластеров из консоли управления компьютером.
Синтаксис командной строки:
чистый запуск clussvc / norepevtlogging
Эта команда запрещает узлу, который был запущен с этим коммутатором, реплицировать свою информацию на другие узлы, но он все равно будет получать информацию от других узлов, которые были запущены нормально.
NoQuorumLogging
Функция : выключает все записи изменений реестра кластера на кворумный диск. Указание проверки реестра не влияет на другие ресурсы.
Требования : этот переключатель должен использоваться только в режиме диагностики для диагностики проблем с файлом журнала кворума (Quolog.log) или файлом контрольной точки куста кластера (Chkxxx.tmp) в каталоге \ MSCS на кворумном диске. Если один узел запускается с помощью этого переключателя, любой другой узел также должен быть запущен с использованием этого переключателя.Обычно этот переключатель используется только на одном узле.
Сценарии использования : используйте этот переключатель, когда файл журнала кворума или файлы контрольных точек повреждены и вы хотите вручную заменить эти файлы резервными копиями.
Операция : В этом случае служба кластеров полностью обходит функцию ведения журнала. При запуске в этом режиме могут возникать сценарии «секционирования во времени». В этом случае записи реестра узла кластера могут не синхронизироваться, а новые изменения могут быть потеряны.Синтаксис следующий: net start clussvc / noquorumlogging
.
ForceQuorum
Функция : при использовании модели кворума набора узлов большинства (MNS) в кластере Windows Server 2003, в некоторых случаях кластеру необходимо разрешить продолжать работу, даже если у него нет кворума (большинства). Рассмотрим случай географически распределенного кластера с четырьмя узлами на первичном сайте и тремя узлами на вторичном сайте. Несмотря на отсутствие сбоев, кластер представляет собой кластер из семи узлов, в котором ресурсы могут размещаться на любом узле, на любом сайте.В случае сбоя связи между сайтами или если дополнительный сайт отключен (или выходит из строя), основной сайт может продолжить работу, потому что у него все еще будет кворум. Все ресурсы будут повторно размещены и переведены в оперативный режим на первичном сайте.
Однако в случае катастрофического отказа первичного сайта вторичный сайт потеряет кворум, и, следовательно, все ресурсы на этом сайте будут прекращены. Одна из основных целей многосайтового кластера — выжить в случае аварии на основном сайте; однако само программное обеспечение кластера не может определить состояние первичного сайта.Программное обеспечение кластера не может различить сбой связи между сайтами и аварию на первичном сайте. Это должно быть сделано вручную. Другими словами, вторичный сайт можно принудительно продолжить, даже если служба кластеров считает, что у него нет кворума. Это называется принуждением к кворуму.
Поскольку этот механизм эффективно нарушает семантику, связанную с набором кворумных реплик, это должно выполняться только в контролируемых условиях. В приведенном выше примере, если вторичный сайт и первичный сайт теряют связь и администратор вынуждает кворум на вторичном сайте, ресурсы будут переведены в оперативный режим на ОБЕИХ сайтах, что создает возможность для несогласованных данных или повреждения данных в кластере.
Требования : Форсирование кворума — это ручной процесс, требующий остановки службы кластеров на ВСЕХ оставшихся узлах. Службе кластеров необходимо сообщить, какие узлы следует рассматривать как имеющие кворум.
Сценарии использования : Следует проявлять особую осторожность, если и когда основной сайт возвращается, потому что узлы настроены как часть кластера. Пока кластер работает в состоянии принудительного кворума, он полностью функционирует. Например, узлы могут быть добавлены или удалены из кластера; могут быть определены новые ресурсы, группы и т. д.
Примечание
Служба кластера на всех узлах, НЕ в списке узлов принудительного кворума, должна оставаться остановленной до тех пор, пока не будет удалена информация о принудительном кворуме. Невыполнение этого требования может привести к несогласованности данных ИЛИ повреждению данных.
Операция : Настройте параметры запуска службы кластера на ВСЕХ оставшихся узлах кластера. Это можно сделать, запустив панель управления службами, выбрав службу кластера, а затем введя следующее в поле Параметры запуска :
net start clussvc / forcequorum список_узлов
Например, если вторичный сайт содержит Node5, Node6 и Node7, и вы хотите запустить службу кластера, чтобы они были единственными узлами в кластере, используйте следующую команду:
чистый старт clussvc / forcequorum / forcequorum node5, node6, node7
Примечание
В ключе не должно быть пробелов (кроме тех случаев, когда в самих именах узлов есть пробелы).
описать кластеры — AWS CLI 1.18.213 Справочник команд
Описывает кластер.
ClusterIdentifier -> (строка)
Уникальный идентификатор кластера.
NodeType -> (строка)
Тип узла для узлов в кластере.
ClusterStatus -> (строка)
Текущее состояние кластера. Возможные значения:
- в наличии
- доступно, подготовка к изменению размера
- доступно, изменение размера-очистка
- отмена изменения размера
- создание
- удаление
- финальный снимок
- аппаратный сбой
- несовместимое-HSM
- несовместимая сеть
- несовместимых параметров
- несовместимое восстановление
- модификация
- приостановлено
- перезагрузка
- переименование
- изменение размера
- поворотные ключи
- память заполнена
- обновление-HSM
ClusterAvailabilityStatus -> (строка)
Состояние доступности кластера для запросов.Возможные значения:
- Доступно — кластер доступен для запросов.
- Unavailable — кластер недоступен для запросов.
- Обслуживание — кластер периодически доступен для запросов из-за действий по обслуживанию.
- Изменение — кластер периодически доступен для запросов из-за изменений, которые изменяют кластер.
- Failed — кластер вышел из строя и недоступен для запросов.
ModifyStatus -> (строка)
Состояние операции изменения, инициированной для кластера, если таковая имеется.
MasterUsername -> (строка)
Имя главного пользователя кластера. Это имя используется для подключения к базе данных, указанной в параметре DBName .
DBName -> (строка)
Имя исходной базы данных, созданной при создании кластера. Это же имя возвращается на весь срок службы кластера. Если исходная база данных не указана, по умолчанию создается база данных с именем dev dev.
Конечная точка -> (структура)
Конечная точка подключения.
Адрес -> (строка)
DNS-адрес кластера.
Порт -> (целое число)
Порт, который прослушивает ядро базы данных.
VpcEndpoints -> (список)
Описывает конечную точку подключения.
(строение)
Конечная точка подключения для подключения кластера Amazon Redshift через прокси.
VpcEndpointId -> (строка)
Идентификатор конечной точки подключения для подключения кластера Amazon Redshift через прокси-сервер.
ClusterCreateTime -> (метка времени)
Дата и время создания кластера.
AutomatedSnapshotRetentionPeriod -> (целое число)
Количество дней, в течение которых хранятся автоматические моментальные снимки кластера.
ManualSnapshotRetentionPeriod -> (целое число)
Количество дней по умолчанию для хранения снимка, созданного вручную.Если значение равно -1, снимок сохраняется на неопределенный срок. Этот параметр не изменяет срок хранения существующих снимков.
Значение должно быть либо -1, либо целым числом от 1 до 3 653.
ClusterSecurityGroups -> (список)
Список групп безопасности кластера, связанных с кластером. Каждая группа безопасности представлена элементом, который содержит подэлементы ClusterSecurityGroup.Name и ClusterSecurityGroup.Status.
Группы безопасности кластера используются, когда кластер не создан в виртуальном частном облаке Amazon (VPC).Кластеры, созданные в VPC, используют группы безопасности VPC, которые перечислены в параметре VpcSecurityGroups .
(строение)
Описывает группу безопасности кластера.
ClusterSecurityGroupName -> (строка)
Имя группы безопасности кластера.
Статус -> (строка)
Состояние группы безопасности кластера.
VpcSecurityGroups -> (список)
Список групп безопасности Amazon Virtual Private Cloud (Amazon VPC), связанных с кластером.Этот параметр возвращается только в том случае, если кластер находится в VPC.
(строение)
Описывает членов группы безопасности VPC.
VpcSecurityGroupId -> (строка)
Идентификатор группы безопасности VPC.
Статус -> (строка)
Состояние группы безопасности VPC.
ClusterParameterGroups -> (список)
Список групп параметров кластера, связанных с этим кластером.Каждая группа параметров в списке возвращается со своим статусом.
(строение)
Описывает состояние группы параметров.
ParameterGroupName -> (строка)
Имя группы параметров кластера.
ParameterApplyStatus -> (строка)
Состояние обновления параметров.
ClusterParameterStatusList -> (список)
Список статусов параметров.
Для получения дополнительных сведений о параметрах и группах параметров перейдите в раздел Группы параметров Amazon Redshift в Руководстве по управлению кластером Amazon Redshift .
(строение)
Описывает состояние группы параметров.
Имя параметра -> (строка)
Имя параметра.
ParameterApplyStatus -> (строка)
Состояние параметра, указывающее, синхронизирован ли параметр с базой данных, ожидает ли перезагрузка кластера или возникла ошибка при применении.
Ниже приведены возможные статусы и описания.
- in-sync: значение параметра синхронизировано с базой данных.
- pending-reboot: значение параметра будет применено после перезагрузки кластера.
Применение- : значение параметра применяется к базе данных.
- недопустимый параметр: невозможно применить значение параметра, поскольку оно имеет недопустимое значение или синтаксис.
- apply-deferred: параметр содержит изменения статических свойств. Изменения откладываются до перезагрузки кластера.
- ошибка применения: невозможно подключиться к кластеру. Изменение параметра будет применено после перезагрузки кластера.
- unknown-error: Невозможно применить изменение параметра прямо сейчас. Изменение будет применено после перезагрузки кластера.
ParameterApplyErrorDescription -> (строка)
Ошибка, из-за которой параметр не был применен к базе данных.
ClusterSubnetGroupName -> (строка)
Имя группы подсети, связанной с кластером. Этот параметр действителен только тогда, когда кластер находится в VPC.
VpcId -> (строка)
Идентификатор VPC, в котором находится кластер, если кластер находится в VPC.
AvailabilityZone -> (строка)
Имя зоны доступности, в которой расположен кластер.
PreferredMain maintenanceWindow -> (строка)
Еженедельный временной диапазон в универсальном координированном времени (UTC), в течение которого может выполняться обслуживание системы.
PendingModifiedValues -> (структура)
Значение, которое, если присутствует, указывает, что изменения в кластере ожидают обработки.Конкретные незавершенные изменения обозначаются подэлементами.
MasterUserPassword -> (строка)
Незавершенное или незавершенное изменение пароля главного пользователя для кластера.
NodeType -> (строка)
Ожидающее или незавершенное изменение типа узла кластера.
NumberOfNodes -> (целое число)
Незавершенное или незавершенное изменение количества узлов в кластере.
ClusterType -> (строка)
Ожидаемое или незавершенное изменение типа кластера.
ClusterVersion -> (строка)
Ожидающее или незавершенное изменение версии службы.
AutomatedSnapshotRetentionPeriod -> (целое число)
Незавершенное или незавершенное изменение периода хранения автоматических снимков.
ClusterIdentifier -> (строка)
Незавершенное или незавершенное изменение нового идентификатора кластера.
PubliclyAccessible -> (логическое)
Ожидаемое или незавершенное изменение возможности подключения к кластеру из общедоступной сети.
EnhancedVpcRouting -> (логическое)
Параметр, указывающий, следует ли создавать кластер с включенной расширенной маршрутизацией VPC. Чтобы создать кластер, использующий расширенную маршрутизацию VPC, кластер должен находиться в VPC. Дополнительные сведения см. В разделе «Расширенная маршрутизация VPC» Руководства по управлению кластером Amazon Redshift.
Если эта опция истинна, расширенная маршрутизация VPC включена.
По умолчанию: ложь
MaintenanceTrackName -> (строка)
Имя трека обслуживания, на которое кластер изменится во время следующего окна обслуживания.
EncryptionType -> (строка)
Тип шифрования для кластера. Возможные значения: KMS и None.
ClusterVersion -> (строка)
Идентификатор версии механизма Amazon Redshift, работающего в кластере.
AllowVersionUpgrade -> (логическое)
Логическое значение, которое, если оно истинно, указывает, что обновления основной версии будут автоматически применяться к кластеру в течение периода обслуживания.
NumberOfNodes -> (целое число)
Количество вычислительных узлов в кластере.
PubliclyAccessible -> (логическое)
Логическое значение, которое, если оно истинно, указывает, что к кластеру можно получить доступ из общедоступной сети.
Зашифрованный -> (логический)
Логическое значение, которое, если оно истинно, указывает, что данные в кластере зашифрованы в состоянии покоя.
RestoreStatus -> (структура)
Значение, описывающее состояние действия восстановления кластера.Этот параметр возвращает значение null, если кластер не был создан путем восстановления моментального снимка.
Статус -> (строка)
Состояние восстановления. Возвращает начало, восстановление, завершение или сбой.
CurrentRestoreRateInMegaBytesPerSecond -> (двойной)
Количество мегабайт в секунду, передаваемых из хранилища резервных копий. Возвращает среднюю скорость для завершенного резервного копирования. Это поле обновляется только при восстановлении до типов узлов DC2 и DS2.
SnapshotSizeInMegaBytes -> (длинный)
Размер набора данных моментальных снимков, используемых для восстановления кластера. Это поле обновляется только при восстановлении до типов узлов DC2 и DS2.
ProgressInMegaBytes -> (длинный)
Количество мегабайт, переданных из хранилища моментальных снимков. Это поле обновляется только при восстановлении до типов узлов DC2 и DS2.
ElapsedTimeInSeconds -> (длинный)
Количество времени, в течение которого выполняется текущее восстановление, или количество времени, которое потребовалось для завершения полного восстановления.Это поле обновляется только при восстановлении до типов узлов DC2 и DS2.
EstimatedTimeToCompletionInSeconds -> (длинный)
Расчетное время, оставшееся до завершения восстановления. Возвращает 0 для завершенного восстановления. Это поле обновляется только при восстановлении до типов узлов DC2 и DS2.
DataTransferProgress -> (структура)
Статус -> (строка)
Описывает состояние кластера.Пока выполняется передача, статус передает данные.
CurrentRateInMegaBytesPerSecond -> (двойной)
Описывает скорость передачи данных в МБ в секунду.
TotalDataInMegaBytes -> (длинный)
Описывает общий объем передаваемых данных в мегабайтах.
DataTransferredInMegaBytes -> (длинный)
Описывает общий объем данных, которые были переданы в МБ.
EstimatedTimeToCompletionInSeconds -> (длинный)
Описывает приблизительное количество секунд, оставшихся до завершения передачи.
ElapsedTimeInSeconds -> (длинный)
Описывает количество секунд, прошедших во время передачи данных.
HsmStatus -> (структура)
Значение, указывающее, завершил ли кластер Amazon Redshift применение любых изменений настроек аппаратного модуля безопасности (HSM), указанных в команде изменения кластера.
Значения: активно, применяется
HsmClientCertificateIdentifier -> (строка)
Задает имя сертификата клиента HSM, который кластер Amazon Redshift использует для получения ключей шифрования данных, хранящихся в HSM.
HsmConfigurationIdentifier -> (строка)
Задает имя конфигурации HSM, которая содержит информацию, которую кластер Amazon Redshift может использовать для получения и хранения ключей в HSM.
Статус -> (строка)
Сообщает, завершил ли кластер Amazon Redshift применение любых изменений настроек HSM, указанных в команде изменения кластера.
Значения: активно, применяется
ClusterSnapshotCopyStatus -> (структура)
Значение, возвращающее целевой регион и период хранения, настроенные для межрегиональной копии моментального снимка.
DestinationRegion -> (строка)
Целевой регион, в который автоматически копируются снимки, когда включено копирование снимков между регионами.
RetentionPeriod -> (длинный)
Количество дней, в течение которых автоматические моментальные снимки хранятся в целевом регионе после их копирования из исходного региона.
ManualSnapshotRetentionPeriod -> (целое число)
Количество дней, в течение которых автоматические моментальные снимки хранятся в целевом регионе после их копирования из исходного региона. Если значение равно -1, созданный вручную снимок сохраняется на неопределенный срок.
Значение должно быть либо -1, либо целым числом от 1 до 3 653.
SnapshotCopyGrantName -> (строка)
Имя предоставления копии моментального снимка.
ClusterPublicKey -> (строка)
Открытый ключ для кластера.
ClusterNodes -> (список)
Узлы в кластере.
(строение)
Идентификатор узла в кластере.
NodeRole -> (строка)
Является ли узел ведущим или вычислительным узлом.
PrivateIPAddress -> (строка)
Частный IP-адрес узла в кластере.
PublicIPAddress -> (строка)
Общедоступный IP-адрес узла в кластере.
ElasticIpStatus -> (структура)
Состояние эластичного IP-адреса (EIP).
ElasticIp -> (строка)
Эластичный IP-адрес (EIP) для кластера.
Статус -> (строка)
Состояние эластичного IP-адреса (EIP).
ClusterRevisionNumber -> (строка)
Конкретный номер версии базы данных в кластере.
Теги -> (список)
Список тегов для кластера.
(строение)
Тег, состоящий из пары имя / значение для ресурса.
Ключ -> (строка)
Ключ или имя тега ресурса.
Значение -> (строка)
Значение тега ресурса.
KmsKeyId -> (строка)
Идентификатор ключа AWS Key Management Service (AWS KMS) ключа шифрования, используемого для шифрования данных в кластере.
EnhancedVpcRouting -> (логическое)
Параметр, указывающий, следует ли создавать кластер с включенной расширенной маршрутизацией VPC. Чтобы создать кластер, использующий расширенную маршрутизацию VPC, кластер должен находиться в VPC. Дополнительные сведения см. В разделе «Расширенная маршрутизация VPC» Руководства по управлению кластером Amazon Redshift.
Если эта опция истинна, расширенная маршрутизация VPC включена.
По умолчанию: ложь
IamRoles -> (список)
Список ролей AWS Identity and Access Management (IAM), которые могут использоваться кластером для доступа к другим сервисам AWS.
(строение)
Роль AWS Identity and Access Management (IAM), которую может использовать связанный кластер Amazon Redshift для доступа к другим сервисам AWS.
IamRoleArn -> (строка)
Имя ресурса Amazon (ARN) роли IAM, например arn: aws: iam :: 123456789012: role / RedshiftCopyUnload.
ApplyStatus -> (строка)
Значение, описывающее статус связи роли IAM с кластером Amazon Redshift.
Ниже приведены возможные статусы и описания.
- синхронно: роль доступна для использования кластером.
- добавление: Роль находится в процессе связывания с кластером.
- удаление: Роль находится в процессе отделения от кластера.
PendingActions -> (список)
Операции кластера, ожидающие запуска.
(строка)
MaintenanceTrackName -> (строка)
Имя трека обслуживания для кластера.
ElasticResizeNumberOfNodeOptions -> (строка)
Число узлов, для которых можно изменить размер кластера с помощью метода эластичного изменения размера.
DeferredMain maintenanceWindows -> (список)
Описывает группу объектов DeferredMainastedWindow.
(строение)
Описывает отложенный период обслуживания
DeferMain maintenanceIdentifier -> (строка)
Уникальный идентификатор окна обслуживания.
DeferMain maintenanceStartTime -> (отметка времени)
Отметка времени начала периода времени, когда мы откладываем обслуживание.
DeferMain maintenanceEndTime -> (отметка времени)
Отметка времени окончания периода времени, когда мы откладываем обслуживание.
SnapshotScheduleIdentifier -> (строка)
Уникальный идентификатор расписания моментальных снимков кластера.
SnapshotScheduleState -> (строка)
Текущее состояние расписания моментальных снимков кластера.
ExpectedNextSnapshotScheduleTime -> (отметка времени)
Дата и время, когда ожидается создание следующего моментального снимка для кластеров с действующим расписанием моментальных снимков и включенным резервным копированием.
ExpectedNextSnapshotScheduleTimeStatus -> (строка)
Состояние следующего ожидаемого моментального снимка для кластеров с действующим расписанием моментальных снимков и включенным резервным копированием. Возможные значения:
- OnTrack — ожидается, что следующий снимок будет сделан вовремя.
- Pending — ожидает создания следующего моментального снимка.
NextMain maintenanceWindowStartTime -> (метка времени)
Дата и время в формате UTC, когда может начаться обслуживание системы.
ResizeInfo -> (структура)
Возвращает следующее:
- AllowCancelResize: логическое значение, указывающее, можно ли отменить операцию изменения размера.
- ResizeType: возвращает ClassicResize
ResizeType -> (строка)
Возвращает значение ClassicResize.
AllowCancelResize -> (логическое)
Логическое значение, указывающее, можно ли отменить операцию изменения размера.
AvailabilityZoneRelocationStatus -> (строка)
Описывает состояние операции перемещения зоны доступности.
ClusterNamespaceArn -> (строка)
Пространство имен Amazon Resource Name (ARN) кластера.
Глава 16. Кластеризация
Корпоративные сервисы высокой доступности через JBoss Clusters
Кластеризация позволяет нам запускать приложения на нескольких параллельных серверах (a.k.a узлов кластера). Нагрузка распределены по разным серверам, и даже если какой-либо из серверов выходит из строя, приложение все равно доступны через другие узлы кластера. Кластеризация имеет решающее значение для масштабируемых корпоративных приложений, поскольку вы можете повысить производительность, просто добавив больше узлов в кластер.
Сервер приложений JBoss (AS) поставляется с поддержкой кластеризации из коробки. Самый простой способ начать кластер серверов JBoss должен запустить несколько экземпляров JBoss в одной локальной сети, используя команду run -c all для каждого экземпляра.Все эти экземпляры сервера были запущены в все конфигурации, обнаруживают друг друга и автоматически образуют кластер.
В первом разделе этой главы я обсуждаю основные концепции, лежащие в основе служб кластеризации JBoss. это Важно, чтобы вы поняли эти концепции, прежде чем читать оставшуюся часть главы. Кластеризация конфигурации для конкретных типов приложений рассматриваются после этого раздела.
16.1.1. Определение кластера
Кластер — это набор узлов.В кластере JBoss узел является экземпляром сервера JBoss. Таким образом, чтобы построить кластер, несколько экземпляров JBoss должны быть сгруппированы вместе (так называемый «раздел»). На том же сети, у нас могут быть разные кластеры. Чтобы различать их, каждый кластер должен иметь индивидуальное имя.
На рисунке 16.1, «Кластеры и серверные узлы» показан пример сети экземпляров сервера JBoss, разделенных на три кластера, каждый из которых имеет только один узел.Узлы могут быть добавлены или удалены из кластеры в любое время.
Рисунок 16.1. Кластеры и серверные узлы
Примечание
Хотя технически возможно разместить экземпляр сервера JBoss в нескольких кластерах одновременно время, такая практика обычно не рекомендуется, так как это увеличивает сложность управления.
Каждый экземпляр (узел) сервера JBoss указывает, к какому кластеру (т. Е. Разделу) он присоединяется в ClusterPartition MBean в каталоге развертывания / кластера.xml файл. Все узлы с одинаковой конфигурацией ClusterPartition MBean присоединяются к одному кластеру. Следовательно, если вы хотите разделить узлы JBoss в сети на два кластера, вы можете просто придумать две разные конфигурации ClusterPartition MBean, и каждый узел будет иметь одну из двух конфигураций в зависимости от того, к какому кластеру он должен присоединиться. Если назначенный кластер не существует при запуске узла, кластер будет создан. Точно так же кластер удаляется, когда удаляются все его узлы.
В следующем примере показано определение MBean, упакованное со стандартным дистрибутивом JBoss AS. Так что если вы просто запускаете серверы JBoss с настройками кластеризации по умолчанию в локальной сети, вы получите кластер по умолчанию с именем DefaultPartition, который включает в себя все экземпляры сервера в качестве узлы.
$ {jboss.partition.name:DefaultPartition} $ {jboss.bind.address} Ложь 30000 ... ...
Здесь мы пропустили подробную конфигурацию протокола JGroups для этого кластера. JGroups обрабатывает базовая одноранговая связь между узлами и ее конфигурация обсуждается в Раздел 17.1, «Конфигурация JGroups». В следующем списке показаны доступные атрибуты конфигурации в MBean ClusterPartition.
PartitionName — необязательный атрибут для указания имени кластер.Его значение по умолчанию — DefaultPartition.
NodeAddress — необязательный атрибут для указания привязки IP-адрес этого узла.
DeadlockDetection — необязательный логический атрибут, который сообщает JGroups для запуска алгоритмов обнаружения взаимоблокировок сообщений при каждом запросе. Его значение по умолчанию ложный.
StateTransferTimeout — необязательный атрибут для указания тайм-аут для репликации состояния в кластере (в миллисекундах).Его значение по умолчанию 30000.
PartitionConfig — элемент для указания конфигурации JGroup параметры для этого кластера (см. Раздел 17.1, «Конфигурация JGroups»).
Для того, чтобы узлы сформировали кластер, они должны иметь одинаковые элементы PartitionName и ParitionConfig. Изменения любого элемента на некоторых, но не на всех узлах могут привести к разделению кластера. Как правило, проще изменить ParitionConfig (т.е.e., адрес / порт) для запуска нескольких кластеров вместо изменения PartitionName из-за множества мест, которые необходимо изменить в других файлах конфигурации. Однако изменение PartitionName в 4.0.2+ стало проще благодаря использованию свойства $ {jboss.partition.name}, которое позволяет изменять имя с помощью единственного системного свойства jboss.partition.name
Вы можете просмотреть текущую информацию о кластере, указав в браузере консоль JMX любого JBoss экземпляр в кластере (т.е.е., http: // hostname: 8080 / jmx-console /), а затем щелкнув на jboss: service = DefaultPartition MBean (измените имя MBean, чтобы отразить ваш имя кластера, если этот узел не присоединяется к DefaultPartition). Список IP-адресов для текущие члены кластера показаны в поле CurrentView.
Примечание
Кластер (раздел) содержит набор узлов, которые работают для достижения одной цели. Некоторая кластеризация функции требуют разделения кластера на части для достижения лучшей масштабируемости.Например, давайте представьте, что у нас есть кластер из 10 узлов, и мы хотим воспроизвести в памяти состояние с отслеживанием состояния сессионные компоненты на всех 10 различных узлах для обеспечения отказоустойчивого поведения. Это означало бы, что каждый узел должен хранить резервную копию 9 других узлов. Это вообще не будет масштабироваться (каждый узел будет необходимо нести всю нагрузку на государственный кластер). Наверное, гораздо лучше иметь какой-нибудь подразделы внутри кластера, и состояние bean-компонентов обменивается только между узлами, которые являются частью тот же подраздел.Будущая реализация кластеризации JBoss будет поддерживать подразделы и это позволит администратору кластера определить оптимальный размер подраздела. В Расчет топологии подразделов будет выполняться кластером динамически.
16.1.2. Архитектура служб
Топография кластеризации, определяемая MBean-компонентом ClusterPartition на каждом узле, имеет вид большое значение для системных администраторов. Но для большинства разработчиков приложений вы, вероятно, больше озабочен архитектурой кластера с точки зрения клиентского приложения.JBoss AS поддерживает два типа кластерных архитектур: перехватчики на стороне клиента (также известные как прокси или заглушки) и загрузка балансиры.
16.1.2.1. Перехватчик на стороне клиента
Большинство удаленных сервисов, предоставляемых сервером приложений JBoss, включая JNDI, EJB, RMI и JBoss Удаленное взаимодействие требует от клиента получения (например, поиска и загрузки) объекта-заглушки (или прокси). В Объект-заглушка создается сервером и реализует бизнес-интерфейс службы.В Затем клиент вызывает локальный метод объекта-заглушки. Звонок автоматически перенаправляется по сети и вызывается для объектов службы, управляемых на сервере. В кластере среды, созданный сервером объект-заглушка также является перехватчиком, который понимает, как маршрутизировать вызовы узлов в кластере. Объект-заглушка определяет, как найти соответствующий серверный узел, Маршалировать параметры вызова, отменять маршалинг результатов вызова, возвращать результаты вызывающему клиенту.
Заглушки-перехватчики обновили информацию о кластере. Например, они знают IP адреса всех доступных узлов сервера, алгоритм распределения нагрузки по узлам (см. следующий раздел), и как выполнить аварийное переключение запроса, если целевой узел недоступен. С каждой услугой запроса, узел сервера обновляет заглушку-перехватчик с учетом последних изменений в кластере. За например, если узел выпадает из кластера, каждый клиентский перехватчик-заглушка обновляется с помощью новую конфигурацию при следующем подключении к любому активному узлу в кластере.Все манипуляции со служебной заглушкой прозрачны для клиентского приложения. На стороне клиента Архитектура кластеризации перехватчиков проиллюстрирована на рисунке 16.2, «Архитектура перехватчика (прокси) на стороне клиента для кластеризации».
Рисунок 16.2. Архитектура перехватчика (прокси) на стороне клиента для кластеризации
Другие службы JBoss, в частности веб-службы HTTP, не требуют загрузки клиентом что-нибудь.Клиент (например, веб-браузер) отправляет запросы и получает ответы непосредственно через провод в соответствии с определенными протоколами связи (например, протоколом HTTP). В этом случае Балансировщик нагрузки необходим для обработки всех запросов и их отправки на серверные узлы в кластере. Балансировщик нагрузки обычно является частью кластера. Он также понимает конфигурацию кластера как политики аварийного переключения. Клиенту нужно знать только о балансировщике нагрузки.Балансировщик нагрузки Архитектура кластеризации проиллюстрирована на Рисунке 16.3, «Архитектура балансировщика нагрузки для кластеризации».
Рисунок 16.3. Архитектура балансировщика нагрузки для кластеризации
Потенциальная проблема с решением балансировщика нагрузки заключается в том, что сам балансировщик нагрузки является единственным точка отказа. За ним необходимо внимательно следить, чтобы обеспечить высокую доступность всего кластера. Сервисы.
16.1.3. Политики балансировки нагрузки
И клиентский перехватчик (заглушка) JBoss, и балансировщик нагрузки используют политики балансировки нагрузки для определить, на какой серверный узел отправить новый запрос. В этом разделе давайте рассмотрим балансировку нагрузки. политики, доступные в JBoss AS.
16.1.3.1. JBoss AS 3.0.x
В JBoss 3.0.x доступны следующие два варианта балансировки нагрузки.
Round-Robin (org.jboss.ha.framework.interfaces.RoundRobin): каждый вызов отправляется на новый узел. Первый целевой узел выбирается из списка случайным образом.
Первый доступ (org.jboss.ha.framework.interfaces.FirstAvailable): один доступных целевых узлов выбирается в качестве основной цели и используется для каждого вызова: избранный участник выбирается случайным образом из списка участников кластера. Когда список целевые узлы меняются (из-за того, что узел запускается или умирает), политика переизбирает целевой узел если только выбранный в данный момент узел все еще не доступен.Каждый клиентский перехватчик или нагрузка балансировщик выбирает свой собственный целевой узел независимо от других прокси.
В JBoss 3.2+ доступны три варианта балансировки нагрузки. Круговой и первый доступный параметры имеют то же значение, что и в JBoss AS 3.0.x.
Новая опция балансировки нагрузки в JBoss 3.2 — «First AvailableIdenticalAllProxies» (org.jboss.ha.framework.interfaces.FirstAvailableIdenticalAllProxies).Оно имеет то же поведение, что и политика «Первый доступный», но выбранный целевой узел используется всеми клиентские перехватчики того же «семейства».
В JBoss 3.2 (и более поздних версиях) определено понятие «Семейство прокси». Семейство прокси — это набор заглушек перехватчики, которые обращаются к одной и той же реплицированной цели. Например, для EJB все заглушки, нацеленные на один и тот же EJB в данном кластере, принадлежат к одному семейству прокси.Все перехватчики данное семейство имеет один и тот же список целевых узлов. Каждый перехватчик также имеет возможность делиться произвольная информация с другими перехватчиками того же семейства. Пример использования семейства прокси: см. Раздел 16.3.1, «Сессионный компонент без сохранения состояния в EJB 2.x».
16.1.4. Развертывание в ферме
Самый простой способ развернуть приложение в кластере — использовать службу фермы. То есть выполнить горячее развертывание архивного файла приложения (например,g., файл EAR, WAR или SAR) в папке all / farm / каталог любого члена кластера, и приложение автоматически дублируется на всех узлах в том же кластере. Если узел присоединится к кластеру позже, он подключит все приложения, развернутые на ферме, в кластер и развернуть их локально во время запуска. Если вы удалите приложение из одного из запущена ферма / папка узла сервера кластера, приложение не будет развернуто локально, а затем удаляется из папки фермы всех остальных узлов кластерного сервера (запускает undeployment.) Вы следует вручную удалить приложение из папки фермы любого узла сервера, который в данный момент не подключен в кластер.
Примечание
В настоящее время из-за ошибки реализации служба развертывания фермы работает только для архивов, развернутых в горячем режиме. Если вы поместите приложение в сначала каталог farm /, а затем запустите сервер, приложение не будет обнаружен и передан по кластеру. Мы работаем над решением этой проблемы.
Примечание
В ферму можно помещать только архивные файлы, а не развернутые каталоги каталог. Таким образом, приложение на удаленном узле развертывается только тогда, когда весь архивный файл копируется. В противном случае приложение может быть развернуто (и не удастся), когда каталог только частично скопировано.
Фермерство включено по умолчанию во всех конфигурациях в дистрибутивах JBoss AS, так что вам не придется настраивать его самостоятельно.Файл конфигурации находится в каталог deploy / deploy.last. Если вы хотите включить фарм в своем пользовательском конфигурации, просто создайте XML-файл, показанный ниже (назовите его farm-service.xml) и скопируйте его в каталог развертывания JBoss $ JBOSS_HOME / server / your_own_config / deploy. Сделать убедитесь, что в вашей пользовательской конфигурации включена кластеризация.
xml version = "1.0" encoding = "UTF-8"?> <сервер>... DefaultPartition 5000 ферма /
После развертывания farm-service.xml все готово к работе. Требуемый Атрибуты MBean-компонента FarmMemberService для настройки фермы перечислены ниже.
PartitionName указывает имя кластера для этого развернутая ферма. Его значение по умолчанию — DefaultPartition.
URL-адреса указывает на каталог, в котором средство развертывания отслеживает файлы быть развернутым. Этот MBean создаст этот каталог, если он еще не существует. Также, «.» относится к каталогу конфигурации (например, $ JBOSS_HOME / server / all /).
ScanPeriod указывает интервал, с которым папка должна быть просканированы на предмет изменений.. Его значение по умолчанию — 5000.
Служба Farming является расширением URLDeploymentScanner, который выполняет поиск горячие развертывания в каталоге deploy /. Итак, вы можете использовать все атрибуты, определенные в MBean URLDeploymentScanner в MBean-компоненте FarmMemberService. В Фактически, указанные выше URL-адреса и атрибуты ScanPeriod являются унаследован от MBean URLDeploymentScanner.
16.1.5. Службы распределенной репликации состояния
В кластерной серверной среде управление распределенным состоянием является ключевой службой, которую кластер должен предоставлять.Например, в приложении сессионного компонента с отслеживанием состояния состояние сеанса должно быть синхронизировано. среди всех экземпляров компонента на всех узлах, чтобы клиентское приложение достигло одного и того же состояния сеанса независимо от того, какой узел обслуживает запрос. В приложении entity-компонента объекту bean-компонента иногда требуется для кэширования в кластере, чтобы снизить нагрузку на базу данных. В настоящее время состояние репликации и служба распределенного кеша
Полный обзор настроек Elasticsearch, включая настройки кластера
Помимо чтения этого руководства, запустите проверку работоспособности Elasticsearch.Выявляйте проблемы и повышайте производительность, анализируя размеры сегментов, пулы потоков, память, снимки состояния, водяные знаки на диске и многое другое.
Бесплатный инструмент, не требующий установки для +1000 пользователей.
Обзор
В ElasticSearch можно настроить параметры уровня кластера, параметры уровня узла и параметры уровня индекса. Здесь мы обсудим каждый из них.
A. Настройки кластера
Эти настройки могут быть постоянными, то есть они применяются при перезапусках, или временными, то есть они не выдержат полного перезапуска кластера.Если временная настройка сбрасывается, применяется первое из этих значений, которое определено:
- постоянная настройка
- настройка в файле конфигурации
- значение по умолчанию
Порядок приоритета для настроек кластера:
- настройки временного кластера
- настройки постоянного кластера
- настройки в файле конфигурации elasticsearch.yml
Примеры
Пример обновления настроек постоянного кластера:
PUT / _cluster / settings { "постоянный": { "индексы.recovery.max_bytes_per_sec ":" 500 МБ " } }
Пример временного обновления:
PUT / _cluster / settings { "transient": { "indices.recovery.max_bytes_per_sec": "40 МБ" } }
B. Настройки индекса
Это настройки, которые применяются к отдельным индексам. Есть API для обновления настроек уровня индекса.
Примеры
Следующий вызов API установит количество шардов реплики равным 5 для индекса my_index.
PUT / my_index / _settings { "индекс" : { "number_of_replicas": 5 } }
Чтобы вернуть настройку к значению по умолчанию, используйте null.
PUT / my_index / _settings { "индекс" : { "интервал_обновления": ноль } }
C. Настройки узла
Эти настройки применяются к узлам. Узлы могут выполнять разные роли. К ним относятся роли хозяина, данных и координатора. Параметры узла задаются в файле elasticsearch.yml для каждого узла.
Примеры
Установка узла в качестве узла данных (в файле elasticsearch.yml )
node.data: true
Отключение роли приема для узла (которая включена по умолчанию)
node.ingest: false
Для производственных кластеров вам нужно будет запустить каждый тип узла на выделенном компьютере с двумя или более экземплярами каждого из них для высокой доступности (минимум три для главных узлов).
Примечания и полезные сведения
- Изучение параметров кластера и индекса очень важно, оно может избавить вас от многих проблем.Например, если вы собираетесь ввести огромный объем данных в индекс, то, если количество сегментов реплик установлено, например, на 5 сегментов реплик, процесс индексации будет очень медленным, потому что данные будут реплицироваться одновременно время проиндексировано. Что вы можете сделать для ускорения индексации, так это установить шарды реплик в 0, обновив настройки, и вернуть исходное число, когда индексирование будет выполнено, с помощью API настроек.
- Еще один полезный пример использования настроек уровня кластера — это когда узел только что присоединился к кластеру, и кластер не назначает никаких сегментов узлу.Хотя выделение сегментов включено по умолчанию на всех узлах, кто-то мог отключить выделение сегментов в какой-то момент (например, для выполнения скользящего перезапуска) и забыл повторно включить его позже. Чтобы включить выделение сегментов, вы можете обновить API настроек кластера:
PUT /_cluster/settings{"transient":{"cluster.routing.allocation.enable":"all "}}
- Лучше настроить кластер общие настройки с помощью API настроек вместо файла elasticsearch.yml и использовать файл только для локальных изменений.Это сохранит одинаковые настройки на всех узлах. Но если вы случайно определите разные настройки на разных узлах с помощью файла конфигурации elasticsearch.yml, эти расхождения трудно заметить.
- См. Также: Восстановление
Ошибки журнала, связанные с этой концепцией ES
Seurat — Guided Clustering Tutorial
SATIJA LAB Главная Новости люди Исследование Публикации Сёра Присоединиться / Связаться Single CellДень геномики
Около Установить Виньетки Расширения FAQs Связаться с нами Поиск v1.4
Кластеризация
КластеризацияКластеризация
Хорошо, вы зашли так далеко.Я предполагаю, что вы более или менее понимаете, что такое CouchDB и как работает API приложения. Может быть, вы развернули одно или два приложения и теперь имеете дело с достаточным объемом трафика, и вам нужно подумать о масштабировании. «Масштабирование» — неточное слово, но в этой главе мы будем иметь дело с аспектом создания секционированного или сегментированного кластера, который с первого дня должен будет расти с возрастающей скоростью.
Мы рассмотрим отправку запросов и ответов в кластере CouchDB со стабильными узлами.Затем мы расскажем, как добавить резервные двойные узлы с возможностью горячего переключения, чтобы вам не приходилось беспокоиться о потере компьютеров. В большом кластере вы должны запланировать, что 5–10% ваших машин испытают какой-либо сбой или снижение производительности, поэтому конструкция кластера должна предотвращать влияние сбоев узлов на надежность. Наконец, мы рассмотрим динамическую настройку макета кластера путем разделения или объединения узлов с помощью репликации.
Представляем CouchDB Lounge
CouchDB Lounge — это приложение для разделения и кластеризации на основе прокси, изначально разработанное для Meebo, веб-службы обмена мгновенными сообщениями.Lounge состоит из двух основных компонентов: один обрабатывает простые запросы GET и PUT для документов, а другой распределяет запросы на просмотр.
dumbproxy обрабатывает простые запросы для всего, что не является представлением CouchDB. Это модуль для nginx, высокопроизводительного обратного HTTP-прокси. Из-за того, как работают обратные HTTP-прокси, это автоматически позволяет настраивать безопасность, шифрование, распределение нагрузки, сжатие и, конечно же, агрессивное кэширование ресурсов вашей базы данных.
smartproxy обрабатывает только запросы просмотра CouchDB и отправляет их всем другим узлам в кластере, чтобы распределить работу, делая производительность просмотра функцией совокупной вычислительной мощности кластера. Он представляет собой демон для Twisted, популярной и высокопроизводительной среды сетевого программирования на основе событий для Python.
Согласованное хеширование
Модель храненияCouchDB использует уникальные идентификаторы для сохранения и извлечения документов. В основе Lounge лежит простой метод хеширования идентификаторов ваших документов.Затем Lounge использует первые несколько символов этого хэша, чтобы определить, на какой шард отправить запрос. Вы можете настроить это поведение, написав карту сегментов для Lounge, которая представляет собой простой текстовый файл конфигурации.
Так как Lounge выделяет часть хэша (известного как пространство ключей) каждому узлу, вы можете добавить столько узлов, сколько захотите. Поскольку хеш-функция создает шестнадцатеричные строки, которые не имеют очевидного отношения к вашим DocID, и поскольку мы отправляем запросы на основе первых нескольких символов, мы гарантируем, что все узлы видят примерно одинаковую нагрузку.А поскольку хеш-функция согласована, Lounge будет брать любой произвольный DocID из URI HTTP-запроса и каждый раз указывать его на один и тот же узел.
Эта идея разделения коллекции шардов на основе пространства ключей обычно изображается в виде кольца с хешем, обернутым вокруг него. Каждая галочка обозначает границы в пространстве ключей между двумя разделами. Хеш-функция сопоставляет идентификаторы документов с позициями в кольце. Кольцо является непрерывным, поэтому вы всегда можете добавить больше узлов, разделив один раздел на части.С четырьмя физическими серверами вы распределяете пространство ключей на 16 независимых разделов, распределяя их по серверам следующим образом:
A | 0,1,2,3 |
B | 4,5,6,7 |
C | 8,9, a, b |
D | c , д, д, ж |
Если хэш вашего DocID начинается с 0
, он будет отправлен на сегмент A
. Аналогично для 1
, 2
или 3
.Принимая во внимание, что если хеш начинается с c
, d
, e
или f
, он будет отправлен на сегмент D
. В качестве полного примера, хэш 71db329b58378c8fa8876f0ec04c72e5
отображается на узел B
, база данных 7
в только что показанной таблице. Это может отображаться на http: //B.couches.local/db-7/
в вашем внутреннем кластере. Таким образом, хеш-таблица — это просто отображение хэшей в URI серверной базы данных. Не волнуйтесь, если все это звучит очень сложно; все, что вам нужно сделать, это предоставить отображение шардов на узлы, и Lounge соответствующим образом построит хэш-кольцо, поэтому вам не нужно пачкать руки, если вы этого не хотите.
Чтобы создать ту же концепцию с веб-архитектурой, поскольку CouchDB использует HTTP, прокси-сервер может разбивать документы в соответствии с URL-адресом запроса без проверки тела. Это основной принцип REST и одно из многих преимуществ использования HTTP. На практике это достигается путем запуска хеш-функции для URI запроса и сравнения результата, чтобы найти часть выделенного пространства ключей. Затем Lounge ищет связанный сегмент для хэша в таблице конфигурации, перенаправляя HTTP-запрос на внутренний сервер CouchDB.
Согласованное хеширование — это простой способ гарантировать, что вы всегда сможете найти сохраненные вами документы, при этом равномерно распределяя нагрузку на хранилище по разделам. Поскольку хеш-функция проста (она основана на CRC32), вы можете реализовать своих собственных HTTP-посредников или клиентов, которые могут аналогичным образом разрешать запросы к правильному физическому расположению ваших данных.
Резервное хранилище
Согласованное хеширование решает проблему того, как равномерно разбить единую логическую базу данных по набору разделов, которые затем можно распределить по нескольким серверам.Он не решает проблему того, как гарантировать, что данные, которые вы храните, защищены от потери из-за аппаратного или программного сбоя. Если вы серьезно относитесь к своим данным, вы не можете считать их сохраненными, пока у вас не будет хотя бы двух их копий, желательно в разных географических точках.
Репликация CouchDB делает относительно безболезненным обслуживание резервных ведомых устройств с возможностью горячего переключения или баз данных с несколькими главными серверами с балансировкой нагрузки. Особенности управления репликацией описаны в Главе 16, Репликация.В этом контексте важно понимать, что поддержка избыточных копий ортогональна более сложной задаче обеспечения того, чтобы кластер последовательно выбирал один и тот же раздел для определенного идентификатора документа.
В целях безопасности вам нужно иметь как минимум две или три копии всего. Однако, если вы инкапсулируете избыточность, более высокие уровни кластера могут рассматривать каждый раздел как единое целое и позволять логическим разделам самостоятельно управлять избыточностью и переключением при отказе.
Резервные прокси
Точно так же, как мы не можем принять возможность аппаратного сбоя, ведущего к потере данных, нам нужно будет запустить несколько экземпляров прокси-узлов, чтобы избежать вероятности того, что сбой прокси-узла может привести к недоступности части кластера.