Hadoop的核心组件包含:
1. Hadoop分布式文件系统(HDFS)Hadoop Distributed File System
HDFS一个高度可靠的分布式文件系统,跨成百上千台机器存储和处理PB级数据。是Hadoop的核心组件之一。
特点:
高容错性:通过数据块的多副本存储实现,每个数据块有三个副本,存储在不同的节点上。
高吞吐量:批量数据访问,而不是低延迟的随机访问。
适合大文件:减少了元数据的存储需求,HDFS得以优化大文件的存储,
2. MapReduce编程模型
用于处理和生成大数据集,将复杂的计算任务分解为 Map(映射)和 Reduce(归纳)两个阶段
MapReduce的工作流程通常包括两个阶段:
- Map阶段:处理输入数据,生成中间键值对(key-value pairs)。
- Reduce阶段:对Map阶段生成的中间键值对进行合并处理,生成最终结果。
组件:JobTracker、TaskTracker、MapTask、ReduceTask等
JobTracker负责作业管理与任务调度,TaskTracker负责任务执行与进度更新,MapTask和ReduceTask分别负责Map和Reduce阶段的具体计算任务。
与此同时mapreduce也能够应用在处理文本数据上。
如:
1.数据采集和清洗:从各种源收集文本数据,如网页、日志文件、社交媒体等,然后对数据进行清洗,去除无效的字符、特殊符号和 HTML 标签。
2.分词和词频统计:将文本拆分成一系列词语,并使用 MapReduce 作业计算每个词的频率和统计信息。
3.去除停用词:去除一些常见的停用词,以便更好地聚焦于有意义的信息。
4.词性标注和实体识别:标注每个词的词性,识别文本中的命名实体。
5.文本分析:进行情感分析、主题建模、文本聚类和分类等更深入的文本分析。
3. YARN(Yet Another Resource Negotiator)
YARN,负责Hadoop 的资源管理和任务调度系统,负责集群中计算资源的管理和调度
组件:
-ResourceManager:负责整个集群的资源管理和作业调度。
-NodeManager:在每个节点上运行,负责管理单个节点的资源和任务执行。
- ApplicationMaster:负责单个作业的生命周期管理,包括任务调度和监控。
4. Hive:提供SQL风格的接口来执行MapReduce作业。
5. Pig:提供高级编程语言来编写MapReduce作业。
6. HBase:是一个分布式、可扩展的大数据存储,提供对大规模稀疏数据集的随机读/写访问
7. Spark:虽然不是 Hadoop 的一部分,但经常与 Hadoop 生态系统集成使用,提供了更快的数据处理速度和更广泛的计算模型