Hadoop学习笔记——01

  1. Hadoop提供了一个稳定的共享存储和分析系统。存储由HDFS实现,分析由MapReduce实现。虽然Hadoop还有其他功能,但这些是它的核心所在。Hadoop思想来源于Google的三篇论文:
    (1)Google-File-System(提取码:q6o2)
    (2)Google-MapReduce(提取码:76hk)
    (3)Google-Bigtable(提取码:6rtp)
  2. Hadoop的子项目:
    (1)Core:一系列分布式文件系统和通用I/O的组件和接口;
    (2)Avro:一种提供高效、跨语言RPC的数据序列系统,持久化数据存储。
    (3)MapReduce:分布式数据处理模式和执行环境,运行于大型商用机集群;
    (4)HDFS:分布式文件系统,运行于大型商用机集群;
    (5)Pig:一种流语言和运行环境,用以检索非常大的数据集。Pig运行在MapReduce和HDFS的集群上。
    (6)Hbase:一个分布式的、列存储数据库。Hbase使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取)。
    (7)ZooKeeper:一个分布式的、高可用的协调服务。ZooKeeper提供分布式锁之类的基本服务用于构建分布式应用。
    (8)Hive:分布式数据仓库。Hive管理HDFS中存储的数据,并提供基于SQL的查询语言(运行时引擎翻译成MapRreduce作业)用以查询数据。
    (9)Chukwa:分布式数据收集和分析系统。Chukwa运行HDFS中存储的收集器,它使用MapRreduce来生成报告。
    (10)Hadoop Comment :支持适配其他Hadoop模块的通用应用程序。
    (11) YARN: 用于作业调度和集群资源管理。

在这里插入图片描述

  1. 存储
  • 文件线性切割成block块(偏移量offset,即它在原文件中所处的位置,也就是索引,单位是byte)。
  • block块存储在集群的不同节点中,且各个block块的大小一致。
  • block块可以设置副本数,副本不能超过节点的个数,以此来保持数据的可靠性。
  • 文件上传可以设置block块的大小和副本数;
  • 已上传的文件block块可以调整副本数,但不能改变其大小(因为如果一旦对block块进行修改,势必会造成大小变化,与之对应偏移量也会发生变化,导致CPU资源消耗在了偏移量的计算上)。
  • 只支持一次写入多次读取,且同一时刻只能有一个写入操作者。
  • 通过append追加数据(因为追加时只会增加block块的数量,不会对其原有的偏移量造成影响)。
  1. 架构
    在这里插入图片描述
  • 1.x版本系统默认block块大小为64MB。
  • 2.x版本系统默认block块大小为128MB。
    (1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
    (2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
    (3)Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
发布了7 篇原创文章 · 获赞 4 · 访问量 601

猜你喜欢

转载自blog.csdn.net/qq_40946465/article/details/104974887
今日推荐