Princípios do Hadoop Big Data (1) - Evolução da Arquitetura

1. Desenvolvimento de software

  O desenvolvimento de software tradicional passou por muito tempo, e a evolução da arquitetura C/S para B/S é uma mudança relativamente forte nos últimos 20 anos. Aos poucos "leve" o cliente e "pese" o servidor, tornando cada vez mais conveniente a atualização e manutenção dos serviços de software. Claro que essa comodidade também traz alguns problemas, ou seja, quando o cliente acessa uma grande quantidade de dados Às vezes, o servidor pode não suportar e travar, resultando em serviços inutilizáveis, exceções de banco de dados e outros problemas.

  Claro, com o desenvolvimento da Internet, a arquitetura B/S pode enfrentar grupos de usuários desconhecidos e perceber a expansão louca do número de usuários.Usuários só precisam de sistemas operacionais e navegadores para acessar os serviços.

  Outra mudança óbvia nos últimos 10 anos é que todos começaram a migrar de PCs para telefones celulares. De acordo com a Lei de Moore, os telefones celulares podem realizar cálculos cada vez mais poderosos. Agora quase todo mundo tem um telefone celular e entramos na era de Internet móvel.

  O desenvolvimento social está se tornando cada vez mais tecnológico, e a infraestrutura de coleta de informações, como vigilância por vídeo, está se tornando cada vez mais perfeita. Operadoras/empresas de software podem obter cada vez mais dados (sem discutir dessensibilização ou não, nem discutir análise de big data e retratos pode restaurar certos dados de dados dessensibilizados e procurar pessoas ou coisas específicas com precisão), e os dados começaram a crescer exponencialmente.

  Há cada vez mais dados, e os requisitos para analisarmos os dados estão ficando cada vez maiores. No passado, nosso software tradicional considerava principalmente a configuração de servidores de melhoria vertical. Se servidores de nível comercial não forem suficientes, atualizamos minicomputadores, minicomputadores Se não for suficiente, atualize o computador médio, se não for suficiente, atualize o mainframe e atualize o supercomputador. Embora, de acordo com a Lei de Moore, o poder de processamento do hardware dobre a cada 18 meses, ele sempre pode criar computadores mais poderosos. Mas, nos últimos anos, a taxa de crescimento do software é mais rápida que a do hardware. Depois de receber a demanda, a maioria dos engenheiros de software não tem tantos hardwares adequados para atender aos requisitos de serviço, portanto, esse tipo de pensamento não é adequado para os requisitos técnicos da Internet. Sites como Google, Facebook e Alibaba precisam processar bilhões de solicitações de usuários e gerar centenas de petabytes de dados todos os dias. É impossível para um único computador suportar uma demanda de computação tão grande.

  As empresas de Internet começaram a mudar seu modo de pensar para resolver problemas, desde melhorar verticalmente as capacidades de processamento de computadores no passado até computadores em expansão horizontal.Os atuais gigantes da Internet experimentaram esse processo de crescimento.

2. Surgimento da tecnologia de big data

  Se dois computadores desejam cooperar para formar um sistema, a arquitetura deve ser reprojetada. Agora é amplamente utilizado por empresas de Internet: balanceamento de carga, cache distribuído, bancos de dados distribuídos, serviços distribuídos e outros sistemas distribuídos.

  Quando essas tecnologias distribuídas atendem às necessidades diárias de negócios da Internet, foi proposto o processamento de dados off-line e dados de estoque.Na época, essas tecnologias distribuídas não atendiam aos requisitos, então a tecnologia de big data apareceu.

  A tecnologia de big data presta mais atenção aos dados, portanto, o projeto de arquitetura relevante também gira em torno dos dados. Como armazenar, calcular e transmitir dados em grande escala é o elemento central a ser considerado.

3. Computação Móvel

  Na indústria de big data, há um ditado bem conhecido de que a computação móvel é mais econômica do que os dados móveis .

  O seguinte descreve como mover o programa de computação para o local dos dados para computação:

  1. Armazene os dados em grande escala a serem processados ​​em todos os servidores do cluster de servidores, principalmente usando o sistema de armazenamento de arquivos distribuído HDFS, divida os arquivos em vários blocos (Block) e armazene-os nos servidores do cluster em unidades de blocos;

  2. De acordo com o poder de computação de diferentes servidores no cluster, o mecanismo de big data inicia vários processos de execução de tarefas distribuídas em cada servidor, e esses processos aguardarão que lhes sejam atribuídas tarefas de execução;

  3. Use o modelo de programação suportado pela estrutura de computação de big data para programação, como o modelo de programação MapReduce do Hadoop ou o modelo de programação RDD do Spark;

  4. Depois que o programa aplicativo é escrito, ele é empacotado.Tanto o MapReduce quanto o Spark são executados no ambiente JVM, portanto, o que é empacotado é um pacote Java JAR;

  5. Use o comando de inicialização do Hadoop ou Spark para executar o pacote JAR deste aplicativo. Primeiramente, o mecanismo de execução analisará o caminho de entrada de dados a ser processado pelo programa. De acordo com o tamanho dos dados de entrada, os dados serão divididos em vários pedaços (Split), e cada pedaço de dados será alocado Dê um processo de execução de tarefa para processar;

  6. Após o processo de execução da tarefa receber a tarefa atribuída, ele verifica se possui o pacote de programa correspondente à tarefa, caso contrário, baixa o pacote do programa e carrega o programa por reflexão após o download. Neste ponto, a etapa mais importante, ou seja, a computação móvel está concluída.

  7. Depois que o programa é carregado, o processo de execução da tarefa lê os dados de acordo com o endereço de arquivo da peça de dados alocada e o deslocamento dos dados no arquivo e insere os dados no método correspondente do programa de aplicativo para executar, realizando assim computação móvel nos programas de cluster de servidores distribuídos, alvos computacionais para processamento paralelo de dados em larga escala.

4. Estrutura de programação Hadoop

  A tecnologia de big data eleva a habilidade de programação da computação móvel ao nível do modelo de programação e desenvolve uma estrutura de programação correspondente, de modo que os desenvolvedores só precisam prestar atenção à implementação do algoritmo de big data e não precisam prestar atenção em como execute este algoritmo em um ambiente distribuído, o que simplifica muito a dificuldade de desenvolvimento de big data, unifica o método de desenvolvimento de big data e faz com que o limite de desenvolvimento de big data despenque. Isso também permite que mais engenheiros de big data se concentrem em negócios e análises, e faça tudo para cavar O valor dos dados.

  O Hadoop é uma estrutura de código aberto que permite o armazenamento e o processamento de big data em um ambiente distribuído em clusters de computadores usando um modelo de programação simples. Ele foi projetado para escalar de um único servidor para milhares de máquinas, cada uma fornecendo computação e armazenamento local. É uma infraestrutura de sistema distribuído desenvolvida pela Apache Foundation. Os usuários podem desenvolver programas distribuídos sem conhecer os detalhes subjacentes da distribuição. Faça uso total do poder do cluster para computação e armazenamento de alta velocidade.

  O Hadoop implementa um sistema de arquivos distribuído, um dos quais é o HDFS (Hadoop Distributed File System). O HDFS tem as características de alta tolerância a falhas e foi projetado para ser implantado em hardware de baixo custo (baixo custo); e fornece alto rendimento para acessar dados de aplicativos, adequado para aplicativos com conjuntos de dados muito grandes. O HDFS relaxa (relaxa) os requisitos do POSIX e pode acessar dados no sistema de arquivos na forma de fluxos.

  O design principal da estrutura do Hadoop é: HDFS e MapReduce. O HDFS fornece armazenamento para dados massivos, enquanto o MapReduce fornece cálculo para dados massivos.

  O Hadoop depende de serviços comunitários, a ecologia é muito boa e qualquer pessoa pode usá-la.

  O Hadoop tem principalmente as seguintes vantagens:

  1. Alta confiabilidade : alta confiabilidade de armazenamento bit a bit e recursos de processamento de dados;

  2. Alta escalabilidade : distribua dados e conclua tarefas de computação entre clusters de computadores disponíveis, que podem ser expandidos para milhares de nós de maneira conveniente e flexível;

  3. Eficiência : pode mover dados dinamicamente entre os nós e garantir o equilíbrio dinâmico de cada nó, portanto, a velocidade de processamento é muito rápida;

  4. Alta tolerância a falhas : salva automaticamente várias cópias de dados e pode reatribuir automaticamente tarefas com falha;

  5. Baixo custo : o cluster permite processar big data implantando máquinas comuns e baratas para formar um cluster, de modo que o custo é muito baixo. O importante é a capacidade geral do cluster;

  O Hadoop vem com um framework escrito na linguagem Java, por isso é ideal para rodar em uma plataforma de produção Linux. Aplicações no Hadoop também podem ser escritas em linguagem C++.

おすすめ

転載: blog.csdn.net/initiallht/article/details/124720256