Apache Lucene(开源高性能全文检索工具包)
apache Nutch(开源web搜索引擎)
Google的三大论文(GFE\MapReduce\BigTable)
Apache Hadoop(大规模数据处理)
1、hadoop的发展
1> 搜索引擎:网络爬虫+索引服务器(生成索引+检索)
2>Doung Cutting写了Lucene工具包(生成索引+检索)
3>Nutch搜索引擎:网络爬虫+索引服务器(Lucene封装)
不能解决分布式存储
不能解决分布式计算
4>2002年google开源论文GFS论文,Doung Cutting写了HDFS模块,解决了分布式存储
5>2004年google开源了MapReduce论文,Doung Cutting写了MapReduce模块,解决了分布式计算
6>Nutch0.9将HDFS和MapReduce拆分出去,产生了一个分布式处理框架Hadoop
hadoop2.x进一步发展:
Hive:MapReduce需要写一些逻辑处理,Hvie写一些sql直接可以转化成Mapredude的作业
Storm:是推特开源的流处理开源分布式计算
Spark和Flink是apache开源的实时流处理的分布式框架
2、Hadoop四大模块介绍
HadoopCommon:为其他hadoop提供基础设施
Hadoop HDFS:一个可靠、高吞吐量的分布式文件系统
Hadoop MapReduce:一个分布式离线并行计算框架
Hadoop YARN:任务调度和资源管理
hdfs(hadoop distribute file system):分布式文件系统
a、文件系统:文件管理+block块管理
单文件系统:
windows:FAT16、FAT32、NTFS
linux:ext2/3/4、VFS
b、分布式文件系统
多个服务器存储文件
搜索服务器的文件系统:
HDFS分布式文件系统引入:
HDFS文件系统架构:
HDFS组件:
1、NameNode是主节点,存储文件的元数据如文件名、文件目录、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等
2、DataNode在本地文件系统存储文件块数据,以及块数据的校验和
3、SecondaryNameNode是用来监控HDFS状态的辅助后台程序,没隔一段时间获取HDFS元数据的快照(合并镜像文件和日志文件,合并完成交给NameNode进行处理)
简单来说:
1、NameNode:
元数据:文件名、目录名、属性(生成时间、权限、副本)
文件名与block列表映射关系
block与DataNade列表映射关系
2、DataNode:
block块数据、校验和编码
3、secondaryNameNode:
分担name Node压力,合并编辑日志edits和镜像文件fsimage(因为合并操作需要占用很大资源,影响客户端请求),合并后将最终的镜像文件fsimage返回给NmaeNode进行处