Hadoop介绍

原创
2018/07/03 14:06
阅读数 48

介绍Hadoop

大数据胜于好算法

  • 如果数据足够多,可能产生意想之外的应用
  • 无论算法好坏,更多的数据总能带来更好的推荐效果

大数据存储和分析遇到的问题

  • 磁盘容量的增长远远大于磁盘读取速度
  • 1TB的磁盘,数据传输速度100MB/s,读一遍2.5H
  • 写数据就更慢了

解决之道

  • 磁盘数据并行读写
  • 分布式文件系统,冗余
  • MapReduce

Hadoop

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop提供了一个可靠的共享存储和分析系统。HDFS实现存储,MapReduce实现分析处理。

传统关系型数据库 vs MapReduce

Hadoop生态圈

Hadoop支持多种语言,包括Java/C/Python/Ruby

HDFS

  • Hadoop Distributed File System

  • HDFS是Hadoop的首选分布式文件系统,同时Hadoop也可以支持其他文件系统,例如本地文件和其他分布式系统。

  • 超大文件->1024G->1T->1024T->1P

  • HDFS是为大数据吞吐设计的,这可能会以时间延迟为代价

  • HDFS的block默认为64M,Map任务通常一次处理一个块的任务

  • nodename存储文件的元数据,nodename是放在内存中的,所以文件存储的节点受限于namenode的内存大小

  • 显示分布式系统的数据块结构:

    # DEPRECATED
    hadoop fsck / -files -blocks
    
    hdfs fsck / -files -blocks
    

NameNode为master管理者,管理元数据。当客户端发起读取或者写请求时,客户端会把请求发向NameNode,NameNode查询该请求涉及到哪些数据块以及数据块所在节点位置,将DataNode地址返回给客户端。然后客户端从相应的NameNode上读取数据块,并拼接成文件。NameNode只负责返回元数据信息,数据的写入和读取是直接由客户端和各个NameNode间进行传输的。

MapReduce

  • MapReduce对数据采用的是运行时解释的方式,所以对非结构化和半结构化数据非常有效
  • MapReduce输入的键和值并不是数据固有的属性,而是由分析数据的人员来选择的。

Reference

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部