Integração hadoop com r

No início, grandes dados e R não eram amigos naturais. R programação exige que todos os objetos ser carregado na memória principal de uma única máquina. As limitações dessa arquitetura são rapidamente percebeu quando big data 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 supercomputação caro - muitas vezes não pode competir com o retorno de custo-valor oferecido por grupos distribuídos, hardware commodity.

Para estar de acordo 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 de apenas um subconjunto dos dados da amostra disponíveis. Antes de integração mais profunda com Hadoop, 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 em forma simultânea memória principal 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. Estes 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.

Video: Hadoop and R

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 entrada Java-compliant 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.

Video: RHadoop - Integrating R with Hadoop | How to Integrate R, Hadoop | R Programming Tutorial | Edureka

Integração do Hadoop com R está em curso, com as ofertas disponíveis da IBM (Big R como parte de BigInsights) e Revolution Analytics (Revolution R Enterprise). Bridging soluções que integram programação de alto nível e consulta de línguas 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 língua e R colmeia. RHive oferece as ricas bibliotecas estatísticos e algoritmos de R para os dados armazenados no Hadoop, estendendo a linguagem do 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

Outro framework 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 Hadoop. Três pacotes de nota - rmr2, rhdfs e rhbase - fornecem a maior parte da funcionalidade do RHadoop:

Video: MapReduce job written in R run by Hadoop (Hortonworks Sandbox)

  • rmr2: O pacote rmr2 suporta tradução da língua R em trabalhos de 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 a partir destas 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 rápida execução de 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 numerosas tarefas de análise, tais como a preparação de dados, a 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).

Video: Data Analytics using Hadoop & R (Alchemy LearnSoft)

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 de R 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 abrangentes - 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.


Publicações relacionadas