RStudio em Databricks

O senhor pode usar o RStudio, um popular ambiente de desenvolvimento integrado (IDE) para R, para se conectar ao Databricks compute recurso no espaço de trabalho do Databricks. Use o RStudio Desktop para se conectar a um cluster Databricks ou a um SQL warehouse a partir de sua máquina de desenvolvimento local. O senhor também pode usar o navegador da Web para fazer login no seu Databricks workspace e, em seguida, conectar-se a um Databricks clusters que tenha o RStudio Server instalado, dentro desse workspace.

Conectar usando o RStudio Desktop

Use o RStudio Desktop para se conectar a clusters Databricks remotos ou SQL warehouse de sua máquina de desenvolvimento local. Para se conectar neste cenário, use uma conexão ODBC e chame as funções do pacote ODBC para R, que são descritas nesta seção.

Observação

Você não pode usar pacotes como SparkR ou sparklyr neste cenário do RStudio Desktop, a menos que você também use o Databricks Connect. Como alternativa ao uso do RStudio Desktop, você pode usar seu navegador da Web para entrar no workspace do Databricks e, em seguida, conectar-se a clusters do Databricks que tenham o RStudio Server instalado nesse workspace.

Para configurar o RStudio Desktop em sua máquina de desenvolvimento local:

  1. downloads e instalar R 3.3.0 ou superior.

  2. downloads e instale o RStudio Desktop.

  3. começar RStudio Desktop.

(Opcional) Para criar um projeto RStudio:

  1. começar RStudio Desktop.

  2. Clique em Arquivo > Novo Projeto.

  3. Selecione Novo diretório > Novo projeto.

  4. Escolha um novo diretório para o projeto e clique em Create Project.

Para criar um script R:

  1. Com o projeto aberto, clique em File > New File > R Script.

  2. Clique em Arquivo > Salvar como.

  3. Nomeie o arquivo e clique em Salvar.

Para conectar-se aos clusters Databricks remotos ou ao SQL warehouse por meio do ODBC para R:

  1. Obtenha os valores hostnamedo servidor, porta e caminho HTTP para seus clusters remotos ou SQL warehouse. Para clusters, esses valores estão na JDBC/ODBC tab de Opções avançadas. Para um SQL warehouse, esses valores estão na Detalhes tab da conexão .

  2. Obtenha um access tokenpessoal do Databricks.

    Observação

    Como prática recomendada de segurança ao se autenticar com ferramentas, sistemas, scripts e aplicativos automatizados, a Databricks recomenda que você use tokens OAuth.

    Se utilizar a autenticação access token pessoal, a Databricks recomenda a utilização access token pessoal pertencente à entidade de serviço em vez de utilizadores workspace . Para criar tokens para entidades de serviço, consulte gerenciar tokens para uma entidade de serviço.

  3. Instale e configure o driver ODBC do Databricks para Windows, macOS ou Linux, com base no sistema operacional do seu computador local.

  4. Configure um nome de fonte de dados (DSN) ODBC para seus clusters remotos ou SQL warehouse para Windows, macOS ou Linux, com base no sistema operacional da sua máquina local.

  5. No console do RStudio (view > Move Focus to Console), instale os pacotes ODBC e DBI do CRAN:

    require(devtools)
    
    install_version(
      package = "odbc",
      repos   = "http://cran.us.r-project.org"
    )
    
    install_version(
      package = "DBI",
      repos   = "http://cran.us.r-project.org"
    )
    
  6. De volta ao seu script R (view > Move Focus to Source), carregue os pacotes odbc e DBI instalados:

    library(odbc)
    library(DBI)
    
  7. Chame a versão ODBC da função dbConnect no pacote DBI , especificando o driver odbc no pacote odbc , bem como o ODBC DSN que você criou, por exemplo, um ODBC DSN de Databricks.

    conn = dbConnect(
      drv = odbc(),
      dsn = "Databricks"
    )
    
  8. Chame uma operação por meio do ODBC DSN, por exemplo, uma instrução SELECT por meio da função dbGetQuery no pacote DBI , especificando o nome da variável de conexão e a própria instrução SELECT , por exemplo, de uma tabela chamada diamonds em um esquema (banco de dados) chamado default:

    print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
    

O script R completo é o seguinte:

library(odbc)
library(DBI)

conn = dbConnect(
  drv = odbc(),
  dsn = "Databricks"
)

print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))

Para executar o script, na view código-fonte, clique em Código-fonte. Os resultados para o script R anterior são os seguintes:

  _c0 carat     cut color clarity depth table price    x    y    z
1   1  0.23   Ideal     E     SI2  61.5    55   326 3.95 3.98 2.43
2   2  0.21 Premium     E     SI1  59.8    61   326 3.89 3.84 2.31

Conectar usando o servidor RStudio

Use seu navegador da Web para entrar no seu workspace Databricks e, em seguida, conecte-se a um clusters Databricks que tenha o RStudio Server instalado, dentro desse workspace.

Observação

Como alternativa ao RStudio Server, você pode usar o RStudio Desktop para se conectar a clusters Databricks ou SQL warehouse a partir de sua máquina de desenvolvimento local por meio de uma conexão ODBC e chamar funções de pacote ODBC para R. Você não pode usar pacotes como SparkR ou sparklyr no cenário RStudio Desktop, a menos que você também use Databricks Connect.

Para o RStudio Server, você pode usar a edição código aberto ou a edição RStudio Workbench (anteriormente RStudio Server Pro) no Databricks. Se você quiser usar o RStudio Workbench / RStudio Server Pro, você deve transferir sua licença RStudio Workbench / RStudio Server Pro existente para o Databricks (consulte Get começar: RStudio Workbench).

Databricks recomenda que você use Databricks Runtime for Machine Learning (Databricks Runtime ML) em clusters Databricks com RStudio Server, para reduzir os tempos de início do cluster. O Databricks Runtime ML inclui uma versão não modificada do pacote RStudio Server código aberto Edition cujo código-fonte pode ser encontrado no GitHub. A tabela a seguir lista a versão do RStudio Server código aberto Edition que está atualmente pré-instalada nas versões Databricks Runtime ML.

Databricks Runtime para versão ML

Versão do servidor RStudio

Databricks Runtime 9.1 LTS ML e 10.4 LTS ML

1.4

Arquitetura de integração do RStudio

Quando você usa o RStudio Server no Databricks, a execução do RStudio Server Daemon no nó do driver de clusters do Databricks. A interface do usuário da Web do RStudio é proxy por meio do aplicativo da Web do Databricks, o que significa que você não precisa fazer nenhuma alteração na configuração de rede clusters . Este diagrama demonstra a arquitetura do componente de integração do RStudio.

Arquitetura do RStudio em Databricks

Aviso

Databricks faz proxy do serviço web RStudio da porta 8787 no driver Spark dos clusters . Este proxy da web destina-se a ser usado apenas com o RStudio. Se você iniciar outros serviços da Web na porta 8787, poderá expor seus usuários a possíveis falhas de segurança. Databricks não é responsável por quaisquer problemas resultantes da instalação de software sem suporte em clusters.

Requisitos

  • Os clusters devem ser um todo-propósito dos clusters .

  • O senhor deve ter permissão CAN ATTACH TO para esses clusters. O administrador do cluster pode conceder essa permissão ao senhor. Consulte Permissões de computação.

  • Os clusters não devem utilizar o modo de acesso compartilhado.

  • Os clusters não devem ter a configuração do Spark spark.databricks.pyspark.enableProcessIsolation definida como true.

  • Você deve ter uma licença Pro flutuante do RStudio Server para usar a edição Pro.

Observação

Embora os clusters possam usar um modo de acesso compatível com o Unity Catalog, o senhor não pode usar o RStudio Server desses clusters para acessar dados no Unity Catalog.

Começar: RStudio Server OS Edition

O RStudio Server código aberto Edition está pré-instalado em clusters Databricks que usam Databricks Runtime para Machine Learning (Databricks Runtime ML).

Para abrir o RStudio Server OS Edition em clusters, faça o seguinte:

  1. Abra a página de detalhes dos clusters .

  2. comece os clusters e clique na Aplicativos tab:

    tab Aplicativos clusters
  3. Na tab Aplicativos , clique no botão Configurar RStudio . Isso gera uma senha única para você. Clique no link show para exibi-lo e copie a senha.

    Senha única do RStudio
  4. Clique no link Abrir RStudio para abrir a IU em uma nova tab. Digite seu nome de usuário e senha no formulário de login e faça login.

    Formulário de login do RStudio
  5. Na IU do RStudio, você pode importar o pacote SparkR e configurar uma sessão SparkR para iniciar o Spark Job em seus clusters.

    library(SparkR)
    
    sparkR.session()
    
    # Query the first two rows of a table named "diamonds" in a
    # schema (database) named "default" and display the query result.
    df <- SparkR::sql("SELECT * FROM default.diamonds LIMIT 2")
    showDF(df)
    
    Sessão de edição do RStudio código aberto
  6. Você também pode anexar o pacote sparklyr e configurar uma conexão Spark.

    library(sparklyr)
    
    sc <- spark_connect(method = "databricks")
    
    # Query a table named "diamonds" and display the first two rows.
    df <- spark_read_table(sc = sc, name = "diamonds")
    print(x = df, n = 2)
    
    RStudio código aberto Edição sparklyr connection

Começar: RStudio Workbench

Esta seção mostra como configurar e começar a usar o RStudio Workbench (anteriormente RStudio Server Pro) em clusters Databricks. Veja um FAQ sobre a mudança de nome. Dependendo da sua licença, o RStudio Workbench pode incluir o RStudio Server Pro.

Configurar servidor de licença RStudio

Para usar o RStudio Workbench no Databricks, você precisa converter sua licença Pro em uma licença flutuante. Para obter ajuda, entre em contato com help@rstudio.com. Quando sua licença for convertida, você deverá configurar um servidor de licença para o RStudio Workbench.

Para configurar um servidor de licenças:

  1. Inicie uma pequena instância em sua rede de provedor cloud ; o daemon do servidor de licenças é muito leve.

  2. downloads e instale a versão correspondente do RStudio License Server em sua instância, e comece o serviço. Para obter instruções detalhadas, consulte o guia de administração do RStudio Workbench.

  3. Certifique-se de que a porta do servidor de licenças esteja aberta para instâncias do Databricks.

Instale o RStudio Workbench

Para configurar o RStudio Workbench em um cluster Databricks, o senhor deve criar um init script para instalar o pacote binário do RStudio Workbench e configurá-lo para usar o servidor de licenças para a concessão de licenças.

Observação

Se você planeja instalar o RStudio Workbench em uma versão Databricks Runtime que já inclui o pacote RStudio Server código aberto Edition, você precisa primeiro desinstalar esse pacote para que a instalação seja bem-sucedida.

A seguir, um exemplo de arquivo .sh que o senhor pode armazenar como init script em um local como o seu diretório pessoal como um arquivo workspace, em um volume do Unity Catalog ou no armazenamento de objetos. Para obter mais informações, consulte Usar script de inicialização com escopo de clusters. O script também executa configurações adicionais de autenticação que simplificam a integração com o Databricks.

Aviso

O script de inicialização com escopo de clusters no DBFS está no fim da vida útil. O armazenamento do script de inicialização no DBFS existe em alguns espaços de trabalho para dar suporte a cargas de trabalho legadas e não é recomendado. Todos os scripts de inicialização armazenados no DBFS devem ser migrados. Para obter instruções de migração, consulte Migrar script de inicialização do DBFS.

#!/bin/bash

set -euxo pipefail

if [[ $DB_IS_DRIVER = "TRUE" ]]; then
  sudo apt-get update
  sudo dpkg --purge rstudio-server # in case open source version is installed.
  sudo apt-get install -y gdebi-core alien

  ## Installing RStudio Workbench
  cd /tmp

  # You can find new releases at https://rstudio.com/products/rstudio/download-commercial/debian-ubuntu/.
  wget https://download2.rstudio.org/server/bionic/amd64/rstudio-workbench-2022.02.1-461.pro1-amd64.deb -O rstudio-workbench.deb
  sudo gdebi -n rstudio-workbench.deb

  ## Configuring authentication
  sudo echo 'auth-proxy=1' >> /etc/rstudio/rserver.conf
  sudo echo 'auth-proxy-user-header-rewrite=^(.*)$ $1' >> /etc/rstudio/rserver.conf
  sudo echo 'auth-proxy-sign-in-url=<domain>/login.html' >> /etc/rstudio/rserver.conf
  sudo echo 'admin-enabled=1' >> /etc/rstudio/rserver.conf
  sudo echo 'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> /etc/rstudio/rsession-profile

  # Enabling floating license
  sudo echo 'server-license-type=remote' >> /etc/rstudio/rserver.conf

  # Session configurations
  sudo echo 'session-rprofile-on-resume-default=1' >> /etc/rstudio/rsession.conf
  sudo echo 'allow-terminal-websockets=0' >> /etc/rstudio/rsession.conf

  sudo rstudio-server license-manager license-server <license-server-url>
  sudo rstudio-server restart || true
fi
  1. Substitua <domain> pela URL do Databricks e <license-server-url> pela URL do servidor de licença flutuante.

  2. Armazene esse arquivo .sh como init script em um local como, por exemplo, em seu diretório pessoal como um arquivo workspace, em um volume do Unity Catalog ou no armazenamento de objetos. Para obter mais informações, consulte Usar script de inicialização com escopo de clusters.

  3. Antes de iniciar um cluster, adicione esse arquivo .sh como um init script a partir do local associado. Para obter instruções, consulte Usar script de inicialização com escopo de clusters.

  4. Inicie os clusters.

Usar RStudio Server Pro

  1. Abra a página de detalhes dos clusters .

  2. comece os clusters e clique na Aplicativos tab:

    tab Aplicativos clusters
  3. Na Aplicativos tab, clique no botão Configurar RStudio .

    Senha única do RStudio
  4. Você não precisa da senha de uso único. Clique no link Open RStudio UI e ele abrirá uma sessão autenticada do RStudio Pro para você.

  5. Na IU do RStudio, você pode anexar o pacote SparkR e configurar uma sessão SparkR para iniciar o Spark Job em seus clusters.

    library(SparkR)
    
    sparkR.session()
    
    # Query the first two rows of a table named "diamonds" in a
    # schema (database) named "default" and display the query result.
    df <- SparkR::sql("SELECT * FROM default.diamonds LIMIT 2")
    showDF(df)
    
    Sessão do RStudio Pro
  6. Você também pode anexar o pacote sparklyr e configurar uma conexão Spark.

    library(sparklyr)
    
    sc <- spark_connect(method = "databricks")
    
    # Query a table named "diamonds" and display the first two rows.
    df <- spark_read_table(sc = sc, name = "diamonds")
    print(x = df, n = 2)
    
    RStudio Pro conexão sparklyr

Perguntas frequentes do servidor RStudio

Qual a diferença entre o RStudio Server código aberto Edition e o RStudio Workbench?

O RStudio Workbench oferece suporte a uma ampla gama de recursos corporativos que não estão disponíveis na edição código aberto. Você pode ver a comparação de recursos no site do RStudio.

Além disso, o RStudio Server código aberto Edition é distribuído sob a licença GNU Affero General Public License (AGPL), enquanto a versão Pro vem com uma licença comercial para organizações que não podem usar o software AGPL.

Por fim, o RStudio Workbench vem com suporte profissional e empresarial do RStudio, PBC, enquanto o RStudio Server código aberto Edition vem sem suporte.

Posso usar minha licença RStudio Workbench / RStudio Server Pro no Databricks?

Sim, se você já possui uma licença Pro ou Enterprise para RStudio Server, pode usar essa licença no Databricks. Veja Get começar: RStudio Workbench para saber como configurar o RStudio Workbench no Databricks.

Onde está a execução do RStudio Server? Preciso gerenciar algum serviço/servidor adicional?

Como você pode ver no diagrama na arquitetura de integração do RStudio, a execução do daemon do RStudio Server no nó do driver (mestre) de seus clusters Databricks. Com o RStudio Server edição código aberto, você não precisa executar nenhum servidor/serviço adicional. No entanto, para o RStudio Workbench, você deve gerenciar uma instância separada que execute o RStudio License Server.

Posso usar o RStudio Server em clusters padrão?

Observação

Este artigo descreve a UI dos clusters legados. Para obter informações sobre a nova UI de clusters (em visualização), incluindo alterações de terminologia para modos de acesso a clusters, consulte Referência de configuração de computação. Para obter uma comparação dos tipos de clusters novos e antigos, consulte Alterações na interface do usuário dos clusters e modos de acesso aos clusters.

Sim você pode.

Posso usar o RStudio Server em clusters com encerramento automático?

Não, você não pode usar o RStudio quando o encerramento automático está ativado. A rescisão automática pode limpar scripts e dados do usuário não salvos dentro de uma sessão do RStudio. Para proteger os usuários contra esse cenário de perda de dados não intencional, o RStudio é desabilitado nesses clusters por default.

Para clientes que necessitam de limpeza de recursos de cluster quando não são usados, a Databricks recomenda o uso de APIs de cluster para limpar clusters RStudio com base em um programar.

Como devo persistir meu trabalho no RStudio?

Recomendamos enfaticamente que você persista em seu trabalho usando um sistema de controle de versão do RStudio. RStudio tem ótimo suporte para vários sistemas de controle de versão e permite que você faça check-in e gerencie seus projetos. Se você não persistir seu código por meio de um dos métodos a seguir, corre o risco de perder seu trabalho se um administrador workspace reiniciar ou encerrar os clusters.

Um método é salvar seus arquivos (código ou dados) no O que é o Databricks File System (DBFS)?. Por exemplo, se você salvar um arquivo em /dbfs/, os arquivos não serão excluídos quando seus clusters forem encerrados ou reiniciados.

Outro método é salvar o R Notebook em seu sistema de arquivos local, exportando-o como Rmarkdown e, posteriormente, importando o arquivo para a instância do RStudio. Os blogs compartilhamento R Notebooks usando RMarkdown descrevem os passos com mais detalhes.

Outro método é montar um volume do Amazon Elastic File System (Amazon EFS) em seus clusters, para que quando os clusters forem encerrados você não perca seu trabalho. Quando os clusters são reiniciados, o Databricks remonta o volume do Amazon EFS e você pode continuar de onde parou. Para montar um volume existente do Amazon EFS em um cluster, chame as operações create cluster (POST /api/2.0/clusters/create) ou edit cluster (POST /api/2.0/clusters/edit) na API Clusters 2.0, especificando as informações de montagem do volume Amazon EFS na matriz cluster_mount_infos das operações.

Certifique-se de que os clusters que você cria ou usa não tenham Unity Catalog, o encerramento automático ou o escalonamento automático habilitados. Certifique-se também de que os clusters tenham acesso de gravação ao volume montado, por exemplo, executando o comando chmod a+w </path/to/volume> nos clusters. Você pode executar este comando em existentes clusters por meio do clusters terminal da web dos ou em novos clusters usando um init script init_scripts especificado na matriz das operações anteriores.

Se você não tiver um volume Amazon EFS existente, poderá criar um. Primeiro, entre em contato com o administrador do Databricks e obtenha a ID da VPC, a ID da sub-rede pública e a ID do grupo de segurança para seu workspace do Databricks. Em seguida, use esta informação, juntamente com o Console de gerenciamento da AWS, para criar um sistema de arquivos com configurações personalizadas usando o console do Amazon EFS. Na última passo deste procedimento, clique em Anexar e copie o nome DNS e as opções de montagem, que você especifica na matriz cluster_mount_infos anterior.

Como faço para iniciar uma sessão SparkR ?

SparkR está contido no Databricks Runtime, mas você deve carregá-lo no RStudio. execute o seguinte código dentro do RStudio para inicializar uma sessão SparkR .

library(SparkR)

sparkR.session()

Se houver um erro ao importar o pacote SparkR , execute .libPaths() e verifique se /home/ubuntu/databricks/spark/R/lib está incluído no resultado.

Se não estiver incluído, verifique o conteúdo de /usr/lib/R/etc/Rprofile.site. Liste /home/ubuntu/databricks/spark/R/lib/SparkR no driver para verificar se o pacote SparkR está instalado.

Como faço para iniciar uma sessão sparklyr ?

O pacote sparklyr deve ser instalado nos clusters. Use um dos seguintes métodos para instalar o pacote sparklyr :

  • Como uma biblioteca Databricks

  • install.packages() Comando

  • IU de gerenciamento de pacotes do RStudio

library(sparklyr)

sc <- spark_connect(method = databricks)

Como o RStudio se integra ao Databricks R Notebook?

Você pode mover seu trabalho entre Notebook e o RStudio por meio do controle de versão.

Qual é o diretório de trabalho?

Ao iniciar um projeto no RStudio, você escolhe um diretório de trabalho. Por default este é o diretório inicial no contêiner do driver (mestre) em que o RStudio Server está sendo executado. Você pode alterar esse diretório, se desejar.

Posso iniciar aplicativos brilhantes do RStudio em execução no Databricks?

Sim, você pode desenvolver e view aplicativos Shiny dentro do RStudio Server no Databricks.

Não consigo usar o terminal ou git dentro do RStudio no Databricks. Como posso consertar isso?

Certifique-se de ter desativado websockets. No RStudio Server código aberto Edition, você pode fazer isso na interface do usuário.

Sessão do RStudio

No RStudio Server Pro, você pode adicionar allow-terminal-websockets=0 a /etc/rstudio/rsession.conf para desabilitar websockets para todos os usuários.

Não vejo a guia Aplicativos nos detalhes clusters .

Este recurso não está disponível para todos os clientes. Você deve estar no plano Premium ouacima.