Pergunta

Algum de vocês já experimentou o Hadoop?Ele pode ser usado sem o sistema de arquivos distribuído que o acompanha, em uma arquitetura Share-nothing?Isso faria sentido?

Também estou interessado em quaisquer resultados de desempenho que você tenha ...

Foi útil?

Solução

Sim, você pode usar o Hadoop em um sistema de arquivos local usando URIs de arquivo em vez de URIs hdfs em vários lugares.Acho que muitos dos exemplos que vêm com o Hadoop fazem isso.

Provavelmente isso é bom se você quiser apenas aprender como o Hadoop funciona e o paradigma básico de redução de mapas, mas você precisará de várias máquinas e de um sistema de arquivos distribuído para obter os benefícios reais da escalabilidade inerente à arquitetura.

Outras dicas

O Hadoop MapReduce pode ser executado em qualquer número de sistemas de arquivos ou até mesmo em fontes de dados mais abstratas, como bancos de dados.Na verdade, existem algumas classes integradas para suporte a sistemas de arquivos não-HDFS, como S3 e FTP.Você também pode criar facilmente seu próprio formato de entrada estendendo o básico Classe InputFormat.

Entretanto, usar o HDFS traz certas vantagens.A vantagem mais potente é que o agendador de tarefas MapReduce tentará executar mapas e reduções nas máquinas físicas que armazenam os registros que necessitam de processamento.Isso traz um aumento de desempenho, pois os dados podem ser carregados diretamente do disco local em vez de transferidos pela rede, o que dependendo da conexão pode ser muito mais lento.

Como Joe disse, você realmente pode usar o Hadoop sem HDFS.No entanto, o rendimento depende da capacidade do cluster de realizar cálculos perto de onde os dados estão armazenados.O uso do HDFS tem dois benefícios principais IMHO 1) a computação é distribuída de maneira mais uniforme pelo cluster (reduzindo a quantidade de comunicação entre nós) e 2) o cluster como um todo é mais resistente a falhas devido à indisponibilidade de dados.

Se seus dados já estiverem particionados ou particionáveis ​​trivialmente, você pode querer fornecer sua própria função de particionamento para sua tarefa de redução de mapa.

A melhor maneira de entender o Hadoop é baixá-lo e começar a explorar os exemplos de inclusão.Use uma máquina/VM Linux e sua configuração será muito mais fácil do que Mac ou Windows.Quando você se sentir confortável com os exemplos e conceitos, comece a ver como o espaço do seu problema pode ser mapeado na estrutura.

Alguns recursos que você pode achar úteis para obter mais informações sobre o Hadoop:

Vídeos e apresentações do Hadoop Summit

Hadoop:O Guia Definitivo:Versão de cortes brutos - Este é um dos poucos (únicos?) livros disponíveis no Hadoop neste momento.Eu diria que vale a pena o preço da opção de download eletrônico mesmo neste momento (o livro está aproximadamente 40% completo).

Hadoop: The Definitive Guide: Rough Cuts Version

Computação paralela/distribuída = VELOCIDADE << O Hadoop torna isso realmente fácil e barato, já que você pode usar apenas um monte de máquinas comuns!!!

Ao longo dos anos, as capacidades de armazenamento em disco aumentaram enormemente, mas as velocidades de leitura dos dados não acompanharam.Quanto mais dados você tiver em um disco, mais lenta será a busca.

Hadoop é uma variante inteligente da abordagem dividir e conquistar para solução de problemas.Basicamente, você divide o problema em partes menores e atribui as partes a vários computadores diferentes para executar o processamento em paralelo. acelerar as coisas em vez de sobrecarregar uma máquina.Cada máquina processa seu próprio subconjunto de dados e o resultado é combinado no final.O Hadoop em um único nó não proporcionará a velocidade que importa.

Para ver os benefícios do hadoop, você deve ter um cluster com pelo menos 4 a 8 máquinas comuns (dependendo do tamanho dos seus dados) no mesmo rack.

Você não precisa mais ser um engenheiro de sistemas paralelos supergênio para aproveitar as vantagens da computação distribuída.Basta conhecer o hadoop com o Hive e você está pronto para prosseguir.

sim, o hadoop pode ser muito bem usado sem HDFS.HDFS é apenas um armazenamento padrão para Hadoop.Você pode substituir o HDFS por qualquer outro armazenamento, como bancos de dados.HadoopDB é um aumento do hadoop que usa bancos de dados em vez de HDFS como fonte de dados.Google, você conseguirá facilmente.

Se você está apenas começando, baixe o CDH4 e execute-o.Você pode instalar facilmente em uma máquina virtual local e executar em "modo pseudo-distribuído", que imita de perto como seria executado em um cluster real.

Sim, você pode usar o sistema de arquivos local usando file:// enquanto especifica o arquivo de entrada, etc. e isso funcionaria também com pequenos conjuntos de dados. Mas o poder real do hadoop é baseado no mecanismo distribuído e de compartilhamento.Mas o Hadoop é usado para processar uma grande quantidade de dados. Essa quantidade de dados não pode ser processada por uma única máquina local ou, mesmo que isso aconteça, levará muito tempo para concluir o trabalho. ) vários mapeadores podem lê-lo simultaneamente e reduz o tempo para terminar o trabalho.Resumindo, você pode usá-lo com sistema de arquivos local, mas para atender aos requisitos de negócios, você deve usá-lo com sistema de arquivos compartilhado.

Ótimas respostas teóricas acima.

Para alterar seu sistema de arquivos hadoop para local, você pode alterá-lo no arquivo de configuração "core-site.xml" como abaixo para as versões 2.x.x do hadoop.

 <property>
    <name>fs.defaultFS</name>
    <value>file:///</value>
  </property>

para versões 1.x.x do hadoop.

 <property>
    <name>fs.default.name</name>
    <value>file:///</value>
  </property>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top