Hadoop是由Java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce
![cc4bd29e0e09601158e5adb7d97a0ef8.png](https://i-blog.csdnimg.cn/blog_migrate/d75acbd18adacaa26cb3bbcbaf934421.jpeg)
- HDFS又是什么?
HDFS是一个分布式文件系统,引入存放文件元数据信息的服务器Namenode和实际存放数据的服务器Datanode,对数据进行分布式储存和读取。
- MapReduce又是什么?
MapReduce是一个计算框架,MapReduce的核心思想是把计算任务分配给集群内的服务器里执行。通过对计算任务的拆分(Map计算/Reduce计算)再根据任务调度器(JobTracker)对任务进行分布式计算
总之Hadoop最核心的两个部分是:HDFS(提供分布式海量数据存储)和MapReduce(分布式计算殷勤),一个提供大数据存储,一个提供大数据计算
- 它能做什么?
- 大数据存储:分布式数据存储
- 日志处理:海量日志分析
- ETL处理:将数据抽取到传统的关系型数据库或者文件中
- 机器学习: 比如Apache Mahout项目
- 搜索引擎:Hadoop + lucene实现
- 数据挖掘:目前比较流行的广告推荐,个性化广告推荐
- ...
2 有什么特点?
- 使用分布式文件系统HDFS来提高读写速度和存储容量
- 采用MapReduce分布式计算引擎,增强了数据处理能力
- 数据冗余存储,保证数据的安全可靠性
- 容易扩展
- 高容错性
- 支持超大文件
根据权威组织统计,Hadoop相关组件已经打包几十个,用简单的一句话概括主要的一些组件:
![1eb1f36de3a8d9f09ad9b41402f0566f.png](https://i-blog.csdnimg.cn/blog_migrate/baca6054025d5d7f26c8e4b063045fa7.jpeg)
- Apache Hive:hadoop的数据仓库,可以将结构化的数据映射为一张数据表。通过类sql语句能快速简单地实现MapReduce统计,无需编写专门的MapReduce应用
- Apache Hbase:是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表
- Apache Zookeeper:是一个高性能分布式应用协作服务,它提供了基本功能,包括 命名空间。配置管理,集群管理和组同步。提供了一些简单的API,而不必要从头再实现他们,你可以使用它来实现同步,集群管理,选举和出席协议,你可以根据自己特定的需求构建服务
- Apache Ambari:是一种基于Web的工具,支持Hadoop集群的供应、管理和监控
- Apache Pig:是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算
以上只罗列了Hadoop的一些基本组件,应为我只会这几个,其他的还不是很了解。Hadoop家族是大数据处理的基本框架,大家有兴趣可以自己再了解