Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
- Кэш операций ввода-вывода поддерживается до Spark 2.3 и не будет поддерживаться в Spark 2.4 (HDInsight 4.0) и Spark 3.1.2 (HDInsight 5.0)
Кэш операций ввода-вывода — это служба кэширования данных для Azure HDInsight, которая повышает производительность заданий Apache Spark. Кэш операций ввода-вывода также работает с рабочими нагрузками Apache TEZ и Apache Hive , которые можно запускать в кластерах Apache Spark . Кэш операций ввода-вывода использует компонент кэширования с открытым исходным кодом с именем RubiX. RubiX — это локальный кэш дисков для использования с подсистемами аналитики больших данных, которые обращаются к данным из облачных систем хранения. RubiX является уникальным среди систем кэширования, так как он использует диски Solid-State (SSD), а не резервную память для кэширования. Служба кэша операций ввода-вывода запускает серверы метаданных RubiX и управляет ими на каждом рабочем узле кластера. Он также настраивает все службы кластера для прозрачного использования кэша RubiX.
Большинство SSD обеспечивают более 1 Гбайт в секунду пропускной способности. Эта пропускная способность, дополненная кэшом файлов операционной системы в памяти, обеспечивает достаточную пропускную способность для загрузки обработчиков обработки больших данных, таких как Apache Spark. Оперативная память остается доступной для Apache Spark для обработки задач, в высокой степени зависящих от памяти, таких как операции перестановки. Использование эксклюзивной операционной памяти позволяет Apache Spark достичь оптимального использования ресурсов.
Примечание.
Кэш операций ввода-вывода в настоящее время использует RubiX в качестве компонента кэширования, но это может измениться в будущих версиях службы. Используйте интерфейсы кэша ввода-вывода и не полагайтесь напрямую на реализацию RubiX. Кэш операций ввода-вывода поддерживается только в хранилище BLOB-объектов Azure в настоящее время.
Преимущества кэша операций ввода-вывода Azure HDInsight
Использование кэша операций ввода-вывода обеспечивает увеличение производительности заданий, считывающих данные из хранилища BLOB-объектов Azure.
Вам не нужно вносить изменения в задания Spark, чтобы увидеть увеличение производительности при использовании кэша операций ввода-вывода. Если кэш операций ввода-вывода отключен, этот Spark-код будет удаленно считывать данные из хранилища объектов BLOB Azure: spark.read.load('wasbs:///myfolder/data.parquet').count(). При активации кэша операций ввода-вывода та же строка кода вызывает чтение из кэша операций ввода-вывода. На следующих считываниях данные считываются локально из SSD. Рабочие узлы в кластере HDInsight оснащены локально подключенными выделенными дисками SSD. Кэш операций ввода-вывода в HDInsight использует эти локальные диски SSD для кэширования, что обеспечивает наименьший уровень задержки и максимальную пропускную способность.
Начало работы
Кэш операций ввода-вывода Azure HDInsight отключен по умолчанию в предварительной версии. Кэш операций ввода-вывода доступен в кластерах Azure HDInsight 3.6 и Spark, которые запускают Apache Spark 2.3. Чтобы активировать кэш операций ввода-вывода в HDInsight 4.0, сделайте следующее:
В веб-браузере перейдите на страницу
https://CLUSTERNAME.azurehdinsight.net, гдеCLUSTERNAME— это имя вашего кластера.Выберите службу кэша операций ввода-вывода слева.
Выберите действия (действия службы в HDI 3.6) и активируйте.
Подтвердите перезапуск всех затронутых служб в кластере.
Примечание.
Несмотря на то, что полоса прогресса показывает активацию, кэш ввода-вывода фактически не включен, пока не перезапустите эти другие затронутые службы.
Устранение неполадок
После включения кэша ввода-вывода при выполнении заданий Spark могут возникнуть ошибки, связанные с нехваткой места на диске. Эти ошибки возникают, так как Spark также использует локальное хранилище дисков для хранения данных во время операций перетасовки. После включения кэша операций ввода-вывода, место на SSD у Spark может закончиться из-за уменьшения пространства для хранения Spark. Объем пространства, используемого кэшем операций ввода-вывода, по умолчанию составляет половину общего пространства SSD. Использование дискового пространства для кэша операций ввода-вывода настраивается в Ambari. Если возникают ошибки места на диске, уменьшите объем дискового пространства, используемого для кэша операций ввода-вывода, и перезапустите службу. Чтобы изменить объем памяти для кэша ввода-вывода, выполните следующие действия.
В Apache Ambari выберите службу HDFS слева.
Выберите вкладки "Конфигурации " и "Дополнительно ".
Прокрутите вниз и разверните область пользовательского основного сайта .
Найдите свойство hadoop.cache.data.fullness.percentage.
Измените значение в поле.
Нажмите кнопку "Сохранить " в правом верхнем углу.
Выберите Перезапустить>Перезапустить все затронутые элементы.
Нажмите кнопку "Подтвердить перезагрузку всех".
Если это не работает, отключите кэш операций ввода-вывода.
Дальнейшие шаги
Дополнительные сведения о кэше операций ввода-вывода, включая показатели производительности, в этой записи блога: задания Apache Spark получают ускорение до 9 раз с помощью кэша ввода-вывода HDInsight