大数据分析---hadoop

大数据分析——Hadoop

大数据分析


一、hadoop的简介
hadoop是整个大数据的根基,没有Hadoop就没有其它任何大数据相关的内容和应用。

1.介绍

为了搭建 可靠的 可扩展的  分布式的计算机框架所做的开源的项目框架
这个软件是一个允许分布式的框架,使用简单的编程模型处理跨计算机框架的大数据集。
我们的网站日志文件就有2TB/天,那么我一台计算机已经不可能完成任务。在我们机房搭建计算机集群,所有的数据是分别存放在不同的计算机硬件上的。
它被设计程从单个服务器可以扩展到数千台服务器(Java理论上来说是可以无穷多),每台服务器提供本地的计算和存储而不是依赖硬件来提高可用性。

2. Hadoop的组件 Modules

    Hadoop基础框架:用来支持其它的Hadoop组件。
    HDFS :Hadoop的分布式的文件系统。最重要的组件之一。提供高吞吐量的数据访问。
    Hadoop YARN: 是负责任务调度和资源管理的组件
    MapReduce编程模型:一个基于YARN的大数据计算框架。

3.hadoop的组件和功能

    Hadoop 1.x
		Hadoop这个版本是从0.x开始的,这个里面有比较经典的1.5.x版本。
		这个版本中
		hdfs      负责存储数据
		mapreduce 负责进行数据的运算又要负责计算和数据处理,还要负责本身的任务调度和集群管理。
	Hadoop 2.x
		现在所有企业中比较常用的通用的版本。
		hdfs      负责存储数据
		YARN       负责任务调度和资源管理
		mapreduce 负责进行数据的运算
	Hadoop 3.x
		多了组件和功能

4.大数据的分布式环境介绍

官方提供了三种搭建环境:
		单机:
			就式一台机器,所有的任务在一个jvm中实现,而且没有老大和小弟之分。适合学习。
		伪分布:
			就是老大和小弟在同一台计算机上。分别使用不同的jvm来实现。也适合学习用。伪分布的原理和完全分布式一致,只是在一台计算机上而已。我们学习用这个模式进行。
		完全分布:
			企业中真正的搭建的环境。

5. HDFS Hadoop分布式文件系统(只能解决文件的分布式存储功能)

5.1 与传统文件系统相比的区别

    分布式,解决数据太大传统文件系统装不下的问题。
    分片机制。
    	将一个文件自动按照大小来进行切割,默认的大小是128MB一个文件。
    	1GB会拆分成8份,block  1000/128=7.8..至少需要8个block
    副本机制,对每个block进行备份(容灾机制)。默认副本数是3个。
    	假设一个文件被分成2个block,这个文件又开启了副本机制,在3台计算机中是如何备份的?
    	计算机1    block1-1    block2-3
    	计算机2    block1-2    block2-2
    	计算机3    block2-1    block1-3
    企业中一般不会使用3个副本。2个即可。对于一般业务,比如临时存储的数据,一般是不开启副本机制的。
    
5.2 hdfs上面这些是如何完成的呢?工作原理

	介绍2个角色:
		NameNode
			整个集群的老大,只有1个。负责管理,接受用户请求,真正负责读写数据的不是它。
		DataNode
			这弓集群中的小弟,可以有很多个。,真正去完成数据的读写的工作。
	NN负责整个集群的元数据(NN如何知道我集群中有多少小弟?如何知道小弟分别在哪台计算机上?我们要读取的问题对应应该找哪个小弟?),
	当用户向nn发送读写请求的适合
	NN返回文件的地址(具体就是文件在那台机器上,block在那台计算机上)
	客户端,找DN,DN返回这个文件,写的情况下,会在完成写入后,将文件信息,返回给NN,NN将信息添加进元数据。
    nn三大功能:管理元数据,管理从阶段(DN),处理客户端请求。

6.YARN 数据的处理计算框架

用来处理用户提交的数据处理请求
任务调度和资源管理
	RescourceManager   老大,接受用户请求,负责资源调度
	NodeManager       小弟,真正去实现计算的实现者
	 (hive底层就是mr的实现,spark就是从借鉴过来的)
	-RM接受用户请求
	-RM将任务进行分割,以便见先并行运算。
	-RM从小弟NM中随机选取一个作为这个任务的管理者(项目经理)
	-小弟NM,向RM申请资源。
	-RM向将资源打包给小弟。
	-小弟们(NMs)进行数据的处理,处理完成后返回给这个工程的项目经理(最开始负责的NM)
	-NM将结果进行汇总并返回给RM
	-RM将结果返回给客户端。

7. MapReduce编程模型

分而治之
将一个大任务,切割成多个小任务,进行并行计算,最后合并为一个结果后返回

-> input     
	输入阶段,就是从hdfs上读取文件
-> map       
	将一个大任务切割成多个小任务,然后将每个任务分给多台计算机并行完成
-> shuffle    
	排序,统计,分组,分区
-> reduce     
	将所有的map结果进行合并
-> output     
	将结果写入hdfs中

image.png-61.1kB

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值