首页 > 代码库 > Hadoop第一天---初识Hadoop

Hadoop第一天---初识Hadoop

Hadoop能解决的问题:

  1.海量数据需要及时分析和处理。

  2.海量数据需要深入分析和挖掘。

  3.数据需要长期保存。

问题:

  1.磁盘IO成为一种瓶颈,而不是CPU资源。

  2.网络带宽是一种稀缺资源。

  3.硬件故障成为影响稳定的一大因素。

Hadoop介绍:

  1.作者:Doug Cutting

  2.用Java编写的开源系统,能够部署在大规模的计算平台上,从而提高计算效率。

  3.原来是Nutch搜索引擎里面的一个模块。

  4.受Google三篇论文的启发:MapReduce GFS Bigtable。

  5.Google 与 Hadoop的对比:mapreduce(mapreduce)、GFS(HDFS)、Bigtable(Hbase)。

Hadoop生态系统:

  1.Hbase:

    (1) Nosql数据库, Key-Value存储。

    (2) 最大化利用内存。

  2.HDFS:

    (1) Hadoop Distribute File System 分布式文件系统

    (2) 最大化利用磁盘。

  3.MapReduce:

    (1) 编程模型,主要用来做数据的分析。

    (2) 最大化利用CPU。

---------------------------------------------------------------------------------------------------------------------------------

HDFS:

  HDFS设计原则:

    1.文件以块(block)方式存储。

    2.每个块大小远比多数文件系统来的大(默认64MB)。

    3.通过副本机制提高可靠度和读取吞吐量。

    4.每个区至少分到三台DataNode上。

    5.单一 master(NameNode) 来协调存储元数据(metadata)。

    6.客户端对文件没有缓存机制(No data caching)。

   NameNode(Master):

    1.HDFS的守护程序。

    2.记录文件是如何分割成数据块的,以及这些数据块被存储到哪些节点上。

    3.对内存和I/O进行集中管理。

    4.是个单点,发生故障将使集群崩溃。

  Secondary Namenode:

    1.监控HDFS状态的辅助后台程序。

    2.每个集群都有一个。

    3.与NameNode进行通讯,定期保存HDFS元数据快照。

    4.当NameNode故障时可以作为备用的NameNode使用(还未实现自动切换)。

  DataNode(Slave):

    1.每台从服务器都运行一个DataNode。

    2.负责把HDFS数据块读写到本地文件系统。

 

  JobTracker(MapReduce后台进程):

    1.用于处理作业(用户提交代码)的后台程序。

    2.决定有哪些文件参与处理,然后切割task并分配节点。

    3.监控task,重启失败的task(在不同的节点重启)。

    4.每个集群只有唯一一个JobTracker,位于Master节点。

  TaskTracker(MapReduce后台进程):

    1.位于Slave节点上,与DataNode结合(代码与数据一起的原则)。

    2.管理各自节点上的task(由JobTracker分配)。

    3.每个节点只有一个TaskTracter,但一个TaskTracker可以启动多个JVM,用于并行执行Map或Reduce任务。

    4.与JobTracker交互。

Hadoop第一天---初识Hadoop