hadoop是什么?
Hadoop就是为大数据应运而生、Hadoop 框架是用 Java 编写的、Hadoop是Apache下的子项目、Hadoop是分布式系统基础架构,它主要是用于大数据的处理、Hadoop可以看成是一个平台或者生态系统。
Hadoop生态系统包含哪些组件?
有分布式存储HDFS,有并行计算 MapReduce,有NoSQL数裾库的HBase,有数据仓库工具 Hive, 有 Pig 工作流语言,有机器学习算法库 Mahout,在分布式系统中扮演重要角色的 Zookeeper,有内存计算框架的Spark,对数据采集的Flume和 Kafka □总之,用户可以在Hadoop平台上开发和部署任何大数据应用程序。
Hadoop的核心是?
核心是 HDFS ( Hadoop 分布式文件系统)和MapReduce。HDFS为大数据提供了存储, MapReduce为大数据提供并行计算。HDFS能让成千上万电脑参与存储大数据。MapReduce能让成千上万电脑参数与大数据的计算。
HDFS (分布式文件系统)
HDFS是 Hadoop Distribute File System (Hadoop 分布式文件系统)的简称,是 Hadoop 的一个分布式文件系统。HDFS是一个主从结构。一个HDFS集群是由一个名字节点(NameNode)和多个数据节点(DataNode)组成,它们通常配置在不同的机器上。
1. HDFS有如下技术特点和应用场景:
a. 适合处理超大文件,数量级达到GB、TB甚至PB级,HDFS优化了大文件的流式读取方式,它把一个大文件分割成一个或者多个数据块(默认的大小为64MB),分发到集群的节点上,从而实现了髙吞吐量的数据访问。
b. 支持集群规模的动态扩展
c. 适用于流式数据读写的场景,即“一次写入,多次读取”
d. 具有高容错性,数据块可以保存多个副本,实现负载均衡。HDFS没计者认为硬件故障是经常发生的,所以采用了块复制的概念,让数据在集群的节点间进行复制( H D F S有一个复制因子参数,默认为3 ),从而实现了一个髙度容错性的系统。
e. 对硬件要求低,能够运行在廉价的商用机器集群
2. 不适用于如下场景:
a. 不适合需要高效存储大、量小的场景
b. 不适合低延迟的数据访问场景
c. 不适合多用户同时写和任意修改该文件场景
MapReduce(分布式并行计算框架)
MapReduce是一个分布式并行编程模型,将计算任务分布在成百上千个节点组成的集群进行并行计算,并返回计算结果。
1. MapReduce计算模型有如下优点和使用场景:
a. 具有高度可扩展性,可动态增加/削减计算节点
b. 具有高容错能力,支持任务自动迁移、重试和预测执行,不受单点故障影响
c. 能实现灵活的资源分配和调度,达到资源利用的最大化
d. 可部署在几千台机器的超大规模集群尚,使MapReduce可以处理具有超大规模数据的业务场景
e. MapReduce模型使用方便,易于编程,简化了分布式程序设计,提高了开发效率且支持多开发语言
2. 不适合使用MapReduce计算模型的场景:
a. MapReduce计算的时延较高,对实时性要求较高的场景不合适使用
b. MapReduce适合顺序批量处理数据,处理随机访问的能力不足,因此需要处理随机数据的场景也不适用MapReduce