Hadoop 你需要了解的基础知识

初识Hadoop

Hadoop概述

Hadoop是一个开源的、可运行于大规模集群上的分布式存储和计算的软件框架,它具有高可靠、弹性可扩展等特点,非常适合处理海量数据。
Hadoop基于Java语言开发,具有很好的跨平台特性,它允许用户使用简单的编程模型在廉价的计算机集群上对大规模数据集进行分布式处理。

Hadoop旨在从单一服务器扩展到成千上万台机器,每台机器都提供本地计算和存储,且将数据备份在多个节点上,由此来提升集群的高可用性,而不是通过硬件提升,当一
台机器宕机时,其它节点依然可以提供数据和计算服务。

Hadoop简介

HDFS是谷歌文件系统GFS的开源实现,是面向普通硬件环境的分布式文件系统,适用于大数据场景的数据存储,提供了高可靠、高扩展、高吞吐率的数据存储服务。

MapReduce是谷歌MapReduce的开源实现,是一种简化的分布式应用程序开发的编程模型,允许开发人员在不了解分布式系统底层细节和缺少并行应用开发经验的情况下,能快速轻松地编写出分布式并行程序,
将其运行于计算机集群上,完成对大规模数据集的存储和计算。

YARN是将MapReduce 1.0中JobTracker的资源管理功能单独剥离出来而形成,它是一个纯粹的资源管理和调度框架,并解决了Hadoop 1.0中只能运行MapReduce框架的限制,可在YARN上运行各种不同类型计算
框架包括MapReduce、Spark、Storm等。

Hadoop特点

(1)高可靠性
采用冗余数据存储方式,即使一个副本发生故障,其它副本也可以保证正常对外提供服务。
(2)高扩展性
Hadoop设计目标是可以高效稳定地运行在廉价的计算机集群上,可以方便添加机器节点,扩展到数以千计的计算机节点上。
(3)高效性
作为分布式计算平台,能够高效地处理PB级数据。
(4)高容错性
采用冗余数据存储方式,自动保存数据的多个副本,当读取该文档出错或者某一台机器宕机,系统会调用其它节点上的备份文件,保证程序顺利运行。
(5)低成本
Hadoop是开源的,即不需要支付任何费用即可下载安装使用。另外,Hadoop集群可以部署在普通机器上,而不需要部署在价格昂贵的小型机上,能够大大减少公司的运营成本。
(6)支持多种平台
Hadoop支持Windows和GNU/Linux两类运行平台,Hadoop是基于Java语言开发的,因此其最佳运行环境无疑是Linux,Linux的发行版本众多,常见的有CentOS、Ubuntu、Red Hat、DebianFedora、SUSE、openSUSE等。
(7)支持多种编程语言
Hadoop上的应用程序可以使用Java、C++编写。

Hadoop生态系统

Hadoop 2.0主要由三部分构成:分布式文件系统HDFS、统一资源管理和调度框架YARN、分布式计算框架MapReduce;但广义上来讲,Hadoop是指以Hadoop为基础的生态系统,是一个庞大体系,Hadoop仅是其中最基础、最重要的部分,生态系统中每个组件只负责解决某一特定问题。

HDFS

HDFS(Hadoop Distributed File System)是Hadoop分布式文件系统,是Hadoop三大核心之一,是针对谷歌文件系GFS(Google File System)的开源实现(The Google File System, 2003)。HDFS是一个具有高容错性的文件系统,适合部署在廉价的机器上,HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。大数据处理框架如MapReduce、Spark等要处理的数据源大部分都存储在HDFS上,Hive、HBase等框架的数据通常也存储在HDFS上。简而言之,HDFS为大数据的存储提供了保障。

YARN

YARN(Yet Another Resource Negotiator)是统一资源管理和调度框架,它解决了Hadoop 1.0资源利用率低和不能兼容异构计算框架等多种问题,它提供了资源隔离方案和双调度器的实现,可在YARN上运行各种不同类型计算框架包括MapReduceSpark、Storm、Tez等。

MapReduce

Hadoop MapReduce是一个分布式的、并行处理的编程模型,是针对Google MapReduce的开源实现(MapReduce: Simplified Data Processing on Large Clusters, 2004)。开发人员可以在不了解分布式系统底层设计原理和缺少并行应用开发经验的情况下,就能使用MapReduce计算框架快速轻松地编写出分布式并行程序,完成对大规模数据集(大于1TB)的并行计算。MapReduce利用函数式编程思想,将复杂的、运行于大规模集群上的并行计算过程高度抽象为两个函数:Map和Reduce,其中Map是对可以并行处理的小数据集进行本地计算并输出中间结果,Reduce是对各个Map的输出结果进行汇总计算得到最终结果。

Spark

Spark是加州伯克利大学AMP实验室开发的新一代计算框架,对迭代计算很有优势,和MapReduce计算框架相比性能提升明显,并且都可以与YARN进行集成。

HBase

HBase是一个分布式的、面向列族的开源数据库,一般采用HDFS作为底层存储HBase是针对Google Bigtable的开源实现(Bigtable: A Distributed Storage System
for Structured Data, 2006),二者采用相同数据模型,具有强大的非结构化数据存储能力。HBase使用ZooKeeper进行管理,它保障查询速度的一个关键因素就是RowKey的设计是否合理。

ZooKeeper

ZooKeeper是Google Chubby的开源实现,是一个分布式的、开放源码的分布式应用程序协调框架,为大型分布式系统提供了高
效且可靠的分布式协调服务,提供了诸如统一命名服务、配置管理、分布式锁等分布式基础服务,并广泛应用于大型分布式系统
如Hadoop、HBase、Kafka等开源系统,例如HDFS NameNodeHA自动切换、HBase高可用、Spark Standalone模式下Master
HA机制都是通过ZooKeeper来实现的。

Hive

Hive是一个基于Hadoop的数据仓库工具,最早由Facebook开发并使用。Hive让不熟悉MapReduce的开发人员直接编写SQL语句来实现对大规模数据的统计分析操作,Hive可以将SQL语句转换为MapReduce作业,并提交到Hadoop集群上运行。Hive大大降低了学习门槛,同时也提升了开发效率。

Pig

Pig与Hive类似,也是对大型数据集进行分析和评估的工具,不过与Hive提供SQL接口不同的是,它提供了一种高层的、面向领域的抽象语言Pig Latin,和SQL相比,Pig Latin更加灵活,但学习成本稍高。

Impala

Impala由Cloudera公司开发,提供了与存储在HDFS、HBase上的海量数据进行交互式查询的SQL接口,其优点是查询非常迅速,其性能大幅领先于Hive,Impala并没有基于MapReduce计算框架,这也是Impala可以大幅领先Hive的原因。

Mahout

Mahout是一个机器学习和数据挖掘库,它包含许多实现,包括聚类、分类、推荐过滤等。

Flume

Flume是由Cloudera提供的一个高可用、高可靠、分布式的海量日志采集、聚合和传输的框架。Flume支持在日志系统中定制各类数据发送方,用于收集数据,同时,Flume提供对数据进行简单处理并写到各种数据接收方。

Sqoop

Sqoop是SQL to Hadoop的缩写,主要用于关系数据库和Hadoop之间的数据双向交换。可以借助Sqoop完成关系型数据库如MySQL、Oracle、PostgreSQL等到Hadoop生态系统中HDFS、HBase、Hive等的数据导入导出操作,整个导入导出过程都是由MapReduce计算框架实现,非常高效。Sqoop项目开始于2009年,最早是作为
Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速地迭代开发,Sqoop就独立成为一个Apache项目。

Kafka

Kafka是一种高吞吐量的、分布式的发布订阅消息系统,可以处理消费者在网站中的所有动作流数据。Kafka最初由LinkedIn公司开发,于2010年贡献给Apache基金会,并于2012年成为Apache顶级开源项目,它采用Scala和Java语言编写,是一个分布式、支持分区的、多副本的、基于ZooKeeper协调的分布式消息系统,它适合应用于以
下两大类别场景:构造实时流数据管道,在系统或应用之间可靠地获取数据;构建实时流式应用程序,对这些流数据进行转换。

Ambari

Apache Ambari是一个基于Web的工具,支持Apache Hadoop集群的安装、部署、配置和管理,目前已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、HBase、ZooKeeper、Oozie、Sqoop等。Ambari由Hortonworks主导开发,具有Hadoop集群自动化安装、中心化管理、集群监控、报警等功能,使得安装集群从几
天缩短在几小时以内,运维人员也从数十人降低到几人以内,极大的提高集群管理的效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值