hadoop 实战练习_꧁ Hadoop 实战训练(一)꧂

Hadoop 简介

Hadoop是Apache旗下的一款开源分布式计算平台,它通过以分布式文件系统HDFS和MapReduce为核心,为用户提供了系统底层细节透明的分布式基础架构。

Hadoop 结构

HDFS:它是一个分布式文件系统,以高容错性为设计原则,所以可以设计部署在低廉的硬件上。

HDFS设计目标:

1.检测和快速恢复硬件故障。

2.流式的数据访问。

3.简化一致性模型。

4.通信协议。

MapReduce:它是一种编程模型,用于大规模数据集的并行运算。

Core/Common:为其他子项目提供支持,主要包括FileSystem、RPC和串行化库。

Avro:用于数据序列化系统。

Avro的支持:

1.提供丰富的数据结构类型。

2.快速可压缩的二进制数据格式。

3.存储持久性数据的文件集。

4.远程调用RPC的功能和简单的动态语言集成功能。

Chukwa:是开源的数据收集系统,用于监控和分析大型分布式系统的数据。

Hive:建立在Hadoop基础上的数据仓库,提供了一些用于数据整理、特殊查询和分析存储在Hadoop文件中的数据集的工具。

HBase:是一个分布式的、面向列的开源数据库。

Pig:是一个对大型数据集进行分析和评估的平台。

Hadoop核心之HDFS

HDFS采用了主从结构模型(Master/Slave),一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据,由NameNode统一调度。

文件写入

1.Client向NameNode发起文件写入请求。

2.NameNode根据文件大小和文件块的配置情况,返回给Client它所管理的DataNode的信息。

3.Client将文件划分为多个Block,根据DataNode的地址信息,按顺序将其写入每一个DataNode中。

文件读取

1.Client向NameNode发起读取文件的请求。

2.NameNode返回文件存储的DataNode信息。

3.Client读取文件信息。

文件块复制

1.NameNode发现部分文件的Block不符合最小复制数这一要求或部分DataNode失效。

2.通知DataNode相互复制Block。

3.DataNode开始直接相互复制Block。

Hadoop核心之MapReduce

MapReduce是一种并行编程模式,由一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控他们的执行情况,并且重新执行之前失败的任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。

MapReduce数据流图.jepg

基本原理

1. 数据分布存储 (HDFS)

2. 分布式并行计算 (JobTracker & TaskTracker)

3. 本地计算

4. 任务粒度 (默认 block 64MB)

5. 数据分割 (Partition)

6. 数据合并 (Combine)

7. Reduce

8. 任务管道

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值