字节(B):存储的基本单位,1KB=1024B
千字节(KB):1KB=1024B
兆字节(MB):1MB=1024KB
吉字节(GB):1GB=1024MB
太字节(TB):1TB=1024GB
拍字节(PB):1PB=1024TB
艾字节(EB):1EB=1024PB
泽字节(ZB):1ZB=1024EB
尧字节(YB):1YB=1024ZB
诺字节(NB):1NB=1024YB
度字节(DB):1DB=1024NB
1 PB = 1024 TB
1 EB = 1024 PB
1 ZB = 1024 EB
1 YB = 1024 ZB
1 NB = 1024 YB
1 DB = 1024 NB
大数据的定义:
1.volume:体积(大量化):存储量大,增量大(TB,PB,EB)
2.Vaniety种类多:来源多,格式多
格式多
结构化数据:有固定格式。关系型数据库(Mysql),excel,交易记录
半结构化数据:具有一定层次结构。JSON文件,XML文件,文件邮件
非结构化数据:无固定格式。偏向算法
自然语言处理NLP:文本文件,图片,音乐,二进制数据
计算机视觉:人脸识别,物品检测
语言识别:语言转文字
3.Velocity:快速化
4.Value :价值密度低
解决大数据问题的核心是大数据技术
2003年,Google公司发表论文The Google File System,介绍GFS分布文件系统,主要讲解海量数据的可靠存储方法
2004年,Google公司发表论文MapReduce:Simplified Data Processing on Large Clusters,介绍并行计算模式MapReduce,海量数据的高效计算方法。
2006年,Google发表国Bigtable:A districted Storage System for Structed Data,介绍Google的大表Bigtable的设计。Bigtable是Google公司的分布式数据存储系统,是用来处理海量数据的一种非关系型数据库。
Google的三驾马车:GFS,MapReduce,BigTable
GFSS思想:
数据节点:数据块
管理节点:数据元文件(文件名,文件块,文件块所在数据节点)
数据块保持:可靠性和可用性
1.2.1 Google思想一:GFS分布式文件系统
GFS的架构
a. Master节点管理所有的文件系统元数据
√名字空间
√ 访问控制信息
√ 文件和块的映射信息
√ 以及当前块的位置信息
b.GFS存储的文件都被分割成固定大小的块,每个块都会复制到多个块服务器上(可靠性)。默认使用3份。
c.Master还管理着系统范围内的活动,比如块服务器之间的数据迁移等。
d. Master与每个块服务器通讯(发送心跳包),发送指令,获取状态。
1.2.2 Google思想二:MapReduce
MapReduce采用“分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各今子节点共同完成,然后整合各个子节点的中间结果,得到最终的计算结果。
简而言之,MapReduce就是“分散任务,汇总结果”
Rowkey (主键):不能删,必须要
存在
分散任务,汇总结果
1.2.3 Google思想三:BigTable
Big Tablet架构如图
思想:
把所有的数据存入一张表
通过牺牲空间,来换取时间
违背关系型数据库范式的要求
问题:引起数据的冗余
优点:提高性能 面向列
Tablet Server存储多个Tablet
1.3.1 HDFS
HDFS:Hadoop Distributed File System,是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础。
它是对GFS论文的实现。
HDFS下面包含:
NameNode名称节点
SecondaryNameNode第二名称节点(默认在NameNode上)
DataNode
机架感知,决定数据块保存的位置
Hadoop特点:
(1)高可靠性
(2)高扩展性
(3)高效性
(4)高容错性
jps 查看集群所有进程
一、HDFS概述
hdfs产生背景:
随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。
hdfs定义:
HDFS (Hadoop Distributed File System) 是一个文件系统,用于存储文件,通过目标树来定位文件;其次,他是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。HDFS的使用场景:适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用。
1.1 HDFS优缺点
优点
1.高容错性:数据自动保存多个副本。它可以通过增加副本的形式,提高容错性。某一个副本丢失后,它可以自动恢复。
2.适合处理大数据
1.数据规模:能够处理数据规模达到GB, TB, PB级别的数据,EB
2.文件规模:能够处理百万规模以上的文件数量,数量相当之大。
3.可构建在廉价机器上,通过多副本机制,提高可靠性。
缺点
1不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。
2无法高效的对大量小文件进行存储。
(1)存储大量小文件的话,它会占用NameNode大量的内存来存储文件目录和块信息。这样是不可取的,因为NameNode的内存总是有限的,(每个文件(不管是1kb还是1GB)的元数据都会占用大约150B,为了提高速度,NameNode存储在内存中,一般内存是128G,因此要避免大量小文件的存储)。
(2) 小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。
3 不支持并发写入、文件随机修改。
(1) 一个文件只能有一个写,不允许多个线程同时写;
(2) 仅支持数据append (追加),不支持文件的随机修改。
NameNode(nn):就是Master,他是一个主管,管理者。
管理HDFS的名称空间
配置副本策略
管理数据块(Block)映射信息处理客户端读写请求。
DataNode 就是slave.NameNode下达命令,DataNode执行实际操作。
存储实际的数据块
执行数据块的读/写操作
Cilent:客户端
文件切分。文件上传hdfs的时候,Clien将文件切分成一个个的Block,然后进行上传。 与NameNode交互,获取文件的位置信息。
与DataNode交互,读取或者写入数据
Client提供一些命令来管理hdfs,比如NameNode格式化 hdfs namenode -format Client可以通过一些命令来访问HDFS,比如HDFS增删改查操作。
Secondary NameNode:并非NameNode的热备。当NameNode挂掉的时候,他并不能马上替换NameNode并提供服务。
辅助NameNode, 分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode;
在紧急情况下,可辅助恢复NameNode
1.3 hdfs文件块大小
HDFS中的文件在物理上是分块储存 (Block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小Hadoop2.X/3.X版本中是128M,1.X版本是64M。
Chgrp:changegroup修改文件/目录的所属组
Hadoop fs -chgrp developers /youxi/wangzheerongyao/libai.txt
chmod用户类别,操作符,权限,文件/目录
1.用户类别:u所有者user;g所属组别group;o其他用户others;a所有用户all,默认
2.操作符:+增加权限;-移除权限;=直接设置权限;-无权限=0
3.权限;r:读;w:写;x:执行
4.Chmod u+x libai.txt