Hadoop--初识Hadoop

什么是Hadoop?

搞什么东西之前,第一步是要知道What(是什么),然后是Why(为什么),最后才是How(怎么做)。但很多开发的朋友在做了多年项目以后,都习惯是先How,然后What,最后才是Why,这样只会让自己变得浮躁,同时往往会将技术误用于不适合的场景。

Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。

MapReduce从它名字上来看就大致可以看出个缘由,两个动词Map和Reduce,“Map(展开)”就是将一个任务分解成为多个任务,“Reduce”就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。这不是什么新思想,其实在前面提到的多线程,多任务的设计就可以找到这种思想的影子。不论是现实社会,还是在程序设计中,一项工作往往可以被拆分成为多个任务,任务之间的关系可以分为两种:一种是不相关的任务,可以并行执行;另一种是任务之间有相互的依赖,先后顺序不能够颠倒,这类任务是无法并行处理的。回到大学时期,教授上课时让大家去分析关键路径,无非就是找最省时的任务分解执行方式。在分布式系统中,机器集群就可以看作硬件资源池,将并行的任务拆分,然后交由每一个空闲机器资源去处理,能够极大地提高计算效率,同时这种资源无关性,对于计算集群的扩展无疑提供了最好的设计保证。(其实我一直认为Hadoop的卡通图标不应该是一个小象,应该是蚂蚁,分布式计算就好比蚂蚁吃大象,廉价的机器群可以匹敌任何高性能的计算机,纵向扩展的曲线始终敌不过横向扩展的斜线)。任务分解处理以后,那就需要将处理以后的结果再汇总起来,这就是Reduce要做的工作。

 

Hadoop解决两个问题海量数据存储、海量数据分析
提供了一个可靠的共享存储和分析系统,HDFS(Hadoop Distributed File System)实现存储,MapReduce实现分析处理。这两块是Hadoop的核心

 

Hadoop具有最大化利用内存、最大化利用磁盘、最大化利用CPU的特点。

Hbase:nosql数据库,最大化利用内存。

HDFS:架构设计原则(最大化利用磁盘):
    Block(文件块):一个文件分块默认64M。
    NameNode:保存文件系统的目录信息,读取信息。数据节点很多时,容易成为系统的瓶颈,避免这个问题,实现NameNode一般都保存到内存中,同事持久化一部分信息在磁盘上,以备数据丢失。
    DataNode:用于存储Block。
    HDFS的HA策略:2.x开始hadoop支持namenode的active-standy模式,宕机时standy切换成active模式为整个应用提供服务。

 

MapReduce:
最大化利用CPU,分析处理大规模的数据集

通过图片可以简单了解,将同一操作,放在相当于多台处理器上并行执行,每个处理器执行1部分执行后,在将结果汇总在一起,这样减少了很多的时间。

 

 

 

 

 


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之TextView属性详解

android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。androi…

Python 列表解析

列表解析 列表解析总共有两种形式: 1. [i for i in range(k) if condition]:此时if起条件判断作用,满足条件的,将被返回成为最终生成的列表的一员。 2. [i if condition else exp for exp]:此时if...else被用来赋值&am…

VS2019编译 当前最新版chromium

VS2019编译 当前最新版chromium 之前编译过webrtc和chromium, 由于长时间没用,被我删除了, 最近在最新版本的google浏览器上遇到了播放器兼容性问题,老版本的google浏览器是没问题,IE, 火狐浏览器也没问题&#xff0…

37signals为何砍掉中层?个人点评,高素质人才队伍工作,靠的是全体发挥综合能力,而不是靠......

为什么80%的码农都做不了架构师?>>> 37signals为何砍掉中层? 分享到 本文来源于:中欧商业评论 作者:潘芸 发表于:2013-08-21 11:09:41 http://www.cyzone.cn/a/20130821/244571.html 37signals有多位程序员&#…

k-means k均值聚类的弱点/缺点

Similar to other algorithm, K-mean clustering has many weaknesses: 1 When the numbers of data are not so many, initial grouping will determine the cluster significantly. 当数据数量不是足够大时,初始化分组很大程度上决定了聚类,影响聚类…

Codeforces 360E 贪心 最短路

题意及思路&#xff1a;https://blog.csdn.net/huanghongxun/article/details/49846927 在假设所有边都是最大值的情况下&#xff0c;如果第一个人能比第二个人先到&#xff0c;那就缩短这条边。 代码&#xff1a; #include <bits/stdc.h> #define LL long long using na…

jni编译h文件

1.生成 class文件 到原文件目录&#xff08;*为java文件名称&#xff09; javac *.java 2.生成jni.h 到java目录&#xff08;*为java文件里面的类名称&#xff09; javah -jni com.example.widget.* 3.jse13 版本生成jni.h 到原文件目录&#xff08;*为java文件名称&#xff…

事件相关js函数

<script type"text/javascript">//功能:停止事件冒泡 function stopBubble(e) {//如果提供了事件对象&#xff0c;则这是一个非IE浏览器 if (e && e.stopPropagation)//因此它支持W3C的stopPropagation()方法 e.stop…

java嵌套循环

嵌套循环&#xff1a;循环里套循环 假设外循环的循环次数是m次,内循环的循环次数是n次&#xff0c;那么内层循环的循环次数需要 m * n次。 Eg&#xff1a;利用for循环语句的嵌套打印出乘法口诀表 class break1 { public static void main(String[] args) { for(int i1;i<10;…

计算收益复利的小例子

一个计算收益复利的小例子&#xff0c; 用c语言简单编程&#xff0c; 如 test 30 20 40&#xff1b; 30以万为单位&#xff0c;20是年收益百分比&#xff0c;40是年数。 #include <stdio.h> #include <stdlib.h>#define YEAR_GET_TYPE 0 // 年测试类型…

uva 10026 Shoemaker's Problem(排序)

题目连接&#xff1b;10026 Shoemakers Problem 题目大意&#xff1a;有一个鞋匠接了n双要修的鞋子&#xff0c; 修每双鞋需要d天&#xff0c;每推迟一天修将亏损val元&#xff0c;问按什么样的顺序修鞋可以保证损失最少&#xff0c;如果有多种情况输出字典序最小的。 解题思路…

ExtAspNet学习-利用AppBox框架快速创建项目(五)—完成项目含源代码

我们前边四个部分已经完成了框架需要的基础配置&#xff0c; 现在我们来完成项目 1、Subsonic 配置&#xff0c;首先在OraSurvey.DAO中添加App.config配置相关信息 View Code 1 <?xml version"1.0" encoding"utf-8" ?> 2 <configuration> 3…

坦克大战系列6-API常用函数说明2

前言 本篇主要介绍RobocodeAPI中的各种事件函数的说明&#xff0c;便于使用函数时有更清晰的思路。 子弹事件函数 onBulletHit() 当击中对方时 public void onBulletHit(BulletHitEvent event) 当你的子弹击中对方时就会调用这个方法。如果你想在子弹击中对方时作处理的话&…

linux+apache+mysql+php

linuxapachemysqlphp设置mysqll测试1网站注意&#xff1a;在安装或者测试的时候出现乱码的话&#xff0c;可以修改浏览器的编码一项将其改为适合的编码输入站点http://服务器地址/ecshop url会自动跳转到服务器地址/ecshop/install/index.php安装过程中会提示目录文件不可写&am…

模拟纳指stock的小例子

一个模拟纳指stock的小例子&#xff1a; #include <stdio.h> #include <stdlib.h>#define MAX_YEAR 100 #define ONE_YEAR_DAYS 240#define BEGIN_YUAN 10000 #define ONE_ADD_YUAN 4000 #define ONE_ADD_DAY 20 #define GOLD_FLOW…

android4.0.3 修改启动动画和开机声音

1. Linux 系统启动&#xff0c;出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已经取消加载图片)&#xff1b;2. Android平台启动初始化&#xff0c;出现"A N D R I O D"文字字样画面&#xff1b;3. Android平台图形系统启动&#xff0c;出现含闪动的ANDROID字样…

函数式C代码

代码如下&#xff1a; #include <stdlib.h> #include <stdio.h> typedef char String[32]; typedef FILE* File;typedef struct _Employee {String name;int age;int salary;struct _Employee *next; } *Employee;typedef void (*Callback)(Employee);/* High Orde…

VMWare虚拟机NAT模式静态IP联网配置

使用静态IP&#xff0c;而不选用DHCP的主要原因是避免每次重启计算机后&#xff0c;虚拟机系统的IP发生变化&#xff0c;导致常常需要修改宿主机器远程连接虚拟机服务(例如Mysql) 环境 项目版本号VmwareVmware Workstation Pro 15UbuntuUbuntu 18.04.2 LTS关键配置 虚拟网络编辑…

ffmpeg调整缩放裁剪视频的基础知识(转)

源网址&#xff1a;ffmpeg调整缩放裁剪视频的基础知识 - yongfengnice - 博客园 1. resize and scale video 调整视频的大小和尺寸 1-1.调整视频大小(resize)是改变视频的宽度和高度。 使用-s参数实现&#xff0c;语法&#xff1a;ffmpeg -i input_file -s wxh output_fi…

学习C语言的工具

书籍&#xff1a;《C Primer Plus》 编译器&#xff1a;code::blocks 编辑器: gedit转载于:https://www.cnblogs.com/owenbeta/archive/2012/03/07/2384286.html