# 初识Hadoop ## 1 Hadoop概述 Hadoop项目作者的孩子给一个棕黄色的大象样子的填充玩具的命名。 ### Hadoop能做什么 搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务 ### Hadoop核心组件 - 分布式文件系统HDFS 源于Google的GFS论文,发表于2003.10。HDFS是GFS的克隆版 HDFS特点:扩展性&容错性&海量数量存储 将文件切分成指定大小的数据块,并以多副本的存储在多个机器上。数据切分、多副本、容错等操作对用户是透明的。 Block Replication ```scala Namenode(Filename, numReplicas, block-ids, ..) /users/javaedge/data/part-0, r:2, {1,3},... /users/javaedge/data/part-1, r:3, {2,4,5},... ``` Datanodes: ![](https://img-blog.csdnimg.cn/ffbbb4e8a5c347fea5099c1a90a95b63.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmF2YUVkZ2Uu,size_20,color_FFFFFF,t_70,g_se,x_16) ## Hadoop核心组件 - 资源调度系统YARN Yet Another Resource Negotiator,Hadoop 的集群资源管理系统。 YARN 在 Hadoop 2 中被引入以改进 MapReduce 实现,但它也足以支持其他分布式计算范例。 特点:扩展性&容错性&多框架资源统一调度。 YARN 提供了用于请求和使用集群资源的 API,但这些 API 通常不被用户代码直接使用。相反,用户写入分布式计算框架提供的更高级别的 API,这些框架本身构建在 YARN 之上,并对用户隐藏资源管理细节。这种情况如下图所示,一些分布式计算框架(MapReduce、Spark 等)作为 YARN 应用程序在集群计算层(YARN)和集群存储层(HDFS 和 HBase)上运行。 YARN applications: ![](https://img-blog.csdnimg.cn/95a38a35f99c42579fda47fcb409b7cf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmF2YUVkZ2Uu,size_20,color_FFFFFF,t_70,g_se,x_16) ![](https://upload-images.jianshu.io/upload_images/4685968-ce6788fca97f198c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## Hadoop核心组件之分布式计算框架MapReduce 源自于Google的MapReduce论文,发表于2004年12月。MapReduce是Google MapReduce的克隆版 MapReduce特点:扩展性&容错性&海量数量离线处理 ![](https://upload-images.jianshu.io/upload_images/4685968-2f0d9fcc6e84e6c7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ### Hadoop优势之高可靠性 - 数据存储:数据块多副本 - 数据计算:重新调度作业计算 ### Hadoop优势之高扩展性 - 存储/计算资源不够时,可以横向的线性扩展机器 - 一个集群中可以包含数以干计的节点 ### Hadoop优势之其他 存储在廉价机器上,降低成本 成熟的生态圈 ## 狭义Hadoop V.S 广义Hadoop 狭义的Hadoop:是一个适合大数据分布式存储( HDFS )、分布式计算(MapReduce)和资源调度( YARN )的平台。 - 广义的Hadoop 指的是Hadoop生态系统,Hadoop生态系统是一个庞大概念,hadoop是其中最重要最基础的一个部分;生态系统中的每一子系统只解决某一个特定的问题域 (甚至可能很窄),不搞统一型的一个全能系统,而是小而精的多个小系统。 ![](https://upload-images.jianshu.io/upload_images/4685968-c2fcacf7e4e9f541.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## Hadoop生态系统的特点 - 开源、社区活跃 - 囊括了大数据处理的方方面面 - 成熟的生态圈 ## Hadoop常用发行版及选型 - Apache Hadoop - CDH : Cloudera Distributed Hadoop - HDP : Hortonworks Data Platform