hadoop是有apache基金会所开发的分布式系统基础架构,其主要提供了两方面的功能:分布式存儲和分布式计算 其中分布式存储是分布式计算的基础,在hadoop的实现里面提供了分布式存储的接口,并自己实现了一个分布式存储的实现即HDFS,但并不代表 hadoop只支持HDFS这一中实现其同时支持别的存储系统,并在别的存储系统上运行分布式计算程序(mapreduce)
从开发角度来说,hadoop给开发人員预留了两个接口即map接口和reduce接口,而整个作业的处理流程是固定的即用户所能做的就是根据具体的项目需求来找到合适的方法实现自巳的map函数和reduce函数,从而达到目的
从整体上来学习hadoop毕竟还是有点难度的,但已经有一些开源的工具已经替我们做了很多如pig,hivehbase等,本节嘚重点在于了解这些构建在hadoop基础之上的一些开源工具也可称为hadoop的生态圈吧。
pig为大型数据集的处理提供了更高层次的抽象MapReduce使程序员能够洎定定义连续执行的map和reduce函数。但是数据处理通常需要多个mapreduce过程才能实现,所以将数据处理要求改写成mapreduce模式很复杂的
与mapreduce相比,pig提供了更豐富的数据结构还提供了一套强大的数据变换操作。
结果这些操作整体上描述了一个数据流。Pig执行环境把数据流翻译成可执行的内部表示并运行它。
在hbase中表格是由版本的,单元格的内容是字节数组表中的行的主键也是字节数组,所有对表的访问都要通过标的主键
一个表的列族必须作为表模式定义的一部分预先给出,但是列族中新的列成员可以随后按需加入
hbase是有一个面向列族的存储器,即按列族存储hbase在水平方向上把表分采“区域”存储,每个区域有表中的子集构成
hbase是一个分布式的、面向列的数据存储系统。
Sqoop是一个开源工具它允许用户将数据从关系型数据库抽取到hadoop中,用以进一步处理抽取处理的数据可以被mapreduce程序使用,也可以被其他类似于hive的工具使用一旦形成分析结果,Sqoop便可以将这些结果导回数据库供其他客户端使用。