Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

1,Common

    Hadoop Common原名为Hadoop Core,0.20版本之后改为common。自0.21版本之后,HDFS和MapReduce被分离出来作为单独的子项目,其余部分构成Hadoop Common。Common是未Hadoop及其他子项目提供支持的常用工具,主要包括文件系统,RPC和串行化库,他们为在廉价的硬件上搭建云计算环境提供基本的服务,同时也为运行在该平台上的软件开发提供所需要的API。

2,Avro

        Avro是Hadoop的一个子项目,也是Apache中的一个独立项目。Avro是一个用于数据序列化的系统,提供了丰富的数据结构类型,快速可压缩的二进制数据格式,存储持久性数据的文件集,远程调用的功能和简单的动态语言集成功能。Avro可以将数据结构或对象转化成便于存储和传输的格式,节约数据存储空间和网络传输带宽,Hadoop的其它子项目的客户端与服务端之间的数据传输都采用Avro。

3,HDFS

         HDFS是Hadoop项目的两大核心之一,它是针对谷歌文件系统(GFS)的开源实现。HDFS具有处理超大数据,流式处理,可以运行在廉价商用服务器上等优点。HDFS在设计之初就是要运行在廉价的大型服务器集群上,因此,在设计上就把硬件故障作为一种常态来考虑,可以保证在部分硬件发生故障的情况下,仍能保证文件系统的整体的可用性和可靠性。HDFS放宽了一部分POSIX约束,从而实现以流的形式访问文件系统中的数据。HDFS在访问应用程序数据时候,可以具有很高的吞吐量,因此,对于超大数据集的应用程序而言,选择HDFS作为底层数据存储是较好的选择。

4,HBase

    HBase是一个提供高可靠性,高性能,可伸缩,实时读写,分布式的列式数据库,一般采用HDFS作为其底层数据存储。HBase是针对谷歌的BigTable的开源实现,二者都采用了相同的数据模型,具有强大的非结构化数据存储能力。HBase与传统关系数据库的一个重要区别就是,前者是基于列的存储,而后者采用基于行的存储。HBase具有良好的横向扩展能力,可以通过不断增加廉价的商用服务器来增加存储能力。

5,MapReduce

   Hadoop MapReduce是这对google 的MapReduce的实现。MapReduce是一种编程模型,用于大规模数据集的并行计算,它将复杂,运行于大规模集群上的并行计算过程高度的抽象到了两个函数——Map和Reduce,并允许用户在不了解分分布式系统底层细节的情况下开发并行应用程序,并将其运行于廉价计算机集群上,完成海量数据的处理。

6,Zookeeper

  Zookeeper是针对谷歌Chubby的一个开源实现,是高效和可靠的协同工作系统,提供分布式锁之类的基本服务,用于构建分布式应用,减轻分布式应用程序锁承担的协调任务。Zookeeper使用Java编写,很容易编程接入,它使用了一个和文件树结构相似的数据模型,可以使用Java或者C来进行编程接入。

7,Hive

   Hive是一个基于Hadoop的数据仓库工具,可以用于对Hadoop文件中的数据集进行数据整理,特殊查询和分析存储。Hive的学习门槛较低,因为,它提供了类似于关系数据SQL语言的特殊查询语言——Hive QL,可以通过Hive QL语句快速实现简单的MapReduce统计,Hive自身可以将Hive QL语句转换为MapReduce任务进行运行,而不必开发专门的MapReduce应用,因而十分适合数据仓库的统计分析。

8,Pig

    Pig是一种数据流语言和运行环境,适合于使用Hadoop和MapReduce平台来查询大型半结构化数据集。
    Pig的出现大大简化了Hadoop常见的工作任务,它在MapReduce的基础上创建了更简单的过程语言抽象,为Hadoop应用程序提供了一种更加接近结构化查询语言的接口。Pig是一个相对简单的语言,它可以执行SQL语句,因此,当我们需要从大型数据集中搜索满足某个给定搜索条件的记录时,采用Pig要比MapReduce具有明显的优势,前者只需要编写一个简单的脚本在集群中自动并行处理与分发,而后者则需要编写一个单独的MapReduce应用程序。

9,Sqoop

    Sqoop可以改进数据的互操作性,主要用来在Hadoop和关系数据库直接交换数据。通过Sqoop,我们可以方便的将关系数据库之中的数据导入Hadoop,或者将Hadoop中的数据导入关系数据库。Sqoop主要通过JDBC和关系数据库进行交互,理论上,支持JDBC的关系数据库都可以使Sqoop和Hadoop进行数据交互。Sqoop是专门为大数据集设计的,支持增量更新,可以将新纪录添加到最近一次到处的数据源上,或者指定上次修改的时间戳。

10,Chukwa

      Chukwa是一个开源的,用于监控大型分布式系统的数据收集系统,可以将各种类型的数据收集成合适的Hadoop处理的文件,并保存在HDFS中供Hadoop进行各种MapReduce操作。Chukwa构建在Hadoop的HDFS和MapReduce框架之上,继承了Hadoop的可伸缩性和可扩展性。Chukwa内置了一个强大而灵活的工具集,可用于展示,监控和分析已收集的数据。
    

Hadoop项目结构的更多相关文章

  1. Hadoop阅读笔记(五)——重返Hadoop目录结构

    常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼 ...

  2. hadoop项目之求出每年二月的最高气温(Combiner优化)

    hadoop项目之求出每年二月的最高气温(Combiner优化) 一.项目结构 一.java实现随机生成日期和气温 package com.shujia.weather; import java.io ...

  3. 认识ASP.NET 5项目结构和项目文件xproj

    ASP.NET 5 在项目结构上做了很大的改变,我们以前熟悉的目录结构与项目文件内容都不太一样了,本篇文章带大家了解 ASP.NET 5 到底跟以前有哪些不一样的地方. 我们先用 Visual Stu ...

  4. 【完全开源】知乎日报UWP版:项目结构说明、关键源代码解释

    目录 说明 项目结构 关键代码 演示视频 说明 上一篇博客将源码放出来了,但是并没有做过多的介绍,所以如果自己硬看可能需要花费很长的时间,尤其这些代码并不是自己写的.项目不算复杂但是也不算简单,这篇文 ...

  5. Android之什么是Activity和常用的ADB命令以及Android项目结构的认识

    总结一下之前学习Android的一些内容 一:  Android常用的ADB命令(adb android调试桥)      1.adb devices   查看模拟器设备并重新连接. 2.adb ki ...

  6. Go项目结构和模块导入

    Go项目结构和模块导入 golang项目结构与其他语言类似,但是仍然有一些需要注意的地方. 项目结构 环境配置 go 命令依赖一个重要的环境变量:$GOPATH,它表示GO项目的路径,如下设置 exp ...

  7. android第一行代码-1.项目结构

    0.项目结构 一个简单的android项目结构大致如下 入口就是MainActivity这个类,如果对于一个陌生的项目,最好的办法是看AndroidMainifest.xml,如下 <?xml ...

  8. Mybatis 复习 Mybatis 配置 Mybatis项目结构

    pom.xml文件已经贴在了文末.该项目不使用mybatis的mybatis-generator-core,而是手写Entities类,DaoImpl类,CoreMapper类 其中,Entities ...

  9. django开发个人简易Blog——构建项目结构

    开发之前第一步,就是构造整个的项目结构.这就好比作一幅画,第一步就是描绘轮廓,有了轮廓,剩下的就是慢慢的填充细节.项目结构规划如下图: 项目结构描述: 本项目以fengzhengBlog为根目录. a ...

随机推荐

  1. Vuex、Flux、Redux、Redux-saga、Dva、MobX

    https://www.jqhtml.com/23003.html 这篇文章试着聊明白这一堆看起来挺复杂的东西.在聊之前,大家要始终记得一句话:一切前端概念,都是纸老虎. 不管是Vue,还是 Reac ...

  2. ZTree 使用范例

    http://www.treejs.cn/v3/api.php zTree v3.x 入门指南 Api 文档 https://github.com/zTree/zTree_v3 下载ZTree v3 ...

  3. BZOJ1880:[SDOI2009]Elaxia的路线(最短路,拓扑排序)

    Description 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间.Elaxia和w**每天都要奔波于宿舍和实验室之间, ...

  4. collecitons.deque

    python队列,可以使用collections里面的deque,将列表当作队列使用. deque方法有: from collections import deque deque.append() d ...

  5. 【问题】 百度地图marker不在中心点处

    问题: var map = new BMap.Map("mapshow"); map.centerAndZoom(point, 15); 显示百度地图时,map.centerAnd ...

  6. Go 测试单个方法

    1.目录 gotest.go package mytest import ( "errors" ) func Division(a, b float64) (float64, er ...

  7. 利用maven开发springMVC项目(二)——框架配置

    申明:主要内容来源于大神博客(使用IntelliJ IDEA开发SpringMVC网站(二)框架配置),我只是用eclipse自己练习使用,记录下来也只是为了学习使用,没有任何的商业用途,侵权必删. ...

  8. 算法学习记录-查找——平衡二叉树(AVL)

    排序二叉树对于我们寻找无序序列中的元素的效率有了大大的提高.查找的最差情况是树的高度.这里就有问题了,将无序数列转化为 二叉排序树的时候,树的结构是非常依赖无序序列的顺序,这样会出现极端的情况. [如 ...

  9. ios开发者较为好用的工具

    移动应用世界发生了巨大的变化,无论是在风格上还是在市场竞争上,消费者意识都推动了移动应用开发公司的崛起. 新的应用以及新的功能的出现 Apple IOS是为用户提供最新工具和升级的平台之一,它为iPh ...

  10. 轻量ORM-SqlRepoEx (十三)最佳实践

    ORM-SqlRepoEx 是 .Net平台下兼容.NET Standard 2.0,一个实现以Lambda表达式转转换标准SQL语句,使用强类型操作数据的轻量级ORM工具,在减少魔法字串同时,通过灵 ...