走进hadoop生态圈
hadoop介绍:
2)Hive:就是一个工具,有完整的SQL查询的功能,可以将sql语句转换为MapReduce任务进行运行 ,当然也要基于hadoop
3)ZooKeeper:高效的,可拓展的协调系统,存储和协调关键共享状态
4)HBase:一个开源的,基于列存储模型的分布式数据库
5)HDFS:一个分布式文件系统,有着高容错性的特点,适合那些超大数据集的应用程序;
a.概述
是一个高度容错性的分布式文件系统
源自于Google的GFS论文
HDFS是GFS的克隆版
b.优缺点
i.优点:
构建在廉价的机器上(集群造价低,任意)
使用大数据处理
高容错(速度快,冗余备份数据)
ii.缺点:
不适合低延迟数据访问
不适合小文件存储
b)大数据有需要解决的瓶颈(容量,读写,计算)
c)大数据应用场景(推荐、预测、人工智能)
大数据就是用来收集、整理、处理大容量数据集的
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读取文件信息。
Hadoop的核心是MapReduce,而MapReduce的核心又在于map和reduce函数。它们是交给用户实现的,这两个函数定义了任务本身。
a)map函数:接受一个键值对(key-value pair),产生一组中间键值对。Map/Reduce框架会将map函数产生的中间键值对里键相同的值传递给一个reduce函数。
b)reduce函数:在接受一个键,以及相关的一组值后,就将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)
hadoop典型应用有搜索、日志处理、推荐系统、数据分析、视频图像分析、数据保存等。