在互联网技术发展到现今阶段,大量日常、工作等事务产生的数据都已经信息化,人类产生的数据量相比以前有了爆炸式的增长,以前的传统的数据处理技术已经无法胜任,需求催生技术,一套用来处理海量数据的软件工具应运而生,这就是大数据!
换个角度说,大数据是:
1、有海量的数据
2、有对海量数据进行挖掘的需求
有对海量数据进行挖掘的软件工具(hadoop、spark、storm、flink、tez、impala......)
什么是hadoop
1hadoop有三个核心组件:
1.分布式文件系统:HDFS--实现将文件分布式存储在很多的服务器上
2.分布式运算编程框架:MAPREDUCE--实现在很多机器上分布式并行运算
3.分布式资源调度平台:YARN--帮用户调度大量的mapreduce程序,并合理分配运算资源
HDFS整体运行机制
hdfs:分布式文件系统
hdfs有着文件系统共同的特征
1.有目录结构,顶层目录是: /
2.系统中存放的就是文件
3.系统可以提供对文件的:创建、删除、修改、查看、移动等功能
hdfs跟普通的单机文件系统有区别:
1、单机文件系统中存放的文件,是在一台机器的操作系统中
2、hdfs的文件系统会横跨N多的机器
3、单机文件系统中存放的文件,是在一台机器的磁盘上
4、hdfs文件系统中存放的文件,是落在n多机器的本地单机文件系统(hdfs是一个基于linux本地文件系统之上的文件系统)
hdfs 的工作机制:
1、客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:data node)<准确来说:切块的行为是由客户端决定的>
2、一旦文件被切块存储,那么,hdfs中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:name node)
3、为了保证数据的安全性,hdfs可以将每一个文件块在集群中存放多个副本(到底存几个副本,是由当时存入该文件的客户端指定的)
综述:一个hdfs系统,由一台运行了namenode的服务器,和N台运行了datanode的服务器组成!