2015-08-08 6 views
2

У меня есть блок искры и кассандра, и я использую разъем cassandra в своих искровых работах. Теперь для выполнения моих заданий я использую spark.cassandra.connection.host и передаю один из IP-адресов семенного узла в одном центре обработки данных. Я проходил через соединительный узел и его состояния, такие какнесколько контактных точек в разъеме искры cassandra

"The initial contact node given in spark.cassandra.connection.host can be any node of the cluster. The driver will fetch the cluster topology from the contact node and will always try to connect to the closest node in the same data center. If possible, connections are established to the same node the task is running on." 

Мой запрос - это то, что произойдет, если контактный узел опущен. Spark не сможет получить топологию кластера и, следовательно, не будет работать. Я также использовал nodejs-коннектор для cassandra, и там мы предоставляем массив точек контакта. Возможно ли это в разъёме искры cassandra

ответ

0

Нет, вы не можете передать массив хостов в «spark.cassandra.connection.host» (хотя, если бы вы захотели, вы могли бы написать службу, которая проверила бы соединение всех хосты, а затем условно использовать один как ваш SparkConfig).

Однако, из documentation, похоже, что мы могли бы предположить, что искро-кассандра выберет любой рабочий узел (это означает, что если у вас есть один узел на хосте, он будет работать).

Исходный контактный узел, указанный в spark.cassandra.connection.host, может быть любым узлом кластера.

Кроме того, это звучит, как если узел вниз, то запрос будет повторить на локальных узлах (не другой хост)

Если некоторые узлы в центре местных данных вниз и чтения или операция записи не выполняется, операция не будет повторена на узлах в другом центре обработки данных.

Надеюсь, это поможет.

+0

Да, но мой вопрос остается без ответа. Итак, что произойдет, если узел, к которому подключается искра, и он еще не обнаружил топологию, я думаю, что он не сможет подключиться и получить данные. – Nipun

+0

Из того, что я понял ... искра не связана с конкретным узел, он подключается к хосту, а затем выбирает узел. Если ваш хост отключен, ваше приложение не будет работать. Если все узлы вашего хоста опущены, приложение перестанет работать. Так что да, если ваш хост выключен, тогда он не сможет получить данные. – dannypaz

+0

В чем разница между хостом и узлом? Acc to the docs «Исходный контактный узел, указанный в spark.cassandra.connection.host, может быть любым узлом» – Nipun

1

Ну, по connector documentation,

Множественные хосты могут быть переданы при помощи разделенный запятыми список ("127.0.0.1,127.0.0.2"). Это только начальные контактные точки, все узлы местного DC будут использоваться при подключении.

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

+0

Ну, этого раньше не было. Возможно, новый для искрового разъема cassandra. – Nipun

+0

@Nipun Как работает Кассандра? Я изучаю его немного сейчас, главным образом потому, что меня интересует его функция репликации (кросс-центры обработки данных, в основном для доступа с малой задержкой). –

+0

У нас есть небольшая установка из 2 центров обработки данных. До сих пор нет жалоб. Мы в основном заинтересованы в высокой записи, так как у нас много аналитических данных.Только точка с cassandra - это не db для гибких запросов. В основном это db, используемый для аналитики. – Nipun