2.1.1Hadoop简介

Hadoop是Apache软件旗下的一个开源分布式计算平台,为客户提供了系统底层细节透明的分布式架构。Hadoop是基于java语言开发,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中。
Hadoop的核心是分布式文件系统(HDFS)和MapReduce。HDFS是针对谷歌文件系统(GFS)的开源实现,是面向普通硬件环境的分布式文件系统,具有较高的读写速度、很好的容错性和可伸缩性,支持大规模数据的分布式存储,其冗余数据存储的方式很好的保证了数据的安全性。

2.1.2Hadoop的特性

Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性

  • 高可靠性。采用冗余数据存储方式
  • 高效性。作为并行分布式计算平台,hadoop采用分布式存储和分布式处理两大核心技术
  • 高可扩展性
  • 高容错性
  • 成本低
  • 运行在Linux平台上。Hadoop是基于java语言开发的,可以较好的运行在Linux平台上

2.2 Hadoop生态系统

除了核心的HDFS和MapReduce以外,Hadoop生态系统还包括Zookeeper、HBase、Hive、Pig、Mahout、Sqoop、Flume、Ambari等功能组件

Hadoop是基于什么的 hadoop是基于什么语言_HDFS

2.2.1 HDFS

Hadoop分布式文件系统既有处理超大数据、流式处理、可以运行在廉价商用服务器上等优点。HDFS在设计之初就是要运行在廉价的大型服务器集群上。HDFS放宽了一部分POSIX约束,从而实现以,流的形式访问文件系统中的数据。HDFS在访问应用程序数据时,可以具有很高的吞吐率,因此对于超大数据集的应用程序而言,选择HDFS作为底层数据存储是较好的选择

2.2.2 HBase

HBase是一个提供高可靠、高性能、可伸缩、实时读写、分布式的列式数据库,一般采用HDFS作为其底层数据存储。HBase与传统关系数据库的一个重要区别是,前者采用基于列的存储,而后者采用基于行的存储/Hbase具有良好的横向扩展能力,可以通过不断增加服务器来增加存储能力

2.2.3MapReduce

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算,它将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数——Map和Reduce上

2.2.4 Hive

Hive是一个基于Hadoop的数据操作仓库工具,可以用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储。

2.2.5 Pig

Pig是一种数据流语言和运行环境,适用于使用Hadoop和MapReduce平台来查询大型半结构化数据集

2.2.6 Mahout

Mahout提供一些可扩展的机器学习领域经典算法的实现,意在帮助开发人员更加方便快捷地创建智能应用程序

2.2.7 Zookeeper

Zookeeper是针对谷歌Chubby的一个开源实现,是高效和可靠的协同工作系统,提供分布式锁之类的基本服务,用于构建分布式应用,减轻分布式应用程序所承担的协调任务。

2.2.8 Flume

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

2.2.9 Sqoop

Sqoop是SQL-to-Hadoop的缩写,主要用来在Hadoop和关系数据库之间交换数据,可以改进数据的互操作性。通过Sqoop可以方便地将数据从Mysql、Oracle、PostgreSQL等关系数据库中导入Hadoop(可以导入HDFS、HBase或Hive),或者将数据从不敢Hadoop导出到关系数据库。Sqoop主要通过JDBC和关系数据库进行交互

2.2.10

Apache Ambari是一种基于web地工具,支持Hadoop集群地安装、部署、配置和管理。