热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

笔记_Hadoop基础知识

Hadoop生态系统HDFS:构建于廉价计算机集群之上的分布式文件系统,低成本、高可靠性、高吞吐量HBase:一种分布式的、按列存储的数据库,适合于非结构化海量数据存储MapRed

Hadoop 生态系统

  • HDFS :构建于廉价计算机集群之上的分布式文件系统,低成本、高可靠性、高吞吐量
  • HBase:一种分布式的、按列存储的数据库,适合于非结构化海量数据存储
  • MapReduce: 分布式数据编程模型和执行环境
  • Pig:适合海量数据分析脚本语言工具,包括了一个数据分析语言和支持的运行环境
  • Hive:一种分布式、按列存储的数据仓库,提供强大的类SQL查询功能
  • ZooKeeper:一种分布式的、可用性高的协调服务,并提供分布式锁同步功能和群组管理功能
  • Sqoop:在结构化数据存储和HDFS之间高效批量传输数据

笔记_Hadoop基础知识

  • YARN:可为各类应用程序进行资源管理和调度,不同的YARN应用可以在同一个集群上共存
  • Spark:基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序

笔记_Hadoop基础知识


Google Mapreduce的思想

  •  如何对付大数据处理:分而治之
    • – 对相互间不具有计算依赖关系的大数据,实现并行最自然的办法就是采取分而治之的策略
  • 上升到抽象模型: Mapper与Reducer
    • – MPI等并行计算方法缺少高层并行编程模型
    • – 为了克服这一缺陷, MapReduce借鉴了Lisp函数式语言中的思想,用Map和Reduce两个函数提供了高层的并行编程抽象模型
  • 上升到构架:统一构架,为程序员隐藏系统层细节
    • – MPI等并行计算方法缺少统一的计算框架支持,程序员需要考虑数据存储、划分、分发、结果收集、错误恢复等诸多细节
    • – MapReduce设计并提供了统一的计算框架,为程序员隐藏了绝大多数系统层面的处理细节

HDFS的核心组成

  • NameNode
  • DataNode
  • SecondaryNameNode
  • Client客户端

笔记_Hadoop基础知识

Hadoop 2.0

Hadoop 2.0由HDFS、 MapReduce和YARN等构成

  • HDFS: HDFS Federation、 NameNode HA
  • MapReduce:运行在YARN上的MapReduce
  • YARN:一个全新的通用集群资源管理系统,可为各类应用程序进行资源管理和调度,不同YARN应用可以在同一个集群上共存

笔记_Hadoop基础知识

YARN的工作机制

  • 1.用户申请运行作业
  • 2.作业客户端从资源管理器(ResourceManager)获取新的作业ID
  • 3.作业客户端检查作业的输出说明,计算分片并将作业资源复制到HDFS
  • 4.调用资源管理器的submitApplication()方法提交作业
  • 5.1.资源管理器采用调度器为作业分配一个Container,并请求NodeManage启动该Container及MRAppManager
  • 5.2.节点管理器在Container中启动应用程序的MRAppMaster进程
  • 6.MRAppMaster进程创建多个对象以保持对作业进度的跟踪;向ResourceManager注册
  • 7.接受来自HDFS的在客户端计算的输入分片
  • 8.为该作业的所有map任务和reduce任务向资源管理器请求容器
  • 9.资源管理器为任务分配容器后, applicationmaster通过与节点管理器通信来启动容器
  • 10.YarnChild将任务需要的资源本地化:包括作业的配置、 JAR文件和所有来自分布式缓存的文件
  • 11.运行map任务或者reduce任务
     

笔记_Hadoop基础知识

Hive

Hive 数据模型

库( Database)、表( Table)、分区( Partition)和桶( Bucket)

  • – 库( Database):若干数据表的集合
    • – 表( Table):表在逻辑上由存储的数据和描述表中数据形式的相关元数据组成,每张表中的数据以文件的形式存储在相应的HDFS目录下,元数据存放在关系数据库中
  • – 分区( Partition):分区是为了在数据量过大时提高数据存储效率而对表进行划分的机制
    • e.g., to range-partition tables by date
  • – 桶( Bucket):通过对指定列值进行Hash并将结果除以桶的个数取余数的方法,将一张表或分区分到不同桶中,从而获得更高查询处理效率或者使取样更高效
    •  Hash partitions within ranges

笔记_Hadoop基础知识

HQL-Hive Query Language

  • 提供给数据分析人员使用的类似SQL的命令语法
  • 不是SQL语言所遵循的SQL-92标准中的全集:非全集,有扩展

笔记_Hadoop基础知识

Hive与Pig的对比

Hive和Pig的共同点
– 都提供了一种简单易用的脚本语言
– 都是基于MapReduce的数据分析脚本运行环境
笔记_Hadoop基础知识

HBase

  • HBase是Hadoop数据库,它是一个可以随机访问的、 实时存储和检索大数据的平台,它的目标是在集群环境下支持大表的高性能访问
  • Hbase是一个在HDFS上开发的面向列的分布式数据库。 如果需要实时的随机访问超大规模数据集,就可以使用Hbase这一Hadoop 应用

HBase物理存储结构

包括 Table、Region、Store、Hfile

 

Hbase 对比 关系型数据库管理系统(RDBMS)

笔记_Hadoop基础知识

BigTable

Big Table数据结构 - 半三维魔方结构
笔记_Hadoop基础知识

笔记_Hadoop基础知识

  • Bigtable是一个经过排序的、稀疏的、分布式的、持久化存储的多维度影射表
  • BigTable表通过行关键字( Row Key)、列关键字( Column Key)和时间戳( Time Stamp)三个维度来构成索引
    • i.e. (row: string , column: string , qualifier:string, time:int64 )  String.
  • 行通过行关键字按字典顺序排列
  • 列表示为 family : qualifier.
  • 单元格Cells可以通过timestamp存储多个版本的数据值.
  • BigTable是一种为了管理( Semi-)结构化数据而设计的分布式存储系统,这些数据可以扩展到非常大的规模,例如在数千台商用服务器上的达到PB(Petabytes)规模的数据
  • BigTable不是传统的关系型数据库,不支持JOIN这样的SQL语法, BigTable更像今日的NoSQL,优势在于扩展性和性能
     

推荐阅读
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 各个组件confspark-env.sh配置spark的环境变量confspark-default.conf配置spark应用默认的配置项和spark-env.sh有重合之处,可在 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文讨论了在进行 MySQL 数据迁移过程中遇到的所有 .frm 文件报错的问题,并提供了详细的解决方案和建议。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 在Hive中合理配置Map和Reduce任务的数量对于优化不同场景下的性能至关重要。本文探讨了如何控制Hive任务中的Map数量,分析了当输入数据超过128MB时是否会自动拆分,以及Map数量是否越多越好的问题。通过实际案例和实验数据,本文提供了具体的配置建议,帮助用户在不同场景下实现最佳性能。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • HTML5大文件传输技术深度解析与实践分享
    本文深入探讨了HTML5在Web前端开发中实现大文件上传的技术细节与实践方法。通过实例分析,详细讲解了如何利用HTML5的相关特性高效、稳定地处理大文件传输问题,并提供了可供参考的代码示例和解决方案。此外,文章还讨论了常见的技术挑战及优化策略,旨在帮助开发者更好地理解和应用HTML5大文件上传技术。 ... [详细]
  • 在Windows环境中优化提交Spark任务的方法与实践
    在Windows环境中优化提交Spark任务的方法与实践 ... [详细]
  • 大数据深度解读系列官网资源分享 ... [详细]
  • 本书《.NET Core 2.* 开发者指南》是面向开发者的全面学习与实践手册,涵盖了从基础到高级的各个层面。书中详细解析了 .NET Core 的核心概念,包括如何创建 .NET Core 网站,并通过视频教程直观展示操作过程。此外,还深入探讨了 Startup 类的作用、项目目录结构的组织方式以及如何在应用中使用静态文件等内容。对于希望深入了解 .NET Core 架构和开发技巧的开发者来说,本书提供了丰富的实践案例和详尽的技术指导。 ... [详细]
  • hadoop3.1.2 first programdefault wordcount (Mac)
    hadoop3.1.2安装完成后的第一个实操示例程 ... [详细]
author-avatar
weijun520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有