hadoop学习(一)

一.hadoop概述

1.1hadoop优势

1)高可靠性:Hadoop底层维护多个数据副本,即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。

2)高扩展性:在集群间分配任务数据,可方便扩展数以千计的节点

3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度

4)高容错性:能够自动将失败的任务重新分配

1.2Hadoop的组成

1.3.HDFS

定义:一个文件系统,用于存储文件,通过目录来定位我呢见;分布式,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

使用场景:适合一次写入,多次读出的场景,一个文件经过创建、写入和关闭之后就不需要改变。

优点:

1)高容错性

数据自动保存多个副本,通过增加副本的形式,提高容错率。

一个副本丢失后,可以自动恢复

2)适合处理大数据

能够处理数据规模达到GB、TB、甚至PB级别的数据(数据规模方面

能够处理百万规模以上的文件数量(文件规模方面)

3)科构建在廉价机器上,通过多副本机制,提高可靠性

缺点

1)不适合低延时数据访问

2)无法高效地对大量小文件进行存储

存储大量小文件的话,会占用NameNode大量地内存来存储文件目录和块信息。

小文件存储地寻址时间会超过读取时间,它违反了HDFS的设计目标。

3)不支持并发写入、文件随机修改

框架概述

1)NameNode(nn):存储文件的元数据,例如文件名,文件目录结构,文件属性,以及每个文件的块列表和块所在的DataNode等。

   a)管理HDFS的名称空间

   b)配置副本策略

   c)管理数据块映射信息

   d)处理客户端读写要求

2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。

   a)存储实际的数据块

   b)执行数据块的读/写操作

DateNode和NameNode的联系:NameNode下达命令,DataNode执行实际的操作

3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。 

HDFS文件块大小

HDFS中的文件在物理上是分块储存,块的大小可以通过配置参数来规定

注:1)寻址时间为传输时间的1%时,为最佳状态

2)1秒能传输多少内容取决于磁盘的传输速率(目前磁盘的传输速率普遍为100MB/s)

3)块的大小不能设置太小(会增加寻址时间),也不能设置太大(从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间).。

Xshell命令:

上传命令

1)-moveFromLocal:从本地剪切粘贴到HDFS

[atguigu@hadoop01 hadoop]$ hadoop fs -mkdir /apt
[atguigu@hadoop01 hadoop]$ vim shuguo.txt
[atguigu@hadoop01 hadoop]$ hadoop fs -moveFromLocal ./shuguo.txt /apt

2)-copyFromLocal:从本地文件系统中拷贝文件到HDFS路径

[atguigu@hadoop01 hadoop]$ vim weiguo.txt
[atguigu@hadoop01 hadoop]$ hadoop fs -copyFromLocal weiguo.txt /apt

3)-put:等同于copyFromLocal,生产环境更习惯用put

[atguigu@hadoop01 hadoop]$ vim wuguo.txt
[atguigu@hadoop01 hadoop]$ hadoop fs -put ./wuguo.txt /apt

 4)-appendToFile:追加一个文件到已经存在的文件末尾

[atguigu@hadoop01 hadoop]$ vim liubei.txt
[atguigu@hadoop01 hadoop]$ hadoop fs -appendToFile liubei.txt /apt/shuguo.txt

   追加liubei文件的内容到shuguo内容的结尾

下载命令

1)-copyToLocal:从HDFS拷贝到本地

[atguigu@hadoop01 hadoop]$ hadoop fs -copyToLocal /apt/shuguo.txt ./

 拷贝后本地存在shuguo文件

2)-get:等同于copyToLocal,生产环境更习惯用get

  该指令同时将shuguo改名为shuguo2

[atguigu@hadoop01 hadoop]$ hadoop fs -get /apt/shuguo.txt ./shuguo2.txt

HDFS直接操作

1)-ls: 显示目录信息

[atguigu@hadoop01 hadoop]$ hadoop fs -ls /apt

2)-cat:显示文件内容

[atguigu@hadoop01 hadoop]$ hadoop fs -cat /apt/weiguo.txt

3)-chgrp、-chmod、-chown:Linux文件系统中的用法一样,修改文件所属权限

4)-mkdir:创建路径

[atguigu@hadoop01 hadoop]$ hadoop fs -mkdir /c

5)-cp:从HDFS的一个路径拷贝到HDFS的另一个路径

[atguigu@hadoop01 hadoop]$ hadoop fs -cp /apt/weiguo.txt /c

6)-mv:在HDFS目录中移动文件

[atguigu@hadoop01 hadoop]$ hadoop fs -mv /apt/wuguo.txt /c

7)-tail:显示一个文件的末尾1kb的数据

[atguigu@hadoop01 hadoop]$ hadoop fs -tail /c/wuguo.txt

显示出c中wuguo文件末尾1kb的数据

8)-rm:删除文件或文件夹

[atguigu@hadoop01 hadoop]$ hadoop fs -rm /apt/shuguo.txt
Deleted /apt/shuguo.txt

9)-rm -r:递归删除目录及目录里面内容

10)-du统计文件夹的大小信息

[atguigu@hadoop01 hadoop]$ hadoop fs -du  -h /c

11)-setrep:设置HDFS中文件的副本数量

[atguigu@hadoop01 hadoop]$ hadoop fs -setrep 7 /c/weiguo.txt

1.4.YARN架构概述

YARN:另一种资源协调者,是Hadoop的资源管理器

1)ResourceManager(RM):管理整个集群资源(内存、CPU等);

2)NodeManager(NM):管理单个节点服务器资源

3)ApplicationMaster(AM):管理单个任务的运行

4)Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等.(一个Container容器默认内存是1-8G)

特殊说明

1)可以有多个客服端

2)集群上可以运行多个ApplicationMaster

3)每个NodeManager上可以有多个Container

1.5.MapReduce架构概述

MapReduce将计算过程分为两个阶段:Map和Reduce

1)Map阶段并行处理输入数据

2)Reduce阶段对Map结果进行汇总

二.大数据技术生态体系

三.推荐系统框架图

四.Hadoop运行模式

1)本地模式:单机运行,只是用来演示官方案例(生产环境不用,偶尔用于测试) 

2)伪分布式模式:单机运行,具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境(生产环境不用)

3)完全分布式模式:多台服务器组成分布式环境(生产环境使用)

四、HDFS写数据流程

(1)客户端通过DistributedFileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。

(2)挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。

(3)DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。

(4)客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。

 五.NameNode工作机制

1)NameNode启动

2)Secondary NameNode工作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值