Análisis del framework de big data Hadoop

Autor: Fantasma

Fuente: Comunidad Hang Seng LIGHT Cloud

Concepto de Hadoop y su desarrollo

Hadoop se originó por primera vez en Nutch. El objetivo de diseño de Nutch es construir un motor de búsqueda web completo a gran escala, que incluya rastreo web, indexación, consulta y otras funciones, pero a medida que aumenta la cantidad de páginas web rastreadas, se encuentra con serios problemas de escalabilidad: cómo resolver miles de millones Almacenamiento e indexación de paginas web.

Dos artículos publicados por Google en 2003 y 2004 proporcionaron una solución factible a este problema.

  • Sistema de archivos distribuidos (GFS), que se puede utilizar para manejar el almacenamiento de páginas web masivas.
  • El marco de computación distribuida MAPREDUCE se puede utilizar para tratar el problema de cálculo de indexación de páginas web masivas.

Los desarrolladores de Nutch completaron las correspondientes implementaciones de código abierto de HDFS y MAPREDUCE, y se separaron de Nutch para convertirse en un proyecto independiente HADOOP. En enero de 2008, HADOOP se convirtió en el principal proyecto de Apache (en el mismo año, se estableció la compañía cloudera), marcando el comienzo en su rápido desarrollo.

  • En términos generales, Hadoop se refiere a un ecosistema de grandes datos, que incluye muchos otros programas.
  • En un sentido estricto, Hadoop se refiere únicamente al software Hadoop.

1.jpeg

Introducción a las versiones históricas de Hadoop

Versión de la serie 0.x: la primera versión de código abierto de hadoop, que se usa ampliamente en el extranjero, porque aún no se ha desarrollado el big data nacional, y las versiones 1.x y 2.x evolucionaron sobre esta base.

Serie de versiones 1.x: la versión de código abierto de segunda generación entre las versiones de Hadoop, que corrige principalmente algunos errores en la versión 0.x, y es la generación con el tiempo más corto.

Serie de versiones 2.x: la arquitectura ha sufrido cambios importantes y se han introducido muchas características nuevas, como la plataforma yarn.En la actualidad, la versión más utilizada en China, porque China estaba en la etapa de explosión de big data en ese momento.

Serie de versiones 3.x: se introdujeron algunas funciones y optimizaciones importantes, incluida la codificación de borrado de HDFS, la compatibilidad con varios Namenode (más de dos), la optimización de tareas nativas de MR, la memoria basada en cgroup de YARN y el aislamiento de E/S de disco, etc., y los requisitos mínimos para JDK El requisito de versión es JDK1.8. El tiempo de lanzamiento es relativamente tardío y no se usa mucho en la actualidad, pero se convertirá en la corriente principal en el futuro.

Introducción a los peinados de hadoop de las tres principales empresas

-免费开源版本 apache

官网:hadoop.apache.org/

优点:拥有全世界的开源贡献者,代码更新迭代版本比较快

缺点:版本的升级,版本的维护,版本的兼容性,版本的补丁都可能考虑不太周到,学习可以用,实际生产工作环境尽量不要使用

apache 所有软件的下载地址(包括各种历史版本):

archive.apache.org/dist/

-免费开源 hortonWorks

官网:hortonworks.com/

hortonworks 主要是雅虎主导 Hadoop 开发的副总裁,带领二十几个核心成员成立 Hortonworks,核心产品软件 HDP(ambari),HDF 免费开源,并且提供一整套的 web 管理界面,供我们可以通过 web 界面管理我们的集群状态,web 管理界面软件 HDF 网址(ambari.apache.org/

-软件收费版本 ClouderaManager

官网:www.cloudera.com/

cloudera 主要是美国一家大数据公司在 apache 开源 hadoop 的版本上,通过自己公司内部的各种补丁,实现版本之间的稳定运行,大数据生态圈的各个版本的软件都提供了对应的版本,解决了版本的升级困难,版本兼容性等各种问题

Hadoop 的模块组成

  1. Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。
  2. Hadoop MapReduce:一个分布式的离线并行计算框架。
  3. Hadoop YARN:作业调度与集群资源管理的框架。
  4. Hadoop Common:支持其他模块的工具模块。

Hadoop 的架构模型

NameNode 与 ResourceManager 单节点架构模型

f7e3084245fe5646171b14b607d48c3d.png

文件系统核心模块:

  • NameNode:集群当中的主节点,主要用于管理集群当中的各种数据
  • secondaryNameNode:主要能用于 hadoop 当中元数据信息的辅助管理
  • DataNode:集群当中的从节点,主要用于存储集群当中的各种数据

数据计算核心模块:

  • ResourceManager:接收用户的计算请求任务,并负责集群的资源分配
  • NodeManager:主要用于接收 applicationMaster 分配的任务
  • applicationMaster: resourcemanager 为每个计算任务启动一个 appMaster, appMatser 主要负责资源的申请, 任务的分配
  • NameNode 与 ResourceManager 高可用架构模型

2239b4a3398b4a6e2bccf6ce46192dde.png

文件系统核心模块:

  • NameNode:集群当中的主节点,主要用于管理集群当中的各种数据,一般都是使用两个,实现 HA 高可用
  • JournalNode:元数据信息管理进程,一般都是奇数个
  • DataNode:从节点,用于数据的存储

数据计算核心模块:

  • ResourceManager:Yarn 平台的主节点,主要用于接收各种任务,通过两个,构建成高可用
  • NodeManager:Yarn 平台的从节点,主要用于处理 ResourceManager 分配的任务

Hadoop 目前的现状

自 2015 年开始 Hadoop 暴露出诸多问题引起注意。随后 Gartner、IDG 等公司分析师、Hadoop 用户和 Hadoop 和大数据圈内人士越来越多的反映出各种问题。

究其原因,主要如下:

  • Hadoop 栈过于复杂,组件众多,集成困难,玩转代价过高
  • Hadoop 创新速度不够(或者说起点过低),且缺乏统一的理念和管控,使得其众多组件之间的集成非常复杂
  • 受到 Cloud 技术的冲击,特别是类 S3 对象存储提供了比 HDFS 更廉价、更易用、更可伸缩的存储,撬动了 Hadoop 的根基 HDFS
  • 对 Hadoop 期望过高,Hadoop 发迹于廉价存储和批处理,而人们期望 Hadoop 搞定大数据所有问题,期望不匹配造成满意度很低
  • 人才昂贵,且人才匮乏

总结

En resumen, ha pasado el apogeo de Hadoop como primera generación de soluciones de big data, y el big data ha entrado en la segunda generación: las bases de datos distribuidas.

Las bases de datos distribuidas, especialmente las bases de datos MPP, han resuelto bien el nivel de análisis básico de big data y continuarán desarrollándose en la dirección de un uso más fácil y rápido en el futuro.

El análisis avanzado de datos se está moviendo en la dirección de hundirse en la base de datos. La dificultad en el nivel de análisis de datos avanzado no es el análisis, sino la cantidad y calidad de los datos en sí. Espere que surjan más innovaciones en esta área.

おすすめ

転載: juejin.im/post/6989478347122147342