《Hadoop基础教程》读后感

2023-05-16

  Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身。

         《Hadoop基础教程》是我读的第一本Hadoop书籍,当然在线只能试读第一章,不过对Hadoop历史、核心技术和应用场景有了初步了解。

 

  • Hadoop历史

        雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

        随后在2003年Google发表了一篇技术学术论文谷歌文件系统(GFS)。GFS也就是google File System,google公司为了存储海量搜索数据而设计的专用文件系统。

        2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS。

        2004年Google又发表了一篇技术学术论文MapReduce。MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行分析运算。

        2005年Doug Cutting又基于MapReduce,在Nutch搜索引擎实现了该功能。

        2006年,Yahoo雇用了Doug Cutting,Doug Cutting将NDFS和MapReduce升级命名为Hadoop,Yahoo开建了一个独立的团队给Goug Cutting专门研究发展Hadoop。

        不得不说Google和Yahoo对Hadoop的贡献功不可没。

 

  • Hadoop核心

        Hadoop的核心就是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,Hadoop旗下有很多经典子项目,比如HBase、Hive等,这些都是基于HDFS和MapReduce发展出来的。要想了解Hadoop,就必须知道HDFS和MapReduce是什么。

 

  • HDFS

HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。

 

HDFS的设计特点是:

1、大数据文件,非常适合上T级别的大文件或者一堆大数据文件的存储,如果文件只有几个G甚至更小就没啥意思了。

2、文件分块存储,HDFS会将一个完整的大文件平均分块存储到不同计算器上,它的意义在于读取文件时可以同时从多个主机取不同区块的文件,多主机读取比单主机读取效率要高得多得都。

3、流式数据访问,一次写入多次读写,这种模式跟传统文件不同,它不支持动态改变文件内容,而是要求让文件一次写入就不做变化,要变化也只能在文件末添加内容。

4、廉价硬件,HDFS可以应用在普通PC机上,这种机制能够让给一些公司用几十台廉价的计算机就可以撑起一个大数据集群。

5、硬件故障,HDFS认为所有计算机都可能会出问题,为了防止某个主机失效读取不到该主机的块文件,它将同一个文件块副本分配到其它某几个主机上,如果其中一台主机失效,可以迅速找另一块副本取文件。

 

HDFS的关键元素:

Block:将一个文件进行分块,通常是64M。

NameNode:保存整个文件系统的目录信息、文件信息及分块信息,这是由唯一一台主机专门保存,当然这台主机如果出错,NameNode就失效了。在Hadoop2.*开始支持activity-standy模式----如果主NameNode失效,启动备用主机运行NameNode。

DataNode:分布在廉价的计算机上,用于存储Block块文件。


 

 

  • MapReduce

通俗说MapReduce是一套从海量·源数据提取分析元素最后返回结果集的编程模型,将文件分布式存储到硬盘是第一步,而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。

 

下面以一个计算海量数据最大值为例:一个银行有上亿储户,银行希望找到存储金额最高的金额是多少,按照传统的计算方式,我们会这样:

Java代码   收藏代码
  1. Long moneys[] ...  
  2. Long max = 0L;  
  3. for(int i=0;i<moneys.length;i++){  
  4.   if(moneys[i]>max){  
  5.     max = moneys[i];  
  6.   }  
  7. }  

 

 如果计算的数组长度少的话,这样实现是不会有问题的,还是面对海量数据的时候就会有问题。

MapReduce会这样做:首先数字是分布存储在不同块中的,以某几个块为一个Map,计算出Map中最大的值,然后将每个Map中的最大值做Reduce操作,Reduce再取最大值给用户。


        MapReduce的基本原理就是:将大的数据分析分成小块逐个分析,最后再将提取出来的数据汇总分析,最终获得我们想要的内容。当然怎么分块分析,怎么做Reduce操作非常复杂,Hadoop已经提供了数据分析的实现,我们只需要编写简单的需求命令即可达成我们想要的数据。

 

 

  • 总结

        总的来说Hadoop适合应用于大数据存储和大数据分析的应用,适合于服务器几千台到几万台的集群运行,支持PB级的存储容量。

        Hadoop典型应用有:搜索、日志处理、推荐系统、数据分析、视频图像分析、数据保存等。

        但要知道,Hadoop的使用范围远小于SQL或Python之类的脚本语言,所以不要盲目使用Hadoop,看完这篇试读文章,我知道Hadoop不适用于我们的项目。不过Hadoop作为大数据的热门词,我觉得一个狂热的编程爱好者值得去学习了解,或许你下一个归宿就需要Hadoop人才,不是吗。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《Hadoop基础教程》读后感 的相关文章

随机推荐

  • C语言| char[ ]的输出 和结束符 ‘\0‘

    输出char arr 逐个字符输入输出 c 整个字符串一次输入输出 s printf 34 61 61 61 61 61 61 start 61 61 61 61 61 61 n n 34 char arr 61 39 1 39 39 2
  • python中的isdigit()函数

    s为字符串 s isalnum 所有字符都是数字或者字母 s isalpha 所有字符都是字母 s isdigit 所有字符都是数字 s islower 所有字符都是小写 s isupper 所有字符都是大写 s istitle 所有单词都
  • 【WiFi模块ASP-ESP8266】理论讲解与串口助手验证(超详解)

    大家好 xff0c 我是小政 xff0c 一名自动化专业的在校学生 最近在学习利用opencv进行环境监测 xff0c 需要将获取到的数据通过通信协议传输给stm32 我选择使用wifi模块进行无线通信 xff0c 接下来我会将我从入门到掌
  • 【平衡小车制作】(二)电机驱动(超详解)

    大家好 xff0c 我是小政 本篇文章我将针对平衡小车中的电机控制进行详细的讲解 xff0c 驱动一个电机最重要的就是给它一个PWM信号 xff0c PWM的概念 如何驱动电机及通过改变PWM占空比进行电机调速我会在本篇文章中进行详解 让每
  • 【平衡小车制作】(五)位置式PID、直立环与速度环概念(超详解)

    大家好 xff0c 我是小政 本篇文章我将针对位置式PID算法 直立环 速度环等概念进行详细的讲解 xff0c 让每位小伙伴能够对这三个概念有更加清晰的理解 一 PID控制算法 PID控制 xff0c 即为对偏差进行比例 积分和微分控制 由
  • 【平衡小车制作】(七)串级PID调参及平衡成果展示(超详解)

    大家好 xff0c 我是小政 本篇文章我将针对PID调参进行详细的讲解 xff0c 让每位小伙伴能够对比例 积分 微分三个参数如何调节有更加清晰的理解 一 调参步骤 确立机械中值直立环 xff08 内环 xff09 Kp极性 Kp大小 Kd
  • 第七章:总线

    7 1总线概述 总线概述 总线是一组能为多个部件分时共享的公共信息传送线路 共享是指总线上可以挂接多个部件 xff0c 各个部件之间相互交换的信息都可以通过这组公共线路传送 xff1b 分时是指同一时刻总线上只能传送一个部件发送的信息 总线
  • Jetson 系统监视程序Jtop及Jetson基本信息查询

    开启后的界面如下 xff1a 安装Jetson的监视程序 xff1a 了解安装的Jetpack版本是多少 xff1f 了解 GPU 的使用率 xff1f 了解Jetson机器工作在什么模式下 xff1f 了解CPU用了几个 xff1f 散热
  • MVC设计模式

    MVC模式 xff08 Model View Controller xff09 是软件工程中的一种软件架构模式 xff0c 把软件系统分为三个基本部分 xff1a 模型 xff08 Model xff09 视图 xff08 View xff
  • Docker常用基础命令

    目录 1 docker version 查看版本信息 2 docker info 查看docker的一些信息 3 docker search 镜像搜索 4 docker pull 拉取镜像到本地 5 docker push 推送本地的镜像到
  • 硬件基础之变频器&逆变器

    变频器 amp 逆变器工作原理 基本概念直流产生方波思路正弦波产生原理正弦波产生之制作脉冲正弦波产生之滤波 amp 平均 基本概念 逆变器 xff1a 直流电 xff08 DC xff09 转变为交流电 xff08 AC xff09 变频器
  • 硬件基础之STM32最小系统

    STM32 复位电路时钟电路SWD下载电路BOOT电路RTC时钟电源电路 复位电路 STM32为低电平复位 xff0c 上电瞬间电流可视为交流 xff0c 电容导通 xff08 充电过程 xff0c NRST为低电平 xff0c 两个机械周
  • 数据结构常用的结构体定义

    一 顺序表结构体定义 xff1a typedef struct int data maxsize int length Sqlist 二 单链表结构体定义 xff1a typedef struct LNode int data struct
  • Linux基础入门(常用指令总结)

    相信大家对Linux都不陌生 xff0c 本篇文章就详细介绍一些常用的Linux命令 目录 前言 一 Linux是什么 xff1f 二 常用命令 1 cd 切换文件夹 2 ls 查看目录内容 3 mkdir 创建文件夹 4 touch 创建
  • 第7章:OFDM 信道估计与均衡(2)

    第7章 xff08 2 xff09 内容如下 xff1a 一 瑞利衰落信道介绍二 OFDM经过多径衰落信道的误码率分析三 总结 本文对应的完整可运行代码下载地址 xff1a 123kevin456 OFDM 一 瑞利衰落信道介绍 第 xff
  • 阿里云ECS服务器ubuntu18.04图形界面安装配置

    先说一下我用的ECS配置 服务器配置 xff1a 2 vCPU 4 GiB 系统镜像 xff1a ubuntu18 04 xff08 64位 xff09 本文的配置方法在 ubuntu 16 04 上一样适用 1 安装图形化界面 网上一大堆
  • java多线程-进程与线程基础-1

    基本概念 进程 是并发执行的程序在执行过程中分配和管理资源的基本单位 xff0c 是一个动态概念 xff0c 竟争计算机系统资源的基本单位 每一个进程都有一个自己的地址空 间 xff0c 即进程空间或 xff08 虚空间 xff09 进程空
  • 自由度的理解

    研究六轴机械臂的运动学前 xff0c 需要知道机械臂的自由度的定义 xff1a 物体上的任意一个参考点相对基座坐标系O可进行独立自由运动的数量 自由度的计算十分简洁 例如一个物体如正方体 xff0c 取其中心点作为参照点 xff0c 若该参
  • 匿名管道(pipe)和命名管道(mkfifo)

    匿名管道 xff08 pipe xff09 和命名管道 xff08 mkfifo xff09 进程间通信必须通过内核提供的通道 1 匿名管道 匿名管道通过打开的文件描述符来标识的 用于具有亲缘关系间进程之间的通信 int pipe xff0
  • 《Hadoop基础教程》读后感

    Hadoop一直是我想学习的技术 xff0c 正巧最近项目组要做电子商城 xff0c 我就开始研究Hadoop xff0c 虽然最后鉴定Hadoop不适用我们的项目 xff0c 但是我会继续研究下去 xff0c 技多不压身 Hadoop基础