大数据复习笔记(一)

第一章:

大数据技术特点;

五个主要技术特点:5V

Volume(大体量):即可从数百TB到数十数百PB、甚至EB规模。

Variety(多样性):即大数据包括各种格式和形态的数据。

Velocity(时效性):即很多大数据需要在一定的时间限度下得到及时处理。

Veracity(准确性):即处理的结果要保证一定的准确性。

Value(大价值):即大数据包含很多深度的价值,大数据分析挖掘和利用带来巨大的商业价值。

 

大数据生态系统:各个生态系统的功能,组件+功能;

MapReduce并行计算框架、分布式文件系统HDFS、分布式数据库管理系统HBase、公共服务模块Common、数据序列化系统Avro、分布式协调服务框架Zookeeper、分布式数据仓库处理工具Hive、数据流处理工具Pig、键值对数据库系统Cassandra、日志数据处理系统Chukwa、科学计算基础工具库Hama、数据分析挖掘工具库Mahout、关系数据交换工具Sqoop、日志数据收集工具Flume


启动/关闭Hadoop、HBase时进程顺序:

Namenode - Datanode - SecondaryNamenode - ResourceManage - NodeManage

MapReduce简介(P25-36),并行计算主要技术问题;MapReduce由来的特征和架构

 

第二章:

启动/关闭Hadoop、HBase时进程顺序;可查看实验


实验一

启动:cd ~/hadoop          sbin/start-all.sh

关闭hadoop守护进程:bin/stop-all.sh

格式化hadfs文件系统

Bin/hadoop namenode –format

启动hadoop环境:bin/start-all.sh


MapReduce的主要技术特征;从“外”横向扩展,而非向“上”纵向扩展;实效被认为是常态;把处理向数据迁移;顺序处理数据、避免随机访问数据;为应用开发者隐藏系统层细节;平滑无缝的可扩展性。

 


并行计算主要技术问题 P10

1.多处理器/多节点网络互连技术。

2.存储访问体系结构

3.分布式数据与文件管理

4.并行计算的任务划分和算法设计

5.并行计算设计模型和语言

6.并行计算软件框架设计和实施

7.数据访问和通信控制

8.可靠性与容错性技术

9.并行计算性能分析与评估

 

P32

 

第三章:

数据块大小:文件中每个数据块默认在hadoop1.0中是64MB,在hadoop2.0中是128MB。


HDFS架构图;

大数据复习笔记(一)_第1张图片


P58 

大数据复习笔记(一)_第2张图片

一个HDFS文件系统包括一个主控节点namenode和DataNode从节点,NameNode是一个主服务器,用来管理整个文件系统的命名空间和元数据,以及处理来自外界的文件访问请求。

 

HDFS如何存储数据:
1.客户端请求上传文件
2.namenode检查路径是否存在 
3.namenode响应可以上传 
4.客户端请求上传第一个block
5.响应可以上传到datanode服务器
6.客户端请求上传block
7.返回一个socketOutputStream
8.从本地将数据写入输出流


记下:

NameNode保存了文件系统三种数据:1,命名空间,及整个分布式文件系统的目录结构,2,数据块与文件名的映射。3,每个数据库副本的位置信息,每一个数据块默认有3个副本。

每个DataNode实际上存储在每个节点的本地linux文件系统中。

在NameNode上可以执行文件操作,比如打开、关闭、重命名等;并且NameNode也负责向DataNode分配数据块并建立数据块和DataNode对应的关系。DataNode负责处理文件系统用户具体的读写请求,同时也可以处理NameNode对数据块的创建、删除副本的指令。


(3)block默认几个副本;3个副本


(4)节点垮掉系统会怎样:secondNameNode启动,备胎启动

 

(5)NameNode作用P58;

Namenode是一个主服务器,用来管理整个文件系统的命名空间和元数据,及处理来自外界的文件访问请求。


(6)P61安全模式,离开安全模式命令;

直接在bash输入指令脱离安全模式(推荐)在安全模式下输入指令:

 hadoop dfsadmin -safemode leave,即可退出安全模式。


(7)P62心跳包有什么用;

由namenode定时发送给datanode,收到则回复。

为了保证NameNode和各个DataNode的联系,位于整个hdfs核心的NameNode,通过周期性活动检查DataNode的活性。心跳包是定时发送的,NameNode要把执行的命令也通过心跳包发送给DataNode,而DataNode受到心跳包,一方面回复NameNode,另外一方面开始了与用户或者应用数据传输。


(8)P67数据写入过程;

大数据复习笔记(一)_第3张图片


客户端写入数据过程,其中136由客户端发起

客户端首先要获取FileStream的一个实例,这里就是HDFS的实例,

①②客户端调用FileSystem实例的create方法,创建文件。NameNode通过检查,比如文件是否存在,客户端是否拥有创建权限等;通过检查之后,在NameNode添加文件信息。注意,因为此时文件没有数据,所以NameNode上也没有文件数据块信息。创建结束后,HDFS会返回一个输出流DFSDataOutputStream给客户端。

客户端调用输出流DFSDataOutputStreamwrite方法向HDFS中对应的文件写入数据。数据首先会被分包,这些分包会写入一个输入流内部队列Data队列中,接收完整数据分包,输出流DFSDataOutputStream会向nameNode申请保存文件和副本数据块的若干个DataNode,这若个个DataNode会形成一个数据传输管道。

DFSDataOutputStream会(根据网络拓扑结构排序)将数据传输给距离上最短的DataNode,这个DataNode接收到数据包之后会传递给下一个DataNode,数据在各DataNode之间通过管道流动,而不是全部由输出流分发,这样可以减少传输开销。

因为DataNode位于不同机器上,数据需要通过网络发送,所以,为了保证所有的DataNode的数据都是准确的,接收到数据的DataNode要向发送者发送确认包(ACKPacket)。对于某个数据块,只有当DFSDataOutputStream收到了所有DataNode的正确ACK,才能确认传输结束。DFSDataOutputStream内部专门维护了一个等待ACK队列,这一队列保存已经进入管道传输数据、但是并未被完全确认的数据包。

   不断-直到数据全部写完,客户端调用close关闭文件。

客户端调用close方法,DFSDataOutputStream继续等待直到所有数据写入完毕并被确认,调用complete方法通知NameNode文件写入完成。

NameNode接收到complete消息之后,等待相应数量的副本写入完毕后,告知客户端即可。

3、在传输过程中,如果发现某个DataNode失效(未联通,ACK超时),那么HDFS执行如下操作:

关闭数据传输的管道

将等待ACK队列中的数据放到Data队列的头部

更新正常DataNode中所有数据块的版本;当失效的DataNode重启之后,之前的数据块会因为版本不对而被清除。

在传输管道中删除失效DataNode,重新建立管道并发送数据包。

 

HDFS文件系统操作命令;P68

启动hdfs:进入NameNode对应节点的hadoop安装目录下,执行启动脚本,bin/start-dfs.sh

关闭脚本:stop-dfs.sh

文件操作命令:

Bin/hadoop dfs –caturi(文件路径)

-chgrp查看所属用户组

-chmod 查看权限

-count 查看目录数

-cp 复制文件  -ls查看目录  -mv 移动文件 -put 将单个源文件拷贝到目标文件系统中

-rm 删除文件  -test 判断文件信息  -text 将文件或者某些格式的非文本文件通过文本格式输出。

 

第四章:

1)P96图4-4,完整的mapreduce并行编程模型大数据复习笔记(一)_第4张图片


Hadoop系统的基本组成框架,P97图4-5,

大数据复习笔记(一)_第5张图片

Combiner、Partitioner工作原理;

Combiner,它在Mapper之后Reducer之前运行。Combiner是可选的,如果这个过程适合于你的作业,Combiner实例会在每一个运行map任务的节点上运行。Combiner会接收特定节点上的Mapper实例的输出作为输入,接着Combiner的输出会被发送到Reducer那里,而不是发送Mapper的输出。Combiner是一个“迷你reduce”过程,它只处理单台机器生成的数据(特别重要,作者在做一个矩阵乘法的时候,没有领会到这点,把它当成一个完全的reduce的输入数据来处理,结果出错。)。

partition是分割map每个节点的结果,按照key分别映射给不同的reduce,也是可以自定义的。这里其实可以理解归类。

我们对于错综复杂的数据归类。比如在动物园里有牛羊鸡鸭鹅,他们都是混在一起的,但是到了晚上他们就各自牛回牛棚,羊回羊圈,鸡回鸡窝。partition的作用就是把这些数据归类。只不过在写程序的时候,mapreduce使用哈希HashPartitioner帮我们归类了。这个我们也可以自定义。


P103作用调度器;

现在使用的调度器:先进先出EIEO调度器,计算能力调度器,公平调度器


P106图4-10;hadoop mapreduce执行框架的组件和执行流程

大数据复习笔记(一)_第6张图片

关键字具体介绍。


第五章:

HBase功能特点:

(1)列式存储

(2)表数据是系数的多维映射表,表中的数据通过一个行关键字、一个列关键字以及一个时间戳进行索引和查询定位,通过实践戳允许数据有多个版本。

(3)读写的严格一致性

(4)提供很高的数据读写速度,为写数据进行了特别的优化。

(5)良好的线性课扩展性。

(6)提供海量数据存储能力,可提供高大几百亿条数据记录存储能力。

(7)数据会自动分片,也可以由用户来控制分片。

(8)对于服务器故障,hbase有自动失效检测和恢复能力,保证数据不丢失。

 

HBase表设计

表行关键字;habse是一个分布式多维表,表中的数据通过一个行关键字row key和一个列族和列名以及一个时间戳进行索引和查询定位。

 

WAL优缺点;

WAL优点:以记录所有数据更新操作,保证数据的完整性

 缺点:写入性能降低 


Zookeeper作用;

(1)保证任何时候,集群只有一个和base master;

(2)实时监控region server的状态,将region server的上线和下线信息实时通知给hbase master.

(3)存储hbase目录表的寻址入口

(4)存储hbase的schema,包括有哪些表,每个表有哪些列族等各种元信息。

 

Hfile:存储的最小单位

Region:是分布式存储和负载均衡的最小单位。

 

有关RegionServer、Region、memStore等关系,可查看本节的ppt的图;


第六章

(1)表与外部表区别;

普通表:删除表时,该表的元数据及数据将被删除。

外部表:删除外部表时,仅删除其元数据,保存在外部HDFS文件目录中的数据不会被删除。

(2)分区与桶的适用场景;

分区:当只需要遍历某一个小范围内的数据或者一定条件下的数据时,它可以有效减小扫描数据的量。

分桶:分布式数据仓库hive的数据表时,为取样更高效,一般可以对表中的连续字段进行分桶操作。

(3)HQL语句;

1.创建表(两列,整型freq,字符型word,使用文本表达,数据域用分隔符’\t’)

create tablebiaoming (freq int,word string)row format delimited fields terminated by ‘\t’stored as textfile;

2.修改表

添加列

alter table 表名 add columns (new_col int);

改表名

alter table 原表名 rename to 新表名;

3.表分区操作

将/input/file1加载到logs表的分区2012-11-20的自分区China内

load data local inpath ‘input/file1’ into table logs partition (date’2012-11-20’,country=’China’);

4.删除表

drop table 表名;

5.创建和删除视图语句

创建:

create view [if not exists] 视图名 as

selete * from 表名1 join 表名2 on (表1.属性=表2.属性);

删除

drop view if exists 视图名;

6.查看数据表的描述

describe 表名;

7.加载数据语句

load data local inpath ‘input/file1’ [overwrite] into table logs

8.表插入数据

insert overwrite table biaoming1 select a.* from biaoming2 a;

9.查找总数

select count(*) from biaoming;

10.独立 UID 总数

select count(distinct(uid)) from sogou.sogou_ext_20111230;

11.查询搜索过”仙剑奇侠传“的 uid,并且次数大于 3

selectuid,count(*) as cnt from sogou.sogou_ext_20111230 where keyword='仙剑奇侠传' group by uid having cnt >3;

 

 

 

 

 

 

 


你可能感兴趣的:(hadoop)