Hadoop简述
什么是Hadoop
一句话概括:Hadoop提供海量数据进分布式处理(也就是存储和计算),存储依靠HDFS,计算依靠MapReduce
Hadoop的核心组件包括:
- Common 基础功能组件,包含工具包和RPC框架,这个不难理解,Hadoop是一个分布式计算平台,自然 需要不同节点之间的通信
- HDFS 分布式文件系统,起存储作用
- YARN 资源调度系统
- MapReduce 分布式运算编程框架
Hadoop发行版本
Apache 版本:适合入门个人学习
Cloudera 实战中用的较多
Hortonworks 文档很全
Hadoop生态
• Ambari™: —个基于web的工具配置,管理和监视Apache Hadoop集群,包括支持Hadoop的Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig and Sqoop。Ambari还提供了一个仪表板查看集群健康,如热图和能够有效看到MapReduce,Pig和Hive应用 的特性来诊断性能特征以用户友好的方式。
• Avro™:数据序列化系统。
• Cassandra™: —个没有单点故障可伸缩的多主机数据库。
• chukwa™: —个管理大型分布式系统的数据采集系统。
• HBase™: —个可扩展的分布式数据库,支持大型表的结构化数据存储。
• Hive™: —个数据仓库基础设施,提供了数据总结和特别查询。
• Mahout™: —个可扩展的机器学习和数据挖掘库。
• Pig™: —个高级数据流语言和并行计算的执行框架。
• Spark™: Hadoop数据的快速、通用的计算引擎。Spark提供了一个简单的和丰富的编程模型,支持 广泛的应用程序,包括ETL、机器学习、流处理和图计算。
• Tez™: —个广义数据流编程框架,基于Hadoop的YARN,它提供了一个功能强大且灵活的引擎来执行 任意DAG (有向无环图)的任务来处理批处理和交互用例的数据。Tez正在被Hive™, Pig™和其他框架 Hadoop生态系统,以及其他商业软件(例如ETL工具),以取代Hadoop MapReduce™作为底层执行引擎。
• ZooKeeper™: —个高性能的分布式应用程序的协调服务。
Hadoop应用场景
随便一搜网上的文章,看到的Hadoop的应用场景很多,实际上大数据发展到如今,Hadoop的最主要的应用场景就是HDFS了,MapReduce已经被后起之秀Spark所代替,但是HDFS并非具备企业所需要的所有特性,所以针对Hadoop的源码修改以及随着集群规模的升级,Hadoop集群迁移也是常见的应用场景
分布式系统简介
Hadoop是构建在分布式上面的计算平台,所以有必要先了解一下分布式的相关特性
前世今生
在分布式系统出现之前,主要使用的是集中式系统,简单粗暴的来讲就是堆机器,集中式系统最大的特点就是部署结构简单,不用考虑对多个节点部署,也不用考虑多个节点的分布式协作问题,缺点在于扩展困难,动态扩展十分麻烦
分布式特点
定义:分布式系统是一个由硬件或者软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统
分布性
计算机在空间上随意分布,随意变化
对等性
分布式节点没有主从之分,副本是分布式系统的最常见概念之一,指的是分布式系统对数据和服务提供的一种冗余方式,为了对外提供高可用服务,使用副本机制,当某一个节点数据丢失,可以从副本上读取数据
并发性
分布式系统最常见的就是并发性操作,例如同一个分布式系统节点并行执行共享的资源,就比如存储
缺乏全局时钟
如何定义事件的先后顺序?这是分布式系统的一大难题
一句话来说,利用多个节点共同完成一项或者多项具体业务的就是分布式系统
缺乏全局时钟
如何定义事件的先后顺序?这是分布式系统的一大难题
一句话来说,利用多个节点共同完成一项或者多项具体业务的就是分布式系统