Integração Hadoop com R

No início, grandes dados e R não eram amigos naturais. R programação requer que todos os objectos ser carregado para a memória principal de uma única máquina. As limitações dessa arquitetura são rapidamente percebeu quando grande dados torna-se uma parte da equação.

Em contraste, sistemas de arquivos distribuídos, como Hadoop estão faltando técnicas estatísticas fortes, mas são ideais para escalar operações e tarefas complexas. Vertical escalar soluções - que requer investimento em hardware de supercomputação caro - muitas vezes não podem competir com o retorno de custo-valor oferecido por conjuntos distribuídos, hardware commodity.

Para estar em conformidade com as limitações, em memória single-máquina da linguagem R, os cientistas de dados muitas vezes teve que restringir a análise a apenas um subconjunto dos dados da amostra disponíveis. Antes de integração mais profunda com o Hadoop, os programadores de linguagem R ofereceu uma estratégia de scale-out para superar os desafios na memória colocados por grandes conjuntos de dados em máquinas individuais.

Isto foi conseguido usando sistemas de transmissão de mensagens e paginação. Esta técnica é capaz de facilitar o trabalho de mais de conjuntos de dados muito grande para armazenar na memória principal forma simultânea no entanto, a sua abordagem de programação de baixo nível apresenta uma curva de aprendizagem para aqueles não familiarizados com paradigmas de programação paralela.

Abordagens alternativas procuram integrar recursos estatísticos de R com grupos distribuídos de Hadoop de duas maneiras: a interface com linguagens de consulta SQL, e integração com Hadoop Streaming. No primeiro caso, o objetivo é alavancar plataformas de armazenamento de dados SQL existentes, como Hive e Pig. Esses esquemas simplificar Hadoop programação de trabalhos usando declarações de estilo SQL, a fim de fornecer programação de alto nível para a realização de trabalhos estatísticos sobre os dados do Hadoop.

Para os programadores que desejam programar trabalhos de MapReduce em línguas (incluindo R) diferente de Java, a segunda opção é fazer uso de streaming API do Hadoop. trabalhos MapReduce enviados por usuários passam por transformações de dados com a ajuda de fluxos padrão UNIX e serialização, garantindo a entrada compatível com Java para Hadoop - independentemente do idioma originalmente introduzido pelo programador.

Desenvolvedores continuar a explorar várias estratégias para alavancar a capacidade de computação distribuída de MapReduce e a capacidade de armazenamento quase ilimitada de HDFS de maneiras que podem ser exploradas por R.

Integração do Hadoop com R está em curso, com as ofertas disponíveis da IBM (Big R como parte de BigInsights) e revolução Analytics (Revolution R Enterprise). Bridging soluções que integram programação de alto nível e consulta de linguagens com Hadoop, como RHive e RHadoop, também estão disponíveis.

Fundamentalmente, cada sistema tem como objetivo oferecer os recursos analíticos profundos da linguagem R para muito maiores conjuntos de dados.

RHive

O quadro RHive serve como uma ponte entre a linguagem R e Hive. RHive entrega as ricas bibliotecas estatísticos e algoritmos de R para os dados armazenados no Hadoop, estendendo a linguagem de Hive SQL-like consulta (HiveQL) com funções específicas-R. Através das funções RHive, você pode usar HiveQL aplicar R modelos estatísticos para dados em seu cluster Hadoop que você tenha catalogado usando Hive.

RHadoop

Outra estrutura de código aberto disponível para programadores R é RHadoop, uma coleção de pacotes destinados para ajudar a gerenciar a distribuição e análise de dados com o Hadoop. Três pacotes de nota - rmr2, rhdfs e rhbase - fornecem a maior parte da funcionalidade do RHadoop:

  • rmr2: O pacote rmr2 suporta tradução da língua R em trabalhos MapReduce do Hadoop-conformes (produzindo código MapReduce eficiente, de baixo nível a partir do código R de nível superior).

  • rhdfs: O pacote rhdfs fornece uma API linguagem R para gerenciamento de arquivos mais lojas HDFS. Usando rhdfs, os usuários podem ler a partir de lojas HDFS a um quadro de dados R (matriz), e da mesma forma gravar dados de essas matrizes R de volta para o armazenamento HDFS.

  • rhbase: pacotes rhbase fornecer uma API linguagem R, bem como, mas o seu objetivo na vida é lidar com o gerenciamento de banco de dados para lojas HBase, ao invés de arquivos HDFS.

Revolution R

Revolution R (por Revolution Analytics) é uma oferta comercial R com suporte para integração em sistemas R Hadoop distribuídos. Revolution R promete entregar um melhor desempenho, funcionalidade e usabilidade para R no Hadoop. Para fornecer análises profundas semelhante a R, Revolution R faz uso da biblioteca SCALER da empresa - uma coleção de algoritmos de análise estatística desenvolvidos especificamente para coleções grandes de dados em escala empresarial.

SCALER visa proporcionar uma execução rápida do código do programa R em clusters Hadoop, permitindo que o desenvolvedor R para se concentrar exclusivamente em seus algoritmos estatísticos e não sobre MapReduce. Além disso, ele lida com várias tarefas de análise, tais como a preparação de dados, visualização e testes estatísticos.

IBM BigInsights Big R

Big R oferece integração end-to-end entre R e Hadoop oferta da IBM, BigInsights, permitindo que os desenvolvedores R para analisar os dados do Hadoop. O objetivo é explorar a sintaxe de programação de R e paradigmas de codificação, assegurando que os dados operados estadias em HDFS. R tipos de dados servem como proxies para esses armazenamentos de dados, o que significa que os desenvolvedores R não precisam de pensar em construções MapReduce de baixo nível ou quaisquer linguagens de script Hadoop específicas-(como Pig).

tecnologia BigInsights Big R suporta múltiplas fontes de dados - incluindo arquivos simples, HBase, e formatos de armazenamento Hive -, proporcionando a execução paralela e particionado de código R em todo o cluster Hadoop. Ela esconde muitas das complexidades nas HDFS subjacentes e estruturas MapReduce, permitindo funções Big R para executar análise de dados completos - em ambos os dados estruturados e não estruturados.

Finalmente, a escalabilidade do mecanismo estatístico do Big R permite aos desenvolvedores R para fazer uso de ambas as técnicas estatísticas pré-definidas, bem como autor de Nova próprios algoritmos.

menu