Conectando-se ao Apache Hive e Apache Pig usando componentes SSIS Hadoop

Conectando-se ao Apache Hive e Apache Pig usando componentes SSIS Hadoop

Conectando-se ao Apache Hive e Apache Pig usando componentes SSIS Hadoop
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Em nossos artigos publicados anteriormente nesta série, falamos sobre muitos componentes do SSIS Hadoop adicionados no SQL Server 2016, como o gerenciador de conexões Hadoop, a tarefa do sistema de arquivos Hadoop, a fonte de arquivos HDFS e o destino do arquivo HDFS.

Neste artigo, falaremos sobre as tarefas Hadoop Hive e Hadoop Pig. Primeiro, daremos uma breve visão geral do Apache Hive e do Apache Pig. Em seguida, ilustraremos os componentes e alternativas relacionados ao SSIS Hadoop.

Apache Hive

O Apache Hive é um software de armazenamento de dados de código aberto desenvolvido pelo Facebook, construído na parte superior do Hadoop. Ele permite consultar dados usando uma linguagem semelhante ao SQL chamada HiveQL ou usando o Apache Spark SQL. Ele pode armazenar dados em um repositório separado e permite criar tabelas externas na parte superior dos dados armazenados fora dos repositórios do Hive.

Em geral, essas tecnologias funcionam perfeitamente nos sistemas operacionais Linux, mas também podem ser instaladas no Windows usando a ferramenta Cygwin (consulte a seção de links externos para obter mais informações).

Porco Apache

O Apache Pig é uma estrutura de código aberto desenvolvida pelo Yahoo usada para escrever e executar tarefas do Hadoop MapReduce. Ele foi projetado para facilitar a gravação de programas MapReduce com uma linguagem de alto nível chamada PigLatin, em vez de usar código Java complicado. Também pode ser estendido com funções definidas pelo usuário.

O Apache Pig converte os scripts PigLatin em MapReduce usando uma camada de wrapper de maneira otimizada, o que diminui a necessidade de otimizar scripts manualmente para melhorar sua eficiência.

Semelhante ao Apache Hive e outros softwares, essa tecnologia funciona melhor em sistemas operacionais baseados em Linux, enquanto pode ser instalada no Windows (consulte a seção de links externos para obter mais informações).

Serviços WebHDFS e WebHCat

Como mencionamos no primeiro artigo desta série, existem dois tipos de conexões no gerenciador de conexões Hadoop: (1) WebHDFS usado para comandos HDFS e (2) WebHCat usado para tarefas apache Hive e Pig.

Leia Também  Construindo SQL ConstantCare®: Com quais crescimentos de banco de dados você se importa?

Vale ressaltar que WebHDFS e WebHCat são duas APIs REST usadas para se comunicar com os componentes do Hadoop. Essas APIs nos permitem executar comandos relacionados ao Hadoop, independentemente do sistema operacional atual e se o Hadoop pode ser acessado por meio de comandos do shell. Observe que o WebHDFS está instalado com o Hadoop, enquanto o WebHCat está instalado com o Apache Hive.

APIs WebHCat e WebHDFS

Figura 1 – APIs WebHDFS e WebHCat (referência)

Para iniciar a API WebHCat, você deve executar o seguinte comando:

$ HIVE_HOME / hcatalog / sbin / webhcat_server.sh start

Conectando-se ao WebHCat usando o gerenciador de conexões Hadoop

A conexão ao WebHCat é muito semelhante ao WebHDFS, conforme explicado no primeiro artigo. Observando que a porta padrão é 50111.

Configurando uma conexão WebHCat a ser usada pelos componentes do Hadoop

Figura 2 – Configurando a conexão WebHCat

Para garantir que a conexão esteja bem configurada, podemos usar o botão “Testar conexão”.

Testando a conexão WebHCat

Figura 3 – Testando a conexão

Tarefa Hiveop Hive

O componente do Hadoop relacionado ao Hive é chamado de “Tarefa do Hadoop Hive”. Este componente foi projetado para executar instruções HiveQL. Ele usa uma conexão WebHCat Hadoop para enviar uma declaração ao servidor Apache Hive.

Este componente do Hadoop é muito simples, como mostrado na captura de tela abaixo, seu editor contém apenas alguns parâmetros para configurar:

Editor de tarefas do Hadoop Hive

Figura 4 – Editor de tarefas do Hadoop Hive

  • Nome: O nome da tarefa
  • Descrição: A descrição da tarefa
  • HadoopConnection: Devemos selecionar o gerenciador de conexões Hadoop relacionado
  • SourceType: Existem duas opções:
    • Entrada direta: Escreva um script HiveQL manualmente
    • Arquivo de script: Use um arquivo de script armazenado no Hadoop
  • InlineScript: (disponível para DirectInput Source), devemos escrever aqui a instrução HiveQL
  • HadoopScriptFilePath: (disponível para ScriptFile Source), devemos especificar o caminho do arquivo Hadoop
  • TimeoutInMinutes: O tempo limite do comando em minutos: se for inserido zero, o comando será executado de forma assíncrona

Exemplo

Para executar um exemplo, usamos a seguinte instrução HiveQL para criar uma tabela Hive:

Escrevendo um script HiveQL no componente SSIS Hadoop

Figura 5 – Script HiveQL

Após a execução do pacote, iniciamos o shell do Hive a partir de um prompt de comandos e executamos o seguinte comando para mostrar as tabelas disponíveis no banco de dados padrão:

O resultado mostra que a tabela de funcionários é criada:

Verificando se a tabela é criada a partir do shell do Apache Hive

Figura 6 – Tabela criada mostrada a partir do shell do Hive

Comandos síncronos vs. assíncronos

Para ilustrar a diferença entre comandos síncronos e assíncronos, realizamos a seguinte experiência:

Primeiro, configuramos a propriedade “TimeoutInMunites” para 1440 (padrão) e executamos o pacote. Conforme mostrado na captura de tela abaixo, a janela imediata continua mostrando as informações de execução enviadas do servidor Hive.

Execução de tarefa síncrona

Figura 7 – Execução de tarefa síncrona

Se definirmos a propriedade TimeoutInMinutes como 0 e executarmos o pacote, a tarefa mostrará que ela foi concluída com êxito caso um trabalho seja agendado no cluster Hadoop.

Execução de tarefa assíncrona

Figura 8 – Execução de tarefa assíncrona

Tarefas do Hadoop Pig

O componente Hadoop relacionado ao Apache Pig é chamado de “tarefa Hadoop Pig”. Esse componente é quase o mesmo que a Tarefa do Hadoop Hive, pois possui as mesmas propriedades e usa uma conexão WebHCat. A única diferença é que ele executa um script PigLatin em vez de HiveQL.

Editor de tarefas do Hadoop Pig

Figura 9 – Editor de tarefas do Hadoop Pig

Alternativa do componente SSIS Hive Hadoop: Driver ODBC do Microsoft Hive

Há outro método disponível para conectar-se ao servidor Apache Hive no SSIS, além de usar os componentes SSIS Hadoop, que é o driver ODBC do Microsoft Hive. Isso permite criar uma conexão ODBC com o Apache Hive. O driver ODBC se conecta diretamente ao servidor Hive em execução (HiveServer1 ou HiveServer2).

Primeiro, devemos baixar o driver no link de download oficial da Microsoft. Observe que existem dois drivers (32 e 64 bits). Depois de baixar e instalar o driver, devemos adicionar uma fonte ODBC seguindo estas etapas:

  1. Navegue para Painel de Controle> Sistema e Segurança> Ferramentas Administrativas

  2. Abra as fontes de dados ODBC (32 ou 64 bits)

    Atalhos de fontes de dados ODBC

    Figura 10 – Atalhos de fontes de dados ODBC

  3. Devemos adicionar um DSN de usuário ou sistema (observe que o DSN de sistema de amostra foi criado durante a instalação)

    Amostras do Microsoft Hive ODBC DSN

    Figura 11 – Exemplo de DSN do Microsoft Hive

  4. Depois de clicar no botão Adicionar, devemos selecionar o driver ODBC do Microsoft Hive na lista de drivers

    Selecionando o driver ODBC do Microsoft Hive

    Figura 12 – Selecionando o driver ODBC do Microsoft Hive

  5. Agora devemos configurar o DSN do driver ODBC do Hive:

    1. Hospedeiro: o endereço do host do servidor Hive
    2. Porta: o número da porta do servidor Hive
    3. Base de dados: o nome do banco de dados

      Instalação do Microsoft Hive ODBC DSN

      Figura 13 – Configuração do Microsoft Hive ODBC DSN

  6. Devemos testar a conexão antes de criar o DSN ODBC

    Testando a conexão ODBC

    Figura 14 – Testando a conexão

  7. Após criar o DSN do ODBC, devemos criar um novo gerenciador de conexões ODBC no SSIS:

    Incluindo o Gerenciador de Conexão ODBC

    Figura 15 – Adicionando o gerenciador de conexões ODBC

  8. Em seguida, devemos selecionar o DSN ODBC que criamos ao configurar o gerenciador de conexões:

    Usando o DSN criado no gerenciador de conexões

    Figura 16 – Usando o DSN criado no gerenciador de conexões

Vantagens

O uso do driver ODBC do Microsoft Hive tem muitos benefícios:

  1. Pode ser usado com versões anteriores do SQL Server (antes de 2016)

  2. Podemos usar o apache Hive como fonte ou destino na tarefa de fluxo de dados

  3. Pode ser usado para clusters Hadoop baseados na nuvem e no local

  4. Muitos componentes do SSIS podem usar conexões ODBC (exemplo: Executar tarefa SQL)

Links externos

Conclusão

Neste artigo, falamos sobre o Apache Hive e o Apache Pig. Em seguida, explicamos o que são os serviços WebHDFS e WebHCat. Ilustramos os componentes do Hadoop relacionados ao Hive e Pig no SSIS. E, finalmente, mostramos como usar o driver ODBC do Microsoft Hive como uma alternativa do componente Hive Hadoop.

Índice

Hadi Fadlallah
Últimas mensagens de Hadi Fadlallah (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br