大数据技术之Hadoop入门

本文详细介绍了大数据概念及特点,重点解析Hadoop框架及其发展历程,涵盖HDFS、MapReduce、Yarn等核心组件,并深入探讨HDFS架构与工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大数据技术之Hadoop入门

一、大数据概论

  1. 大数据概论
    • 大数据(big data):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。主要解决,海量数据的存储和海量数据的分析计算问题。
    • 自我认为:大数据就是在短时间内快速产生大量**多种多样有价值**的信息。
  2. 大数据的特点
    • 大量
    • 高速
    • 多样
    • 低价值密度
  3. 大数据能干啥
    • O2O
    • 零售
    • 旅游
    • 商品广告推荐
    • 保险
    • 金融、房产
    • 人工智能……

二、Hadoop框架或Hadoop生态圈

1. Hadoop是什么?
1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构
2)主要解决,海量数据的存储和海量数据的分析计算问题。
3)HADOOP通常是指一个更广泛的概念——HADOOP生态圈
2. Hadoop发展史

Hadoop官网:http://hadoop.apache.org/

1)Lucene–Doug Cutting开创的开源软件,用java书写代码,实现与Google类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎
2)2001年年底成为apache基金会的一个子项目
3)对于大数量的场景,Lucene面对与Google同样的困难
4)学习和模仿Google解决这些问题的办法 :微型版Nutch
5)可以说Google是hadoop的思想之源(Google在大数据方面的三篇论文)
GFS —>HDFS 分布式文件系统(分布式的存储)
MapReduce —>MR 分布式的处理
BigData —>Hbase
6)2003-2004年,Google公开了部分GFS和Mapreduce思想的细节,以此为基础Doug Cutting等人用了2年业余时间实现了DFS和Mapreduce机制,使Nutch性能飙升
7)2005 年Hadoop 作为 Lucene的子项目 Nutch的一部分正式引入Apache基金会。2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中
8)名字来源于Doug Cutting儿子的玩具大象
9)Hadoop就此诞生并迅速发展,标志这云计算时代来临
3. Hadoop的优势

1)高可靠性:因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。
2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
4)高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。
4、Hadoop的组成
1)HDFS:分布式文件系统
它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
HDFS的设计适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用。
2)MapReduce:基于Yarn的系统,并用于处理大型数据集。用于批处理(类似商场里的直梯)
Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架。
Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。
3)Yarn:作业调度和集群资源管理的框架。
4)HadoopCommon:支持其他Hadoop模块额常用实用程序。
其他还有
Spark:
Spark core
SparkSql---------可以使用sql处理
SparkStreaming------流式处理(类似手扶梯)
Mllib-------机器学习库 包含一些算法 可以直接拿来用
Graphx-------spark停止维护
对以上组成的支撑有:
1、Kafka
2、Zookeeper--------协调服务
3、Flume 类似kafka 比kafka的有点 kafka类似水管里的冰块,flume类似水管中的水流
4、Hive----------------大型数据库—利用sql语句
5、Flink
6、Storm
7、Hbase
……
在这里插入图片描述
Apache的其他Hadoop相关项目包括:
在这里插入图片描述
4.1 HDFS架构概述
在这里插入图片描述
这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。下面我会分别介绍这四个组成部分。HDFS是一个主从架构。
1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
NameNode:就是Master,它是一个主管、管理者。个人理解为一个公司的老板。
主要功能:

  • 1、掌控全局 管理DN(datanode)的信息 管理元数据
    个人理解
    源数据 就是数据。
    元数据 就是描述数据的数据。
  • 2、与DN之间进行相应的通信
  • 3、接受Client(个人理解为NameNode的秘书)的请求 读写

2)DataNode(dn):就是Slave。NameNode下达命令,DataNode执行实际的操作。在本地文件系统存储文件块数据,以及块数据的校验和。个人理解为公司的员工。
个人理解

  • 1、干活的-------存储数据。存储实际的数据块。
  • 2、汇报自己的情况
  • 3、接受Client(秘书)的一个安排。执行数据块的读/写操作。、
    3)Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
    4)Client:就是客户端。个人理解为公司的秘书。
    (1)文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行存储;
    (2)与NameNode交互,获取文件的位置信息;
    (3)与DataNode交互,读取或者写入数据;
    (4)Client提供一些命令来管理HDFS,比如启动或者关闭HDFS;
    (5)Client可以通过一些命令来访问HDFS;
    可以从读写操作请求来理解,存文件和读文件:构成hdfs的读写机制。
    写操作
    1、首先要有一个大文件
    2、然后Client会将大文件进行切块,以block块的形式将大文件进行相应的存储
    HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M。
    1.X 64M
    2.X 128M
    切块的公式:(大文件的大小)/(block的大小(128M))=block块数
    这里默认的块大小为128MB,可以根据自己的业务需求调整block的大小
    文件线性切割成块(Block):
  • 偏移量 offset(byte)
  • Block分散存储在集群节点上
  • 单一文件block大小一致,文件与文件可以不一致
    3、向NN(NameNode)汇报 ,汇报的内容有如下:
  • 1)块数
  • 2)整个大文件的大小
  • 3)文件的权限
  • 4)文件的属主
  • 5)文件的上传时间
    以下操作会循环操作
    For(Block block:blocks){
    • 4、client切下一块128M
    • 5、Client会向NN去申请资源-----------资源为 DN的信息
    • 6、NN会返回一批负载不高的DN给client
    • 7、Client会向DN里面发送block并且做好备份
    • 8、DN存放block块之后会向NN汇报情况
      }
      读请求:
  • 1、NN会向client发送一个请求,client接收到请求之后,会向NN去申请节点信息(block id)
  • 2、NN会向client发送一些节点信息
  • 3、Client获取到节点信息之后去DN上拿取数据--------拿数据的原则为 就近原则
    在这里插入图片描述
    Pipeline管道
    1、NN再返回给client一些DN的信息之后
    2、Client会和这些DN形成一个管道,并且将block切割成一个个ackPackage(64k)
    3、Dn会从管道中拿取相应的数据进行存储
    4、当存储完成之后,DN会向NN进行汇报
    在这里插入图片描述
    备份机制:
    备份:为了解决安全问题
    1、
    集群内提交 在提交的节点上放置block
    集群外提交 选择一个负载不高的节点进行存放
    2、放置在与第一个备份不同机架的任意节点
    3、放置在第二个机架不同节点上
    在这里插入图片描述

由于时间问题,今天先写到这里,后续文章请看下一篇。

Hadoop是一个开源的大数据处理框架,致力于解决大规模数据存储处理问题。它采用了分布式计算的思想,能够在集群中高效地存储处理大量的数据Hadoop的核心模块包括Hadoop Common、Hadoop Distributed File System(HDFSHadoop MapReduce。Hadoop Common提供了Hadoop的基本功能工具,比如文件系统网络通信等;HDFSHadoop的分布式文件系统,能够将大量数据分布式地存储在集群中的多个节点上;MapReduce是Hadoop的计算框架,通过将计算任务分解成多个小任务,并在集群中并行执行,加快了数据处理的速度。 Hadoop的使用有一定的技术门槛。首先,需要配置一个Hadoop集群,包括多台服务器,每台服务器都安装Hadoop软件;然后,需要了解Hadoop的基本概念组件,比如NameNode、DataNodeJobTracker等;最后,需要掌握Hadoop的编程接口,比如Hadoop StreamingHadoop API等,以便进行数据处理分析。 Hadoop具有许多优点。首先,它具备高容错性,即使集群中的某些节点出现故障,仍然能够保证数据的安全性完整性;其次,Hadoop具有高可用性,能够自动将计算任务重新分配到其他健康的节点上,从而保证系统的连续运行;此外,Hadoop的可扩展性也非常好,可以根据数据规模的增长动态地扩展集群的规模。 总之,Hadoop是当前大数据处理的重要技术之一,通过分布式计算的思想优秀的数据处理能力,能够帮助企业更有效地处理分析大量的数据,并从中获取有价值的信息洞察。对于初学者而言,掌握Hadoop的基本概念使用方法,对于后续学习应用大数据技术是非常有帮助的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值