hadoop介绍:
说白了,hadoop就是一个生态圈,它是HDFS 、MapReduce 、Hive和ZooKeeper等组成,一系列的运行就像一条生态链
1)Pig:一个基于Hadoop的大规模数据分析平台,为海量数据的并行计算,提供了一个简单的操作和编程接口
2)Hive:就是一个工具,有完整的SQL查询的功能,可以将sql语句转换为MapReduce任务进行运行 ,当然也要基于hadoop
3)ZooKeeper:高效的,可拓展的协调系统,存储和协调关键共享状态
4)HBase:一个开源的,基于列存储模型的分布式数据库
5)HDFS:一个分布式文件系统,有着高容错性的特点,适合那些超大数据集的应用程序;
6)MapReduce:一种编程模型,用于大规模数据集(大于1TB)的并行运算
1.我们了解一下,hdfs 简单的说,它就跟网盘一样,可以用来存储、读取、下载文件
a.概述
是一个高度容错性的分布式文件系统
源自于Google的GFS论文
HDFS是GFS的克隆版
b.优缺点
i.优点:
构建在廉价的机器上(集群造价低,任意)
使用大数据处理
高容错(速度快,冗余备份数据)
ii.缺点:
不适合低延迟数据访问
不适合小文件存储
2.上面提到了大数据处理,对于我们从没有接触过这个的来说,什么才叫做大数据? 一般人思想:数据很庞大很复杂,大到靠人是无法统计计算的,就叫大数据
程序员思想:a)分析事物,肯定要从它的特性上去找,大数据并非单单体现在大,
它还有着3个特性:高速(velocity)、多样(variety)、价值(value),
b)大数据有需要解决的瓶颈(容量,读写,计算)
c)大数据应用场景(推荐、预测、人工智能)
大数据就是用来收集、整理、处理大容量数据集的
3.hdfs架构
NameNode节点主要负责管理文件系统的命名空间,集群配置信息,存储块的复制,完全可以看作是一个管理者,同一时间仅能有一个!
DataNode节点保存文件中的数据,是文件存储的基本单元,可以有多个
a.设计思想
将每一个文件拆分成一个block(拆多份是为了高容错)
每个block有多个脚本存储在不同的节点上
保存元数据映射关系
负载均衡
分布式并行计算(读取数据)
4.知道namenode跟datanode是干嘛用的,可以来看看---文件的写入和读取
文件写入:
1. Client向NameNode发送文件写入的请求
2. NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。
3.Client将文件划分为多个文件块,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。
文件读取:
1. Client向NameNode发起文件读取的请求
2. NameNode返回文件存储的DataNode的信息。
3. Client读取文件信息。5.
Hadoop的核心是MapReduce,而MapReduce的核心又在于map和reduce函数。它们是交给用户实现的,这两个函数定义了任务本身。
a)map函数:接受一个键值对(key-value
pair),产生一组中间键值对。Map/Reduce框架会将map函数产生的中间键值对里键相同的值传递给一个reduce函数。
b)reduce函数:在接受一个键,以及相关的一组值后,就将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)
所以MapReduce的基本原理就是:将大的数据分析拿到手,拆分成小块一个个地分析,最后再将提取出来的数据汇总分析,就能得到想要的内容;至于怎么分块分析,怎么做Reduce操作,那就很复杂,感兴趣的可以去了解了解
hadoop已经实现了数据分析,我们只需要编写简单的需求命令,就可以拿到想要的数据。
hadoop典型应用有搜索、日志处理、推荐系统、数据分析、视频图像分析、数据保存等。
热门工具 换一换