Обновление бандла ADB ===================== **ADCM** предоставляет возможность обновления бандла существующего кластера **ADB**. Для обновления необходимо: 1. :ref:`Загрузить бандл` ADB новой версии. После загрузки на вкладке "Clusters" в строке кластера с более старой версией бандла появится пиктограмма, указывающая на возможность обновления (:numref:`Рис.%s `). .. _img_61: .. figure:: ../../images/img_58.png :align: center Доступно обновление бандла 2. Нажать на появившуюся пиктограмму и выбрать действие *Upgrade to <версия бандла>* (:numref:`Рис.%s `). .. _img_62: .. figure:: ../../images/img_59.png :align: center Upgrade to 3. Подтвердить действие в открывшемся диалоговом окне (:numref:`Рис.%s `). После подтверждения кластер *ADB* меняет состояние с *running* на *ready to upgrade*. .. _img_63: .. figure:: ../../images/img_60.png :align: center Запрос на подтверждение действия 4. В поле "Actions" для обновляемого кластера нажать на пиктограмму и выбрать действие *Upgrade* (:numref:`Рис.%s `). .. _img_64: .. figure:: ../../images/img_61.png :align: center Upgrade 5. Подтвердить действие в открывшемся диалоговом окне (:numref:`Рис.%s `). .. _img_65: .. figure:: ../../images/img_62.png :align: center Запрос на подтверждение действия Обновление PXF 3.x на 5.x ---------------------------------- В состав бандла *ADB*, начиная с версии *5.17* до *6.19.3_arenadata32*, входит сервис, позволяющий установить **PXF** версии *5x* через **ADCM**. Если в работающем кластере **ADB** ранее уже был установлен **PXF** версии *3x* в сборке **Arenadata**, существует возможность его обновления до версии *5x* через **ADCM**. Для этого необходимо: 1. :ref:`Добавить сервис PXF в кластер.` 2. :ref:`Разместить компоненты сервиса PXF на хостах.` 3. В поле "Actions" в строке сервиса *PXF* нажать на пиктограмму и выбрать действие *Remove HAWQ PXF (legacy)*. В результате этого действия в кластере удаляется *PXF* версии *3x* с сохранением всех конфигурационных файлов. Это делает возможным установку *PXF* версии *5x* из бандла *ADB* (:numref:`Рис.%s `). .. _img_72: .. figure:: ../../images/img_63.png :align: center Remove HAWQ PXF (legacy) .. important:: Корректность выполнения данного действия гарантируется только для PXF версии 3x в сборке Arenadata 4. Подтвердить действие в открывшемся диалоговом окне (:numref:`Рис.%s `). .. _img_73: .. figure:: ../../images/img_64.png :align: center Запрос на подтверждение действия 5. Дождаться успешного завершения действия *Clean* (:numref:`Рис.%s `). .. _img_74: .. figure:: ../../images/img_66.png :align: center Действие Clean успешно завершено 6. :ref:`Выполнить установку сервиса PXF` В случае если PXF в кластере отсутствует, установка производится **без** дополнительного действия *Remove HAWQ PXF (legacy)*, описанного в пунктах 3-5. Обновление PXF 5.x на 6.x ---------------------------------- Начиная с **ADB** версии *6.20.1_arenadata33*, **PXF** автоматически обновится до версии *6.x* через **ADCM**. Тем не менее, в особых случаях и в зависимости от версии **PXF** потребуются ручные операции для корректной работы **PXF** после обновления в **ADCM**: .. important:: Версию **PXF** перед обновлением можно запросить из под системного пользователя ADB через команду: ``$PXF_HOME/bin/pxf version`` 1. **Если вы обновляетесь с версии PXF 5.9.x (или ниже) с подключением к Kerberos-защищенному Hive через JDBC сервер**, требуется выставить свойство ``hadoop.security.authentication`` в файле jdbc-site.xml file чтоб явно иденифицировать использование Kerberos в качестве метода аутентификации. Выполните следующее для каждого из конфигураций сервера: a. Перейдите в директорию с конфигурацией сервера b. Откройте на редактирование файл jdbc-site.xml и раскомментируйте или добавьте следующий блок в файл: :: hadoop.security.authentication kerberos 2. **Если вы обновляетесь с версии PXF 5.11.x (или ниже):** профили Hive и HiveRC (переименованы как hive и hive:rc в **PXF 6.x**) теперь поддерживает column projection через использование мэппинга через имена столбцов. Если у вас есть какие-либо внешние таблицы, которые используют один из этих профилей, и эта внешняя таблица использует такой мэппинг через индексированные колоники, возможно потребуется удалить и пересоздать эту таблицу: a. Определите все внешние таблицы с профилем Hive или HiveRC b. Для каждой такой внешней таблицы просмотрите ее код и и код Hive таблицы, на которую она ссылается. Если имена столбцов внешней таблицы не совпадают с именами столбцов в Hive таблице, то: Удалите существующую внешнюю таблицу. Например: :: DROP EXTERNAL TABLE pxf_hive_table1; Пересоздайте внешнюю таблицу, используя имена столбцов Hive. Например, :: CREATE EXTERNAL TABLE pxf_hive_table1( hivecolname int, hivecolname2 text ) LOCATION( 'pxf://default.hive_table_name?PROFILE=hive') FORMAT 'custom' (FORMATTER='pxfwritable_import'); Просмотрите все SQL скрипты, которые ссылаются на внешнюю таблицу и обновите имена столбцов, если требуется. 3. **Если вы обновляетесь с версии PXF 5.15.x (или ниже):** a. Свойство ``pxf.service.user.name`` в файле the pxf-site.xml теперь закомментировано по умолчанию. Помните об этом, когда конфигурируете новые PXF сервера. b. Значение по умолчанию для свойства ``jdbc.pool.property.maximumPoolSize`` теперь равно 15. Если у вас ранее были сконфигурированы JDBC сервера, и вы хотите чтоб они использовали новое значение по умолчанию, вам нужно вручную изменить это свойство в файле jdbc-site.xml. c. **PXF 5.16** не разрешает использование относительных путей и переменных окружения в путях конструкций ``CREATE EXTERNAL TABLE LOCATION``. Если вы ранее создавали такие внешние таблицы, вы должны удалить и пересоздать их без таких конструкций. d. *Filter pushdown* теперь активирован по умолчанию для запросов на внешних таблицах, которые используют Hive, HiveRC, или HiveORC профили (переименованы как hive, hive:rc, and hive:orc в PXF 6.x). Если вы ранее создавали такие внешние таблицы и запросы и эти запросы падают с версией PXF 5.16+, вы можете дезактивировать *filter pushdown* на уровне столбцов внешней таблицы или на уровне сервера: 1. Для внешней таблицы удалите и пересоздайте ее, указав опцию &PPD=false в LOCATION. 2. Для сервера можно не пересоздавать внешнюю таблицу, а дезактивировать *filter pushdown* для всех запросов, использующих сервер к Hive* профилю, указав свойство ``pxf.ppd.hive`` в файле pxf-site.xml file в ``false``: :: pxf.ppd.hive false You may need to add this property block to the pxf-site.xml file. 4. **Удостоверьтесь, что не ссылаетесь на ранее объявленные устаревшими следующие свойства (они пропадут в PXF 6.x)**: .. csv-table:: Deprecated функциональность :header: "Deprecated свойство", "Новое свойство" :widths: 30, 30 Hadoop имена профилей, ``hdfs:`` jdbc.user.impersonation свойство, ``pxf.service.user.impersonation`` в файле конфигурации сервера jdbc‑site.xml PXF_KEYTAB свойство, ``pxf.service.kerberos.keytab`` в файле конфигурации сервера jdbc‑site.xml PXF_PRINCIPAL свойство, ``pxf.service.kerberos.principal`` в файле конфигурации сервера jdbc‑site.xml PXF_USER_IMPERSONATION свойство, ``pxf.service.user.impersonation`` в файле конфигурации сервера jdbc‑site.xml Также настройки Kerberos для **PXF** в бандле **ADB** больше не используются и будут удалены для версии **PXF 6.x**. 5. **PXF 6.x** поставляет единый JAR файл со всеми зависимостями, и отдельно HBase JAR файл в директории $PXF_HOME/share. Если у вас есть настроенный **PXF** коннект к Hadoop серверу через HBase, вам нужно зарегистрировать новый ``pxf-hbase-.jar`` с Hadoop и HBase следующим образом: a. Скопируйте ``$PXF_HOME/share/pxf-hbase-.jar`` на каждую ноду в вашем HBase кластере. b. Добавьте путь к этому JAR в ``$HBASE_CLASSPATH`` на каждой HBase ноде. c. Рестартуйте HBase на каждой ноде. 6. **PXF 6.x** поставляет утилиту **pxf cluster**, которая позволяет в т.ч распределять конфигурации PXF с мастер-ноды на сегментные ноды (команда *sync*). При запуске этой команды после обновления надо удостовериться, что на мастере присуствуют конфигурации PXF, иначе можно перезатереть их на сегментных нодах. В случае, если такое произошло, восстановиться можно из директории ``/var/lib/pxf_old``, куда перемещаются конфигурационные файлы перед обновлением на **PXF 6.x**. 7. В **PXF 6.x** используйте ``${pxf.base}`` вместо ``${pxf.conf}``. 8. В **PXF 6.x** ``${pxf.service.user.impersonation.disabled}`` более не используется и потребуется установить для ``pxf.service.user.impersonation`` значение *true* или *false*. Обновление ОС Altlinux при обновлении на версию *ADB 6.22.0_arenadata38* или выше. ---------------------------------- .. important:: При обновлении кластера ADB на базе ОС Altlinux 8.2 СП на версию *ADB 6.22.0_arenadata38* или выше установка приостановится после этапа Precheck и будет ожидать обновления ОС до версии Altlinux 8.4 СП. После успешного обновления и перезапуска шага Upgrade система будет обновлена до соответствующей версии бандла ADB. Обновление сетевых настроек при обновлении на версию *ADB 6.20.4_arenadata34* или выше. ---------------------------------- .. important:: При использовании двух IP-адресов, можно указать специальную сеть для интерконнекта, при помощи настройки в бандле для сервиса ADB *Use dedicated cluster network - Cluster network*. Изменения в pg_hba.conf при обновлении на версию *ADB 6.22.1_arenadata40* или выше. ---------------------------------- При обновлении кластера ADB с версий до *ADB 6.22.1_arenadata40* на версию *ADB 6.22.1_arenadata40* или выше файл pg_hba.conf будет переформатирован и разбит на секции для возможности корректировать Custom pg_hba section из интерфейса ADCM (:numref:`Рис.%s `). .. _img_75: .. figure:: ../../images/custom_pg_hba.png :align: center Custom pg_hba section В Custom секцию автоматически попадут строки из pg_hba.conf, которые не относятся к ADB и его сервисам. В самом файле эта секция будет перенесена в самый конец файла, независимо от их расположения до обновления. В дальнейшем для изменения этих параметров pg_hba через ADCM надо будет после редактирования Custom секции запускать Action *Reconfigure* для сервиса ADB (Action *Add custom pg_hba entry* более недоступен с версии *ADB 6.22.1_arenadata40*). Остальные строки в файле pg_hba.conf будут размечены как системные и выделены тэгами в зависимости от сервиса, к которым они относятся: *master*, *standby*, *gpperfmon*, *adcc*. Эти строки будут недоступны из интерфейса ADCM.