Usar curl para carregar dados no HDFS no Clusters de Big Data do SQL Server
Aplica-se a: SQL Server 2019 (15.x)
Este artigo explica como usar curl para carregar dados no HDFS no Clusters de Big Data do SQL Server 2019.
Importante
O complemento Clusters de Big Data do Microsoft SQL Server 2019 será desativado. O suporte para Clusters de Big Data do SQL Server 2019 será encerrado em 28 de fevereiro de 2025. Todos os usuários existentes do SQL Server 2019 com Software Assurance terão suporte total na plataforma e o software continuará a ser mantido por meio de atualizações cumulativas do SQL Server até esse momento. Para obter mais informações, confira a postagem no blog de anúncio e as opções de Big Data na plataforma do Microsoft SQL Server.
Pré-requisitos
Obter o IP externo do serviço
WebHDFS é iniciado quando a implantação é concluída e seu acesso passa pelo Knox. O ponto de extremidade do Knox é exposto por meio de um serviço do Kubernetes chamado gateway-svc-external. Para criar a URL de WebHDFS necessária para fazer upload/baixar arquivos, você precisa do endereço IP externo do serviço gateway-svc-external e do nome do cluster de Big Data. Você pode obter o endereço IP externo do serviço gateway-svc-external executando o seguinte comando:
kubectl get service gateway-svc-external -n <big data cluster name> -o json | jq -r .status.loadBalancer.ingress[0].ip
Observação
O <big data cluster name>
aqui está o nome do cluster que você especificou no arquivo de configuração de implantação. O nome padrão é mssql-cluster
.
Construir a URL para acessar o WebHDFS
Agora, você pode construir a URL para acessar o WebHDFS da seguinte maneira:
https://<gateway-svc-external service external IP address>:30443/gateway/default/webhdfs/v1/
Por exemplo:
https://13.66.190.205:30443/gateway/default/webhdfs/v1/
Autenticação com o Active Directory
Para implantações com o Active Directory, use o parâmetro de autenticação com curl
com a autenticação Negociate.
Para usar curl
com a autenticação do Active Directory, execute este comando:
kinit <username>
O comando gera um token Kerberos para uso do curl
. Os comandos demonstrados nas próximas seções especificam o parâmetro --anyauth
para curl
. Para as URLs que exigem a autenticação Negociate, o curl
detecta e usa automaticamente o token Kerberos gerado em vez do nome de usuário e da senha para autenticação nas URLs.
Listar um arquivo
Para listar o arquivo em hdfs:///product_review_data, use o seguinte comando curl:
curl -i -k --anyauth -u root:<AZDATA_PASSWORD> -X GET 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/?op=liststatus'
A partir do SQL Server 2019 (15.x) CU 5, quando você implanta um novo cluster com a autenticação básica, todos os pontos de extremidade, incluindo o gateway, usam AZDATA_USERNAME
e AZDATA_PASSWORD
. Os pontos de extremidade em clusters que são atualizados para CU 5 continuam usando root
como o nome de usuário para se conectar ao ponto de extremidade do gateway. Essa alteração não se aplica às implantações que usam a autenticação do Active Directory. Confira Credenciais para acessar serviços por meio do ponto de extremidade do gateway nas notas sobre a versão.
Em pontos de extremidade que não usam raiz, use o seguinte comando curl:
curl -i -k --anyauth -u <AZDATA_USERNAME>:<AZDATA_PASSWORD> -X GET 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/?op=liststatus'
Colocar um arquivo local no HDFS
Para colocar um novo arquivo test.csv do diretório local em product_review_data directory, use o seguinte comando curl (o parâmetro Content-Type é necessário):
curl -i -L -k --anyauth -u root:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/test.csv?op=create' -H 'Content-Type: application/octet-stream' -T 'test.csv'
A partir do SQL Server 2019 (15.x) CU 5, quando você implanta um novo cluster com a autenticação básica, todos os pontos de extremidade, incluindo o gateway, usam AZDATA_USERNAME
e AZDATA_PASSWORD
. Os pontos de extremidade em clusters que são atualizados para CU 5 continuam usando root
como o nome de usuário para se conectar ao ponto de extremidade do gateway. Essa alteração não se aplica às implantações que usam a autenticação do Active Directory. Confira Credenciais para acessar serviços por meio do ponto de extremidade do gateway nas notas sobre a versão.
Em pontos de extremidade que não usam raiz, use o seguinte comando curl:
curl -i -L -k --anyauth -u <AZDATA_USERNAME>:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/test.csv?op=create' -H 'Content-Type: application/octet-stream' -T 'test.csv'
Criar um diretório
Para criar um diretório teste em hdfs:///
, use o seguinte comando:
curl -i -L -k --anyauth -u root:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/test?op=MKDIRS'
A partir do SQL Server 2019 (15.x) CU 5, quando você implanta um novo cluster com a autenticação básica, todos os pontos de extremidade, incluindo o gateway, usam AZDATA_USERNAME
e AZDATA_PASSWORD
. Os pontos de extremidade em clusters que são atualizados para CU 5 continuam usando root
como o nome de usuário para se conectar ao ponto de extremidade do gateway. Essa alteração não se aplica às implantações que usam a autenticação do Active Directory. Confira Credenciais para acessar serviços por meio do ponto de extremidade do gateway nas notas sobre a versão.
Em pontos de extremidade que não usam raiz, use o seguinte comando curl:
curl -i -L -k --anyauth -u <AZDATA_USERNAME>:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/test?op=MKDIRS'
Próximas etapas
Para saber mais, confira Introdução a Clusters de Big Data do SQL Server.