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. Django F对象的使用

    概念 class FF()是代表模型字段的值,也就是说对于一些特殊的字段的操作,我们不需要用Python把数据先取到内存中,然后操作,在存储到db中了. 场景 例1:我们有个统计点击量的字段,每次更新 ...

  2. POJ3041 Asteroids(匈牙利算法)

    嘟嘟嘟 虽然我已经会网络流了,但是还是学了一个匈牙利算法. --就跟我会线段树,但还是学了树状数组一样. 其实匈牙利算法挺暴力的.简单来说就是先贪心匹配,然后如果左部点\(i\)匹配不上了,就尝试更改 ...

  3. controller中的路径明明书写正确,浏览器中访问的url也拼接正确,但报404

    Bug:controller中的路径明明书写正确,浏览器中访问的url也拼接正确,但报404 原因一:由于路由地址对应的处理方法存在同名而造成的,此时应该检查controller的方法们,看看有没有同 ...

  4. Odoo中的向导

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9281320.html 一:向导及其效果 向导类似于弹窗,用于接收用户的输入,然后作出相应的处理. 二:定义向导 ...

  5. CentOS7图文安装教程

    CentOS 7下载: CentOS 7只提供64位版本,虽然有不少国内镜像节点,不过还是觉得通过BT下载是不错的选择.镜像大小6.7G,联通20M光纤下载,不到小时.以下是中国大陆的下载地址列表: ...

  6. Dubbo实践(四)设计模式

    Dubbo框架在初始化和通信过程中使用了多种设计模式,可灵活控制类加载.权限控制等功能. 工厂模式 Provider在export服务时,会调用ServiceConfig的export方法.Servi ...

  7. 黑少微服务商店之Iron Cloud微服务开发云

    近日,由黑少微服务研发团队推出的Iron Cloud微服务开发云已经正式对外提供服务,这是国内第一家基于云端操作的微服务专业开发工具. Iron Cloud 微服务开发云(www.ironz.com) ...

  8. 【星云测试】开发者测试(4)-采用精准测试工具对dubbo微服务应用进行测试

    简介:本文主要目的是把现今主流的Dubbo框架项目和精准测试进行对接,通过精准测试的数据穿透.数据采集.测试用例与代码的双向追溯.数据分析等一系列精准测试的特有功能达到对项目质量的保证. 本次环境搭建 ...

  9. Kubernetes(一)--简介

    一.什么是kubernetes(K8s)? Kubernetes作为容器编排生态圈中重要一员,是Google大规模容器管理系统borg的开源版本实现,吸收借鉴了google过去十年间在生产环境上所学到 ...

  10. Objective-C 之深拷贝和浅拷贝

    3月箴言 人的思想是了不起的,只要专注于某一项事业,就一定会做出使自己感到吃惊的成绩来.—— 马克·吐温 1.iOS中关于深拷贝和浅拷贝的概念 浅拷贝:浅拷贝并不拷贝对象本身,只是对指向对象的指针进行 ...