简介
Hadoop 是一个可以处理海量数据的分布式系统基础软件框架,理论上可以经过增长计算节点以处理无限增加的数据,由java写成。其做者是 Doug Cutting,得益于谷歌的Map/Reduce计算模型和GFS分布式文件系统,Hadoop实现了其核心组件HDFS和MapReducce。Hadoop 是目前世界上大数据行业的主流软件框架。其生态圈很是庞大,而且社区很活跃。Hadoop自己仅有hadoop-common + hdfs + mapreduce 组成,hadoop2.x之后增长了yarn体系。java
hadoop 的集群模式
hadoop 集群,从细的方面来讲,总共分为四种模式:node
- Single Node Cluster,即伪分布式模式(单机模式)
- Full Distributed Cluster,即彻底分布式集群模式
- HA Cluster,即高可用集群模式
- HA + Federation Cluster,即高可用联邦集群模式
每一种方式都有其特定的使用场景,但通常数据规模很大的企业,都会选择HA+Federation模式,下面简要地介绍一下每一种模式的状况:sql
- 单机模式,将hadoop安装在一台机器上,经过进程来模拟各主机节点的协做和运行,其可靠性、稳定性都是很是差的,而且具有糟糕的性能效率,没有团队会在生产环境使用它。那么它是否就没有用呢?也不是的,一般使用这种模式进行开发和调试工做。
- 彻底分布式模式,将hadoop部署在至少两台机子上,数据块副本的数量一般也设置为2以上。该模式的集群,不管规模多大,只拥有1台Namenode节点,且也是惟一Active的工做节点。Namenode(简称NN)至关于hadoop文件系统的管家,对集群的全部文件访问和操做都经由NN统一协调管理。可想,当集群规模愈来愈庞大时,仅有一台NN,一定是不堪重负,那么它很容易就会挂掉,一旦挂掉,不只集群当即瘫痪,还很容易形成数据丢失。另外,该模式一般ResourceManager(RM)也仅部署1台,ResourceManager是yarn的管家,主要管理任务的执行,例如MapReduce任务。与NN相似,当集群提交的做业过于繁重时,其一样面临超负载的问题。那么此模式是否也无用武之地呢?也不是的,视业务、资金等状况而定,由于该模式往后也能够安全升级成高可用模式。
- 高可用模式,分为NN的高可用和RM的高可用。在彻底分布式的基础上,增长备用NN和RM节点。NN高可用,也就是集群里面会部署两台NN(最多也只能两台),以造成主备NN节点,达到高可用的目的。RM高可用与NN高可用相似,也是在集群里部署备用RM节点。不过此种模式下集群里面依然只有一台NN/RM处于Active工做状态,另外一台则处于Standby的等待状态。当Active的NN/RM出现问题没法工做时,Standby的那台则当即无缝切入,继续保障集群正常运转。这种模式是不少企业都使用的,可是依然有缺陷。什么缺陷呢?虽然集群的可用性问题解决了,可是性能瓶颈依然存在——仅有一台NN/RM,因为没法横向扩展,其极可能会超负载运行。
- 高可用联邦模式,解决了单纯HA模式的性能瓶颈。单纯的HA模式NN和RM之间虽然配置了HA,可是依旧仅有一台NN或RM同时运行,这可能会致使了NN或RM的负载太重,从而形成整个集群的性能瓶颈。而联邦模式将整个HA集群再划分为两个以上的集群,不一样的集群之间经过Federation进行链接,不一样集群间能够共享数据节点,也能够不共享,能够互相访问和操做数据,也能够不。这样便作到了HA集群的横向扩展,从而移除了单纯HA模式同时仅有1台NN/RM工做所带来的性能瓶颈。Federation模式,至关于在多个集群之上又构建了一个集群层次,从数据访问的角度看,也能够简单的将其理解为一台路由器,而每个HA集群则是单独的网络,不一样网络间经过Federation路由器进行沟通。此模式是目前hadoop生态中最高的一种模式,适用于规模较大的企业。
组件体系
hadoop hdfs mapreduce yarn zookeeper hive hbase sqoop pig Impala dubbo kudu storm kafka flume elasticsearch elk mahout ambari avro cassandra chukwa tez安全
spark spark-streaming
spark-sql spark-MLlib网络
概念
hadoop hdfs mapreduce fsimage edits namenode-metadata yarn zookeeper Namenode Secondary-Namenode Datanode ResourceManager(JobTracker) NodeManager(TaskTracker) ApplicationManager ApplicationMaster Container JobHistoryServer JobClient JournalNode框架
hadoop1.x hadoop2.x HA federationelasticsearch
以上众多组件的概念介绍,有机会注意补充~分布式