Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server 2019 (15.x)
Important
Кластеры больших данных Microsoft SQL Server 2019 прекращены. Поддержка кластеров больших данных SQL Server 2019 закончилась с 28 февраля 2025 г. Дополнительные сведения см. в записи блога объявлений и параметрах больших данных на платформе Microsoft SQL Server.
В этой статье объясняется, как использовать azdata для выполнения высокопроизводительных распределенных копий данных между кластерами больших данных SQL Server.
Prerequisites
- Azure Data Studio
- azdata версии 20.3.8 или выше
- Два кластера обработки больших данных SQL Server с накопительным пакетом обновления версии CU13 или более высокой.
Общие сведения о распределенных копиях данных в кластерах больших данных SQL Server
DistCP Hadoop HDFS — это средство командной строки, используемое для выполнения распределенных параллельных копий файлов и папок из одного кластера HDFS в другой. Распределенное параллельное копирование позволяет быстро передавать файлы и папки масштаба Data Lake между двумя разными кластерами, что обеспечивает возможности миграции, создание сегментированных сред, высокую доступность и сценарии аварийного восстановления.
DistCP Hadoop HDFS использует внутреннюю задачу MapReduce для преобразования списка файлов и каталогов в входные данные для нескольких задач отображения, каждая из которых будет копировать раздел файлов, указанных в исходном списке, в место назначения. Это позволяет нескольким узлам данных в исходном кластере отправлять данные непосредственно в несколько узлов данных в целевых кластерах, создавая сценарий действительно распределенного параллельного копирования.
В кластерах больших данных SQL Server CU13 и более поздних версий функция распределенного копирования интегрирована в продукт и предоставляется с помощью команды azdata bdc hdfs distcp . Команда является асинхронной операцией, она возвращается немедленно, пока задание копирования выполняется в фоновом режиме. Отслеживайте задание копирования с помощью либо azdata, либо предоставленных пользовательских интерфейсов мониторинга.
Поддерживаются только источники и назначения кластеров больших данных SQL Server.
Кластеры могут развертываться как в режиме active Directory, так и в базовых режимах безопасности. Копии могут выполняться в любом сочетании режимов безопасности. Для кластеров с поддержкой Active Directory необходимо, чтобы они были в одном домене.
В этом руководстве мы рассмотрим следующие сценарии копирования данных:
- Кластер с поддержкой Active Directory к кластеру с поддержкой Active Directory
- Базовый кластер безопасности для кластера с поддержкой Active Directory
- Базовый кластер безопасности к базовому кластеру безопасности
Необходимые шаги для всех сценариев
Сертификаты необходимы для создания доверенной связи между исходными и целевыми кластерами. Эти действия требуются только один раз для каждого сочетания исходного и целевого кластера.
Important
Если кластер больших данных SQL Server с базовой проверкой подлинности (не AD) обновляется непосредственно до CU13 или более поздней версии, для функции distcp требуется активация. (Это не влияет на новые развертывания кластера CU13+ с базовой проверкой подлинности.)
Чтобы включить функцию distcp в этом сценарии, выполните следующие дополнительные действия один раз:
kubectl -n $CLUSTER_NAME exec -it nmnode-0-0 -- bash
export HADOOP_USER_NAME=hdfs
hadoop fs -mkdir -p /tmp/hadoop-yarn/staging/history
hadoop fs -chown yarn /tmp/hadoop-yarn
hadoop fs -chown yarn /tmp/hadoop-yarn/staging
hadoop fs -chown yarn /tmp/hadoop-yarn/staging/history
hadoop fs -chmod 733 /tmp/hadoop-yarn
hadoop fs -chmod 733 /tmp/hadoop-yarn/staging
hadoop fs -chmod 733 /tmp/hadoop-yarn/staging/history
Необходимые записные книжки в следующих шагах являются частью операционных записных книжек для кластеров больших данных SQL Server. Дополнительные сведения об установке и использовании записных книжек см. в разделе "Операционные записные книжки"
Шаг 1. Создание и установка сертификата
Подключитесь к исходному кластеру с помощью Azure Data Studio. Отсюда будут скопированы файлы. Выполните следующие действия.
Создание корневого сертификата кластера в исходном кластере с помощью записной книжки
cer001-create-root-ca.ipynbСкачивание нового корневого сертификата кластера на компьютер с помощью
cer002-download-existing-root-ca.ipynbУстановите новый корневой сертификат в исходный кластер с помощью
cer005-install-existing-root-ca.ipynb. Этот шаг займет 10–15 минут.Создание нового сертификата knox в исходном кластере
cer021-create-knox-cert.ipynbПодпишите с помощью нового сертификата Knox с новым корневым сертификатом
cer031-sign-knox-generated-cert.ipynbУстановка нового сертификата knox в исходном кластере с помощью
cer041-install-knox-cert.ipynbImportant
Команды генерации сертификатов создадут корневой файл ЦС (
cluster-ca-certificate.crt) и файл сертификата Knox (cacert.pem) в каталоге"C:\Users\{Username}\AppData\Local\Temp\1\mssql-cluster-root-ca\"на Windows и"/tmp/mssql-cluster-root-ca/на Unix.
Шаг 2. Установка сертификата в целевой системе
Подключитесь к целевому кластеру с помощью Azure Data Studio. Здесь будут скопированы файлы. Выполните следующие действия.
Warning
Если вы используете Azure Data Studio на разных компьютерах для выполнения этих задач, скопируйте cluster-ca-certificate.crt и cacert.pem файлы, созданные на шаге 1, в нужные расположения на другом компьютере перед запуском записной книжки на следующем шаге.
- Установите новый корневой сертификат из исходного кластера в целевой кластер с помощью
cer005-install-existing-root-ca.ipynb. Этот шаг займет 10–15 минут.
Шаг 3. Создание файла Keytab
Необходимо создать файл keytab, если любой из кластеров поддерживает Active Directory. Файл выполнит проверку подлинности, чтобы разрешить копирование.
Создайте файл keytab с помощью ktutil. Ниже приведен пример. Обязательно определите или замените переменные среды DOMAIN_SERVICE_ACCOUNT_USERNAME, DOMAIN_SERVICE_ACCOUNT_PASSWORD и REALM соответствующими значениями.
ktutil
> add_entry -password -p $DOMAIN_SERVICE_ACCOUNT_USERNAME@$REALM -k 1 -e arcfour-hmac-md5
$DOMAIN_SERVICE_ACCOUNT_PASSWORD
> add_entry -password -p $DOMAIN_SERVICE_ACCOUNT_USERNAME@$REALM -k 1 -e aes256-cts
$DOMAIN_SERVICE_ACCOUNT_PASSWORD
> add_entry -password -p $DOMAIN_SERVICE_ACCOUNT_USERNAME@$REALM -k 1 -e aes256-cts-hmac-sha1-96
$DOMAIN_SERVICE_ACCOUNT_PASSWORD
> wkt /tmp/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab
> exit
Шаг 4. Скопируйте keytab в место расположения HDFS
Этот шаг требуется только в том случае, если включено любое из кластеров Active Directory.
Обязательно определите или замените переменные DOMAIN_SERVICE_ACCOUNT_USERNAME среды соответствующим значением.
Отправьте ключ в место назначения (безопасный кластер):
azdata bdc hdfs mkdir -p /user/$DOMAIN_SERVICE_ACCOUNT_USERNAME
azdata bdc hdfs cp -f /tmp/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab -t /user/$DOMAIN_SERVICE_ACCOUNT_USERNAME/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab
Сценарии копирования данных
Сценарий 1. Кластер с поддержкой Active Directory в кластер с поддержкой Active Directory
Экспорт требуемой переменной
DISTCP_KRB5KEYTABсреды:export DISTCP_KRB5KEYTAB=/user/$DOMAIN_SERVICE_ACCOUNT_USERNAME/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytabОпределите или замените
CLUSTER_CONTROLLERDESTINATION_CLUSTER_NAMESPACEPRINCIPALпеременные соответствующими значениями. Затем используйтеazdataдля проверки подлинности в целевом кластере:azdata login --auth ad --endpoint $CLUSTER_CONTROLLER --namespace $DESTINATION_CLUSTER_NAMESPACE --principal $PRINCIPALЗапустите распределенную копию данных:
azdata bdc hdfs distcp submit -f https://knox.$CLUSTER_NAME.$DOMAIN:30443/file.txt -t /file.txt
Сценарий 2. Базовый кластер безопасности для кластера с поддержкой Active Directory
Экспорт требуемых переменных среды
DISTCP_KRB5KEYTAB,DISTCP_AZDATA_USERNAMEиDISTCP_AZDATA_PASSWORD.export DISTCP_KRB5KEYTAB=/user/$DOMAIN_SERVICE_ACCOUNT_USERNAME/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab export DISTCP_AZDATA_USERNAME=<your basic security bdc username> export DISTCP_AZDATA_PASSWORD=<your basic security bdc password>Определите или замените
CLUSTER_CONTROLLERDESTINATION_CLUSTER_NAMESPACEPRINCIPALпеременные соответствующими значениями. Затем используйтеazdataдля проверки подлинности в целевом кластере:azdata login --auth ad --endpoint $CLUSTER_CONTROLLER --namespace $DESTINATION_CLUSTER_NAMESPACE --principal $PRINCIPALЗапуск распределенной копии данных
azdata bdc hdfs distcp submit --from-path https://$SOURCE_CLUSTER_IP:30443/file.txt --to-path /file.txt
Сценарий 3 - Кластер базовой безопасности к кластеру базовой безопасности
Экспорт требуемой переменной
DISTCP_AZDATA_USERNAMEсреды иDISTCP_AZDATA_PASSWORD:export DISTCP_AZDATA_USERNAME=<your basic security bdc username> export DISTCP_AZDATA_PASSWORD=<your basic security bdc password>Используйте
azdataдля проверки подлинности в целевом кластереЗапуск распределенной копии данных
azdata bdc hdfs distcp submit --from-path https://$SOURCE_CLUSTER_IP:30443/file.txt --to-path /file.txt
Мониторинг задания распределенного копирования
Команда azdata bdc hdfs distcp submit является асинхронной операцией, она возвращается сразу же, пока задание копирования выполняется в фоновом режиме. Отслеживайте задание копирования с помощью либо azdata, либо предоставленных пользовательских интерфейсов мониторинга.
Перечисление всех заданий распределенного копирования
azdata bdc hdfs distcp list
Обратите внимание на job-id тип работы, который необходимо отслеживать. Все остальные команды зависят от него.
Получение состояния распределенной задачи копирования
azdata bdc hdfs distcp state [--job-id | -i] <JOB_ID>
Получение полного состояния задания распределенного копирования
azdata bdc hdfs distcp status [--job-id | -i] <JOB_ID>
Получите журналы задания распределенного копирования
azdata bdc hdfs distcp log [--job-id | -i] <JOB_ID>
Подсказки для распределенного копирования
Чтобы скопировать все каталоги и их содержимое, завершите аргумент пути каталогом без "/". В следующем примере копируется каталог
sourceDirectoriesв корневую директорию HDFS.azdata bdc hdfs distcp submit --from-path https://$SOURCE_CLUSTER_IP:30443/sourceDirectories --to-path /Команда может содержать опции, поддерживающие модификаторы
--overwrite,--preserve,--updateи--delete. Модификатор должен быть помещен сразу после ключевого слова отправки, как показано ниже:azdata bdc hdfs distcp submit {options} --from-path https://$SOURCE_CLUSTER_IP:30443/sourceDirectories --to-path /
Next steps
Дополнительные сведения см. в разделе "Общие сведения о кластерах больших данных SQL Server".
Полный справочник по новой команде см. в статье azdata bdc hdfs distcp.