2016-08-10 3 views
1

Я использую последний разъем AeroSpark для работы с AeroSpike и Spark ML. Но когда я вставил в AeroSpike 60M записей, я получил слишком большое количество времени в операциях чтения. Например, для извлечения раунда 500K записей из набора, содержащего 60M записей, AeroSpark тратит ~ 30 минут. Когда я смотрю на вывод htop cmd, AeroSpike использует только 7% процессора.Как повысить производительность чтения AeroSpark?

Каждый раунд записи содержит 1k данных. AeroSpike и Spark размещены на одном узле. Данные фильтруются вторичным индексом.

Как ускорить работу при чтении? Кажется, что AeroSpark работает только одним потоком, как я могу распараллелить это задание? Какие-либо предложения?

AeroSpike конф:

memory-size 8G 
default-ttl 30d 
storage-engine device { 
    file /vol/rmla.data 
    filesize 900G 
} 
+0

Каков размер каждой записи? Вы и аэрокосмический кластер сидите в одной подсети? Этот вопрос очень широк. –

+0

Каждый раунд записи содержит 1k данных. AeroSpike и Spark размещены на одном узле. –

+0

Причина, по которой вы видите CPU на уровне 7%, - это в основном IO, а не работа с ЦП, вы читаете от AeroSpike. Вы делаете периодические чтения? –

ответ

0

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

Disk IO

Вы четко связаны скорости чтения с вашего storage media, который вы объявили, что файл. Если вы храните data on disk, вы можете использовать file или device в блоке конфигурации storage-engine device.

Существует большая разница в задержке чтения и записи между файлом на жестком диске и доступом к необработанному устройству SSD. Обычно Aerospike используется с данными, хранящимися на устройствах enterprise-grade SSD. Прочтите раздел в руководстве по эксплуатации о initializing и setting up накопителя. Объявление нескольких устройств для пространства имен дает вам линейное повышение производительности (два диска будут иметь удвоенную пропускную способность чтения и записи одного типа).

В этой статье вы можете использовать семейства экземпляров c3, i2, r3 или i3. Эфемерные SSD-устройства экземпляров EC2 не нуждаются в избыточном обеспечении, отключении их RAID и т. Д. Их нужно только инициализировать до их первого использования. Не используйте диски EBS для первичного хранилища, так как они слишком медленные.

конфигурации кластера

Соединитель Спарк использует множество операций сканирования. Убедитесь, что вы сконфигурировали scan-threads под вашим конфигурационным блоком service на количество ядер. Если вы не знаете, сколько ядер у вас есть, сделайте cat /proc/cpuinfo. Если Spark является единственным клиентом, использующим Aerospike-кластер, вы можете настроить потоки сканирования выше.

Конфигурация

Connector Вы можете изменить разъем config options для снижения задержки записи. Необязательно установите aerospike.commitLevel на номер CommitLevel.COMMIT_MASTER.

Upgrade Version

По состоянию на 28 ноября 2016 года aerospike/aerospark поддерживает Спарк 2.0. Убедитесь, что вы используете последний код.

Примечание: См. Новый tutorial для Aerospark на аэрокосмическом сайте.

Смежные вопросы