Hadoop day1

Hadoop 就是存储海量数据和分析海量数据的工具

1. 概念

Hadoop 是由 java 语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是 HDFS 与 MapReduce。

        HDFS是一个分布式文件系统:引入存放文件元数据信息的服务器 Namenode 和实际存放数据的服务器 Datanode,对数据进行分布式储存和读取。

    HDFS 是 Master 和 Slave 的主从结构。主要由 Name-Node、Secondary NameNode、DataNode 构成。

    总之:HDFS:一个分布式的,有冗余备份的,可以动态扩展的用来存储大规模数据的大硬盘

  MapReduce是一个计算框架:MapReduce 的核心思想是把计算任务分配给集群内的服务器里执行。通过对计算任务的拆分(Map 计算 /Reduce 计算)再根据任务调度器(JobTracker)对任务进行分布式计算。

            总之:MapReduce 相当于一个计算引擎,按照 MapReduce 的规则 -------- 编写Map 计算/Reduce 计算的程序,可以完成计算任务

 

2. 作用

      大数据存储:分布式存储

    日志处理:擅长日志分析

    ETL: 数据抽取到 oracle、mysql、DB2、mongdb 及主流数据库

    机器学习: 比如 Apache Mahout 项目

    搜索引擎:Hadoop + lucene 实现

    数据挖掘:目前比较流行的广告推荐,个性化广告推荐

    Hadoop 是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式。

实际应用:

    1)Flume+Logstash+Kafka+Spark Streaming 进行实时日志处理分析

3. 优缺点

优点

1、支持超大文件。HDFS 存储的文件可以支持 TB 和 PB 级别的数据。

2、检测和快速应对硬件故障。数据备份机制,NameNode 通过心跳机制来检测 DataNode 是否还存在。

3、高扩展性。可建构在廉价机上,实现线性(横向)扩展,当集群增加新节点之后,NameNode 也可以感知,将数据分发和备份到相应的节点上。

4、成熟的生态圈。借助开源的力量,围绕 Hadoop 衍生的一些小工具。

缺点

1、不能做到低延迟。高数据吞吐量做了优化,牺牲了获取数据的延迟。

2、不适合大量的小文件存储。

3、文件修改效率低。HDFS 适合一次写入,多次读取的场景。