1、hadoop是什么?
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。(有不同组件)
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
2、Hadoop版本变化
Apache Hadoop版本分为1.0和2.0两个版本。(现在出3了,不过多用2.x)
3、Hadoop生态圈
1)Hadoop生态圈组件类别:
文件存储:Hadoop HDFS、Tachyon、KFS
离线计算:Hadoop MapReduce、Spark
流式、实时计算:Storm、Spark Streaming、S4、Heron
K-V、NOSQL数据库:HBase、Redis、MongoDB
资源管理:YARN、Mesos
日志收集:Flume、Scribe、Logstash、Kibana
消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ
查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
分布式协调服务:Zookeeper
集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager
数据挖掘、机器学习:Mahout、Spark MLLib
数据同步:Sqoop
任务调度:Oozie
2)组件关联
4、常用组件
1) HDFS:Hadoop 生态圈的基本组成部分是 Hadoop 分布式文件系统(HDFS)。 HDFS 是一种数据分布式保存机制, 数据被保存在计算机集群上。 数据写入一次,读取多次。HDFS为 HBase 等工具提供了基础。
2) MapReduce: Hadoop 的主要执行框架是 MapReduce,它是一个分布式、 并行处理的编程模型。 MapReduce 把任务分为 map(映射)阶段和 reduce(化简)。 开发人员使用存储在HDFS 中数据(可实现快速存储), 编写 Hadoop 的 MapReduce 任务。由于 MapReduce工作原理的特性, Hadoop 能以并行的方式访问数据,从而实现快速访问数据。
3) Hbase:HBase是一个建立在 HDFS 之上,面向列的 NoSQL 数据库,用于快速读/写大量数据。HBase使用Zookeeper进行管理,确保所有组件都正常运行。
4) ZooKeeper:用于 Hadoop 的分布式协调服务。 Hadoop 的许多组件依赖于 Zookeeper,它运行在计算机集群上面, 用于管理 Hadoop 操作。
5) Hive:Hive 类似于 SQL 高级语言, 用于运行存储在 Hadoop 上的查询语句,Hive 让不熟悉 MapReduce 开发人员也能编写数据查询语句, 然后这些语句被翻译为Hadoop上面的 MapReduce 任务。像 Pig 一样,Hive作为一个抽象层工具, 吸引了很多熟悉 SQL 而不是 Java 编程的数据分析师。
6) Pig:它是 MapReduce 编程的复杂性的抽象。 Pig 平台包括运行环境和用于分析 Hadoop数据集的脚本语言(Pig Latin)。 其编译器将 Pig Latin 翻译成 MapReduce 程序序列。
7) Sqoop: 是一个连接工具, 用于在关系数据库、 数据仓库和 Hadoop 之间转移数据。 Sqoop利用数据库技术描述架构, 进行数据的导入/导出; 利用 MapReduce 实现并行化运行和容错技术。