以下内容是我的学习笔记,网络课程的笔记。出处
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。
HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
介绍hadoop就是需要先了解hadoop的使用场景,先熟悉一下下面的概念:
简单说就是 数据处理
在互联网技术发展到现今阶段,大量日常、工作等事务产生的数据都已经信息化,
人类产生的数据量相比以前有了爆炸式的增长,
以前的传统的数据处理技术已经无法胜任,需求催生技术,一套用来处理海量数据的软件工具应运而生,这就是大数据!
海量数据存储:分布式 海量数据运算:分布式
这些核心技术的实现是不需要用户从零开始造轮子的 存储和运算,都已经有大量的成熟的框架来用
(要解决的核心问题就是帮用户将处理逻辑在很多机器上并行)
(解放大数据工程师的一些繁琐工作):
换个角度说, 大数据是:
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
* 海量数据需要及时分析和处理
* 海量数据需要深入分析和挖掘
* 数据需要长期保存
* 海量数据存储的问题:
* 磁盘IO称为一种瓶颈,而非CPU资源
* 网络带宽是一种稀缺资源
* 硬件故障成为影响稳定的一大因素
hadoop中有3个核心组件:
hdfs:分布式文件系统 hdfs有着文件系统共同的特征: 有目录结构,顶层目录是: / 系统中存放的就是文件 系统可以提供对文件的:创建、删除、修改、查看、移动等功能
客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:data node)<准确来说:切块的行为是由客户端决定的> 一旦文件被切块存储,那么,hdfs中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:name node) 为了保证数据的安全性,hdfs可以将每一个文件块在集群中存放多个副本(到底存几个副本,是由当时存入该文件的客户端指定的) 综述:一个hdfs系统,由一台运行了namenode的服务器,和N台运行了datanode的服务器组成!
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。