forked from guoxuce/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhadoop
56 lines (39 loc) · 2.91 KB
/
hadoop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
hadoop
开源分布式计算平台框架,基于Apache协议,java开发
主要:存储数据(HDFS),计算数据(mapreduce)(数据分块,任务分解和结果汇总)
common为其他组价提供常用工具支持
yarn 作业调度和集群管理的框架
Ambari 创建管理监视Hadoop集群
Avro 基于二进制数据传输高性能的中间件
Cassandra 可扩展的多主数据库,不存在单点故障
Chukwa 数据收集系统,用于监控和分析大型分布式系统的数据
HBase 分布式面向列的数据库
Hive 建立在Hadoop基础之上的数据仓库,提供了一些用于数据整理、特殊查询和分析在Hadoop文件中数据集工具
Mahout 可扩展的机器学习和数据挖掘库
Pig 一种高级语言和并行计算可执行框架,是一个对大型数据集分析和评估的平台
Spark 一个快速和通用计算的Hadoop数据引擎,和mapreduce类似,但比mapreduce快。
Tez 将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能。
ZooKeeper 用来配置和支持分布式调度。一个重要功能就是对所有节点进行配置的同步。
HDFS
要解决的问题
存储超大文件,比如TB级别的
防止文件丢失
特点:
可以存储超大文件
只允许对一个已经打开的文件顺序写入,还可以在现有文件的末尾追加,
//如果要对一个文件进行修改,只能删除后重写
可以使用廉价的硬件平台搭建,通过容错策略来保证数据的高可用,默认存储3份数据,任何一份丢失可以自动恢复
缺点:
数据访问延迟比较高,设计场景是用于大吞吐量数据,HDFS是单master,所有文件都要经过它,当请求数据量很大时,延迟就增加了
文件数受限,和namenode有关系
不支持多用户写入,也不支持文件任意修改
HDFS也是按照Master和Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色。
NameNode:是Master节点,是大领导。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;
SecondaryNameNode:是一个小弟,分担大哥namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode。
DataNode:Slave节点,奴隶,干活的。负责存储client发来的数据块block;执行数据块的读写操作。
热备份:b是a的热备份,如果a坏掉。那么b马上运行代替a的工作。
冷备份:b是a的冷备份,如果a坏掉。那么b不能马上代替a工作。但是b上存储a的一些信息,减少a坏掉之后的损失。
fsimage:元数据镜像文件(文件系统的目录树。)
edits:元数据的操作日志(针对文件系统做的修改操作记录)
namenode内存中存储的是=fsimage+edits。
SecondaryNameNode负责定时默认1小时,从namenode上,获取fsimage和edits来进行合并,然后再发送给namenode。减少namenode的工作量。