hadoop权威指南笔记之初识hadoop

来源:互联网 发布:返利商城系统源码 编辑:程序博客网 时间:2024/05/22 15:41

1.大数据时代来临,要解决两个问题,一个是海量数据的存储,一个是对海量数据的分析。

a.目前数据存储的问题:存储工具的容量在不断加大,但是读写的速度却没有随之响应的增加。
解决方案是增加并行,也就是把数据存储到多个硬盘上,这时数据的备份就尤为重要,raid就是解决这个问题的方案。
b.数据分析:如果数据散落在100个硬盘上,那么数据的分析首先要将这100个硬盘上的数据进行整合。


2.关系型数据库?mapreduce?
a.数据的存储性能问题,主要有两个地方,一个是存储读取的效率,一个是传输的效率。存储的效率是seeking寻址效率,而传输的瓶颈在带宽。

b.关系型数据库与mapreduce的对比:


 
      规范性 规范(normalized)(完整无冗余)不规范
注:名称解释
结构化数据:(structured data )具有既定格式的实体化数据,如xml文档或满足特定预定义格式的数据库表
半结构化数据:(semi-strutured data)有格式但比较松散经常被忽略,它常用作对数据结构的一般指导 如一张电子表格,其机构由单元格组成,但是每个单元格里存的内容是任意的,没作约定
非结构化数据:(unstructured data) 没有什么特别的内部结构,如纯文本或图像数据。如web服务器日志。
mapreduce 支持半结构化数据和非结构化数据。关系型数据库支持结构化数据。


c.hadoop是流式读取模式,流式读取模式的瓶颈在传输效率。而关系型数据库的读取含大量seeking,B-tree就是这种减少寻址的机构
3.网格计算:
名称解释:
高性能计算(High Performance computing,hpc)计算散落在多台空置计算机上,计算密集,但数据量大会因网络带宽而引起瓶颈,
网格计算(grid computing)
消息传递接口(message passing interface,mpi)
mapreduce:跟高性能计算的区别在于,数据会存储在节点上,本地计算然后在传输
数据本地化(data locality)

mapreduce 和mpi的区别在于,mpi要求程序员显式的控制数据流机制,包括通过C语言构造低层次的功能模块和高层次的数据分析算法。而mapreduce则在更高的层次上执行任务,即程序员仅从键值对函数的角度考虑任务的执行,数据量是隐含的透明的。


hadoop 的用途 :数据挖掘 分析  、web日志分析、广告优化、半结构化和非结构化数据分析。

下图为hadoop生态系统图。



 

 

1.  Hadoop Common:就是原来的Hadoop Core,它是一系列分布式文件系统和通用I/O 的组件和接口。是整个Hadoop项目的核心,其他Hadoop子项目都是在Hadoop Common的基础上发展起来的。

2.  Avro:一种提供高效、跨语言RPC 的数据序列系统,持久化数据存储。

3.  ZooKeeper:一个分布式的、高可用性的协调服务。用于解决分布式系统中一致性问题,是Chubby的开源实现。

4.  HBase:是一个开源的、基于列存储模型的分布式数据库,是Bigtable 的开源实现。HBase 使用HDFS 作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取)。

5.  HDFS:提供高吞吐量的分布式文件系统,是GFS 的开源实现。HDFS 是分布式计算的存储基础。HDFS具有高容错性,可以部署在廉价的硬件设备上,适合那些有大数据集的应用,并且提供对数据读写的高吞吐量。HDFS能够提供对数据的可扩展访问,通过简单地往集群里添加节点就可以解决大量客户端同时访问的问题。HDFS支持传统的层次文件组织结构,同现有的一些文件系统类似,如可以对文件进行创建、删除、重命名等操作。

6.  MapReduce:大型数据的分布式处理模型,以在大型集群上执行分布式应用的简单性和可用性著称。Hadoop的MapReduce是Google的MapReduce的开源实现。MapReduce是一种简化的并行计算模型,由Map和 Reduce组成,分别进行任务的分解和对结果的汇总。

7.  Hive:是一种提供数据摘要和查询功能的分布式数据仓库,管理HDFS中存储的数据。Hive支持的查询是类似SQL方式的陈述语言:HiveQL ,这种查询被编译进MapReduce的job用以Hadoop的执行。

8.  Pig:是在MapReduce上构建的一种高级的数据流语言,用以检索非常大的数据集,它是Sawzall的开源实现。Sawzall是一种建立在 MapReduce基础上的领域语言,它的程序控制结构(如 if、while 等)与C语言无异,但它的领域语言语义使它完成相同功能的代码比MapReduce的C++代码简洁。

9.  Chukwa:一个用来管理大型分布式系统的数据采集系统。Chukwa 运行HDFS 中存储数据的收集器,它使用MapReduce来生成报告。




























原创粉丝点击