Hadoop技术浅析

news2024/11/17 8:44:19

一、什么是Hadoop

Hadoop是一个适合大数据存储和计算的分布式框架

Hadoop广义狭义之分

  • 狭义上Hadoop指Hadoop框架

  • 广义上随着大数据技术的发展,Hadoop也发展成了一个生态圈,包含:

  • Sqoop:Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySql)间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

  • Flume:Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;

  • Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统;

  • Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。

  • Flink:Flink是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。

  • Oozie:Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。

  • Hbase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。

  • Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

  • ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

大数据生态体系

二、Hadoop发展史

1、Lucene框架是Doug Cutting开创的开源软件,用Java书写代码,实现全文搜索功能。Lucene不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)

2、2001年底Lucene称为Apache基金会的的一个子项目。

3、对于海量数据场景,Lucene面对与Google同样的困难,存储数据困难,检索速度慢。

4、为提高Lucene性能Doug Cutting开发出Nutch。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

5、Google发表Haddop思想之源的三篇论文,GFS、Map-Reduce、BigTable,其中公开了部分GFSheMapReduce思想的细节,Doug Cuttin以此为基础,实现了DFS和MapReduce机制,使Nutch性能飙升

6、2005年,Hadoop作为Lucene的子项目—Nutch的一部分正式引入Apache基金会

7、2006年,Map-Reduce和Nutch Distributed File System(NDFS)分别被纳入到Hadoop项目中,Hadoop就此诞生,标志着大数据时代的来临

Hadoop三大发行版本:Apache、Cloudera、Hortonworks。

Apache Hadoop 版本最原始(最基础)的版本

Cloudera Hadoop 在大型互联网企业中用的较多

(1)2008年成立的Cloudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop的商用解决方案,主要是包括支持、咨询服务、培训。

(2)2009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support

(3)CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强。

(4)Cloudera Manager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个Hadoop集群,并对集群的节点及服务进行实时监控。Cloudera Support即是对Hadoop的技术支持。

(5)Cloudera的标价为每年每个节点4000美元。Cloudera开发并贡献了可实时处理大数据的Impala项目。

Hortonworks Hadoop

(1)2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建。

(2)公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop80%的代码。

(3)雅虎工程副总裁、雅虎Hadoop开发团队负责人Eric Baldeschwieler出任Hortonworks的首席执行官。

(4)Hortonworks的主打产品是Hortonworks Data Platform(HDP),也同样是100%开源的产品,HDP除常见的项目外还包括了Ambari,一款开源的安装和管理系统。

(5)HCatalog,一个元数据管理系统,HCatalog现已集成到Facebook开源的Hive中。Hortonworks的Stinger开创性的极大的优化了Hive项目。Hortonworks为入门提供了一个非常好的,易于使用的沙盒。

(6)Hortonworks开发了很多增强特性并提交至核心主干,这使得Apache Hadoop能够在包括Window Server和Windows Azure在内的Microsoft Windows平台上本地运行。定价以集群为基础,每10个节点每年为12500美元。

三、Hadoop优缺点

优点:

1)高可靠性:底层维护多个数据副本,即使Hadoop某个计算单元素或存储出现故障,也不会导致数 据丢失。某个副本丢失以后,可以自动恢复。

2)搞扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。

3)高效性:在MapReduce思想下,Hadoop是并行工作的,以加快任务处理速度。

4)高容错性:能自动将失败的任务重新分配。

5)低成本:与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,Hadoop 是开源的,项目的软件成本因此会大大降低

缺点:

1)不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。

2)无法高效的对大量小文件进行存储。

a.存储大量小文件的话,会占用NameNode大量的内存来存储文件目录和块信息;

b.小文件存储的寻址时间会超过读取时间,违反了HDFS的设计目标

3)不支持并发写入、文件随机修改。

a.一个文件只允许同时有一个写,不允许多线程同时写入;

b.不支持文件的随机修改。

四、Hadoop组成

在Hadoop1.0时代,MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大;

在Hadoop2.0时代,增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算

Hadoop3.0基于JDK 1.8,引入了一些重要的功能和优化,包括HDFS 可擦除编码、多Namenode支持、MR Native Task优化、YARN基于cgroup的内存和磁盘IO隔离、YARN container resizing等。

hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+磁盘,共同处理数据。改变最大的是hdfs,hdfs 通过最近block块计算,根据最近计算原则,本地block块,加入到内存,先计算,通过IO,共享内存计算区域,最后快速形成计算结果,比Spark快10倍。

HDFS:

HDFS是一个分布式的文件系统,适合一次写入,多次读出的场景,且不支持文件内容的修改。适合数据分析,不适合做网盘。

NameNode:管理HDFS的命名空间、配置副本策略、管理数据块信息、处理客户端读写请求

DataNode:存储实际的数据块、执行数据块的读、写操作

Secondary Namenode:辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode,紧急情况下,可辅助回复NameNode(非HA情况下)

MapReduce

一个分布式运算程序的编程框架。其核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并运行在一个Hadoop集群上。

Yarn

Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台。而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。

ResourceManager:处理客户端请求、监控NodeManager、启动或监控ApplicationMaster、资源的分配与调度

NodeManager:管理单个节点的资源、处理来自ResourceManager和ApplicationMaster的命令

ApplicationMaster :数据切分、为应用程序申请资源并分配给内部的任务、任务监控与容错

Container:是Yarn中的资源抽象,封装了某个节点上的多维度资源,内存、CPU、磁盘、网络等

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

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

相关文章

洛谷2月普及组(月赛)

🌼小宇(治愈版) - 刘大拿 - 单曲 - 网易云音乐 OI赛制且难度对标蓝桥杯省赛(😥真难,第三题做了几百年,第四题只敢骗骗分) 花了10块钱🙃 买官网的思路,结果…

linux004之 vi和vim编辑器

vi、vim编辑器简介: 是linux中的文本编辑器,用来在linux系统中查看或编辑文本文件的命令, 相当于windows文本编辑器。 vi和vim的区别, vim是增强版, 功能相比vi是增强了。功能都查不多,用哪个都行&#xff…

数据库高并发和高可用方案

依旧主要参考沈剑大佬的多篇博文,以及数位网友的优秀分享,文末是完整参考。 1、高可用方案(HA,High Availability) 缓存是通过双写和双读主备、或者利用缓存的集群数据同步,故障自动转移来实现的 数据库的读是通过读写分离(MHA&am…

06-PS中的四种蒙版

Photoshop中的蒙版就是遮罩的意思,主要作用就是将其所在的图层,把不同的明暗度转化成相应的透明度。黑色为完全透明,灰色为半透明,白色为完全不透明。添加蒙版有便于灵活修改,不影响图层原貌。PS蒙版有四类&#xff1a…

【状态估计】基于二进制粒子群优化 (BPSO) 求解最佳 PMU优化配置研究【IEEE30、39、57、118节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Mybatis与微服务注册

目录 一,Springboot整合MybatisPlus 创建商品微服务子模块 二,SpringBoot整合Freeamarker 三、SpringBoot整合微服务 &gateway&nginx 整合微服务之商品服务zmall-product 创建并配置网关gateway服务 安装配置SwitchHosts 安装配置Windo…

【大数据hive】hive 函数使用详解

一、前言 在任何一种编程语言中,函数可以说是必不可少的,像mysql、oracle中,提供了很多内置函数,或者通过自定义函数的方式进行定制化使用,而hive作为一门数据分析软件,随着版本的不断更新迭代&#xff0c…

代码随想录第58天(动态规划):● 392.判断子序列 ● 115.不同的子序列

一、判断子序列 题目描述: 思路和想法: 这道题目还是最长公共子序列的拓展,只是这里进行删除的一定是t字符串,当不相等时,dp[i][j] dp[i][j - 1];其余基本一致。当最长公共子序列个数等s.size()时&#x…

Leetcode力扣秋招刷题路-0050

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 50. Pow(x, n) 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 示例 1: 输入:x 2.00000, n 10 输出&am…

N字形变换-力扣6-java

一、题目描述将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读…

大神之路-起始篇 | 第11章.计算机科学导论之【数据压缩】学习笔记

欢迎关注「全栈工程师修炼指南」公众号点击 👇 下方卡片 即可关注我哟!设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习!涉及 企业运维、网络安全、应用开发、物联网、人工智能、大数据 学习知识“ 花开堪折直须折,莫待无花空折…

【深度学习】卷积神经网络

1 卷积神经网络(CNN)可以做什么? 检测任务分类与检索超分辨率重构:将图像训练的更清晰医学任务等无人驾驶人脸识别 2 用GPU:图像处理单元 比CPU块一百倍以上 3 卷积神经网络与传统神经网络的区别 传统神经网络&…

从证券软件开发到大数据开发,薪资涨幅一倍多,我经历了什么?

点击上方 "大数据肌肉猿"关注, 星标一起成长点击下方链接,进入高质量学习交流群今日更新| 1052个转型案例分享-大数据交流群分享学习群一位同学的大数据转型经历,他17年毕业后培训了几个月去了杭州一家证券公司做外包,用的是古老的…

有限元分析学习一

系列文章目录 有限元分析学习一 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、有限元方法的简单介绍1.1 有限元的基础概念1.2 有限元软件发展历史1.3 有限元软件二、弹性力学的简单介绍2.1.…

【Spring】注解实现IOC操作,你理解了吗?

作者:狮子也疯狂 专栏:《spring开发》 坚持做好每一步,幸运之神自然会驾凌在你的身上 专栏推荐:写文章刚刚起步,各个专栏的知识点后续会补充完善,不断更新好文,希望大 家支持一下。 专栏名字El…

jetson nano(ubuntu)安装ninja

文章目录安装环境安装环境 jetson nano 系统:4.6.1 安装re2c apt-get install re2c检查re2c是否安装成功 re2c --version ![在这里插入图片描述](https://img-blog.csdnimg.cn/847c19f15c2646bda44f6ae73b78509a.png#pic_center)下载ninja源代码 git clone https:/…

和在字节上班的兄弟聊过后,才知道原来年薪40W的测试有这么多?

最近脉脉职言区有一条讨论火了: 哪家互联网公司薪资最‘厉害’? 下面的评论多为字节跳动,还炸出了很多年薪40W的测试工程师 我只想问一句,现在的测试都这么有钱了吗? 前几天还有朋友说,从腾讯跳槽去了字…

(干货教程)在VSCode并使用chatgtp插件编写CC++语言程序

(干货教程)在VSCode并使用chatgtp插件编写CC语言程序 下载并安装VSCODE 第1步,下载VSCODE https://code.visualstudio.com/Download 第2步,安装VSCODE 安装过程较简单,这里省略。 安装好后效果如图&#xff1a…

(C语言)数据的存储

问:1. 数据类型有哪五大类?2. 数据类型的作用是什么与什么?3. 整型又可以具体分为哪五个?为什么字符char也归属于整型?4. 浮点型又可以具体分为哪两类?5. 构造类型就是什么?具体分为哪四类&…

2.4.8 PCIe——物理逻辑层——REFCLK

一、概述 pcie的参考时钟由板级输入,提供给IP内PHY层的PLL使用,由PLL产生core_clk和pipe_clk。 二、REFCLK产生方式 Serdes 所用时钟由 PHY 模块内的PLL生成,PLL的参考时钟可以由common clock(外部背板提供)、separ…