Hadoop是一个利用大规模计算机集群,可处理大量数据的分布式并行框架。
Hadoop 官网
Hadoop的核心设计包括HDFS和MapReduce。

HDFS

HDFS(Hadoop Distributed File System)是一种分布式文件系统。
主要特点:1.高容错性;2.高吞吐量访问;3.线性扩展(扩充容量只是增加DataNode数量,可在不停止系统的情况下做扩展)
HDFS架构图:

一篇优秀的介绍HDFS原理的blog:HDFS的运行原理

MapReduce

MapReduce是一种分布式计算框架,被用于并行计算海量数据。其核心步骤包括Map(任务处理)和Reduce(结果汇总)两部分。

上图来自知乎用户流通回答。用于海量处理的计算机分为两种,一种是Master,负责调度;另一种是Worker,包括Map和Reduce,Map将数据处理完毕后,将结果传送给Reduce汇总,如上图。

Pig

Pig是构建在MapReduce之上的一种SQL-like的高级查询语言。

Hive

Hive是构建在Hadoop集群之上的数据仓库应用,可以将结构化的数据文件映射为一张数据库表,其提供了SQL-like的HQL作为数据访问接口。

介绍Hive的一篇blog:hive介绍

Mahout

Mahout是一个分布式机器学习算法集合。包括分布式协调过滤的实现,分类和聚类等。是一种很强大的数据挖掘工具。
介绍Mahout的blog:Mahout学习

HBase

HBase是一种构建在HDFS之上的分布式、面向列的key-value存储系统(可以称为key-value数据库)。用于解决Hadoop只能批量处理,并且以顺序方式访问数据的问题。HBase提供快速随机访问海量结构化数据。
HBase教程

Sqoop

Sqoop是一种用于Hadoop与传统数据库(如Mysql)之间进行数据传递的工具。

Flume

Flume,日志系统,是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。

Chukwa

类似于Flume,另一种Hadoop日志系统。有篇blog比较了hadoop的一些日志系统:开源日志系统比较:scribe、chukwa、kafka、flume

Hadoop中重要概念简要总结的更多相关文章

  1. Hadoop中的各种排序

    本篇博客是金子在学习hadoop过程中的笔记的整理,不论看别人写的怎么好,还是自己边学边做笔记最好了. 1:shuffle阶段的排序(部分排序) shuffle阶段的排序可以理解成两部分,一个是对sp ...

  2. hadoop中Text类 与 java中String类的区别

    hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的 ...

  3. Hadoop中Writable类之二

    1.ASCII.Unicode.UFT-8 在看Text类型的时候,里面出现了上面三种编码,先看看这三种编码: ASCII是基于拉丁字母的一套电脑编码系统.它主要用于显示现代英语和其他西欧语言.它是现 ...

  4. 浅析 Hadoop 中的数据倾斜

    转自:http://my.oschina.net/leejun2005/blog/100922 最近几次被问到关于数据倾斜的问题,这里找了些资料也结合一些自己的理解. 在并行计算中我们总希望分配的每一 ...

  5. 【转帖】Hadoop — HDFS的概念、原理及基本操作

    Hadoop — HDFS的概念.原理及基本操作 https://www.cnblogs.com/swordfall/p/8709025.html 分类: Hadoop undefined 1. HD ...

  6. 在HADOOP中使用MRUNIT进行单元测试

    在HADOOP中使用MRUNIT进行单元测试 前提 1. 了解JUnit4.x的使用. 2. 了解Mock的概念在单元测试中的应用. 3. 了解Hadoop中MapReduce的编程模型. 如果您对J ...

  7. Hadoop 中HDFS、MapReduce体系结构

    在网络环境方面,作为分布式系统,Hadoop基于TCP/IP进行节点间的通信和传输. 在数据传输方面,广泛应用HTTP实现. 在监控.通知方面,Hadoop等分布式大数据软件则广泛使用异步消息队列等机 ...

  8. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  9. Hadoop中客户端和服务器端的方法调用过程

    1.Java动态代理实例 Java 动态代理一个简单的demo:(用以对比Hadoop中的动态代理) Hello接口: public interface Hello { void sayHello(S ...

随机推荐

  1. bootsrap+jquery+组件项目引入文件的常见报错

    做一个项目的时候 ,控制台总是会出现各种bug,其实不用慌张,终结起来也就几种类型的错误,在开发中每次遇到错误都善于总结,下次在看到就会胸有成竹知道是什么情况了,以下是在开发过程中总结的一些错误以及错 ...

  2. nil和Nil和NULL的判断

    ,nil和Nil和NULL的判断 开 发过程中,我们通过http请求,后台返回json数据,而有时数据里某一字段的值为null-,然后我们把此值赋值给 NSArray,NSdictionary,或是N ...

  3. 配置cordova的android开发环境(无android studio)

    原文:配置cordova的android开发环境(无android studio) 趁元旦放假想试一下cordova,不想安装庞大的android studio,所以想最小化安装,居然花了一整天的时间 ...

  4. 实现在 .net 中使用 HttpClient 下载文件时显示进度

    在 .net framework 中,要实现下载文件并显示进度的话,最简单的做法是使用 WebClient 类.订阅 DownloadProgressChanged 事件就行了. 但是很可惜,WebC ...

  5. RabbitMQ及其.NET客户端——几个小例子

    一.简单生产者-消费者(使用direct交换器) 1.生产者 var factory = new ConnectionFactory();//实例化一个工厂 factory.HostName = &q ...

  6. Kafka Offset 1

    Kafka Offset Storage   1.概述 目前,Kafka 官网最新版[0.10.1.1],已默认将消费的 offset 迁入到了 Kafka 一个名为 __consumer_offse ...

  7. Visual Studio Code同时debug多种代码的方式

    今天看了一下,猜应该是configurations里面多写一个就行,试了下,真的可以同时debug Python和Go代码. 可以打断点.单步执行Python和Go代码. launch.json 如下 ...

  8. twemproxy分片处理原理--剖析twemproxy代码正编

    twemproxy在redis上能处理多命令流程只有mset,mget,del的命令,例如mset的话是mset k1 v1 k2 v2 k3 k3,mget的话是mget k1 k2 k3,del的 ...

  9. libuv 中文编程指南

    最近看了一些有关 libuv 的东西,另外复习了一些与同步.异步.阻塞.非阻塞,异步IO(aio)的东西, 算是技术积累吧,等有时间了整理出一个完整的文档出来,希望在今后的编程中用到. 不多说了,本文 ...

  10. string操作

    常用的功能测试: #! -*- coding:utf-8 -*- import string s = 'Yes! This is a string' print '原字符串:' + s print ' ...