hadoop三大核心组件(hadoop三大核心组件的关系)
本篇文章给大家谈谈hadoop三大核心组件,以及hadoop三大核心组件的关系对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
大数据中Hadoop的核心技术是什么?
Hadoop核心架构,分为四个模块:
1、Hadoop通用:提供Hadoop模块所需要的Java类库和工具派燃。
2、Hadoop YARN:提供任务调度和集群资源管理功能。
3、Hadoop HDFS:分布式文件系统,提供高吞吐量的应用程序尘哗虚数据访问方式。
4、Hadoop MapReduce:大数据离线计算引擎,用于大规模数据集的并行芦尘处理。
特点:
Hadoop的高可靠性、高扩展性、高效性、高容错性,是Hadoop的优势所在,在十多年的发展历程当中,Hadoop依然被行业认可,占据着重要的市场地位。
Hadoop在大数据技术框架当中的地位重要,学大数据必学Hadoop,还要对Hadoop核心技术框架掌握扎实才行。
大数据|Hadoop简介及两大功能三大核心组件(二)
一、为什么需要hadoop?
在数据量很大的情况下,单机的处理能力无法胜任,必须采用分布式集群的方式进行处理,而用分布式集群的方式处理数据,实现的复杂度呈级数增加。所以,在海虚纯带量数据处理的需求下,一个通用的分布式数据处理技术框架能大大差芦降低应用开发难点和减少工作量。
我们先来看这么一个例子:我们要从一个用户使用app的日志数据中统计每个用户搜索了哪些关键词,这个日志文件有21G大,而我们的一个服务器只有8G内存,很显然一台服务器无法干这活。那么我们的处理方案应该是这样,见图一:
从图一我们知道,要顺利完成这么一个裤闭集群工作,它存在几个问题:
要我们自己编写一个程序来处理以上的问题是极其复杂的,我曾经写过一个脚本完成“如何分发业务应用到集群的各台服务器上”这个问题,复杂度也是不小的。
而hadoop却可以帮助我们处理上面的所有问题,我们只需要编写我们的业务程序即可。
二、hadoop是什么?
hadoop是用于处理(运算分析)海量数据的技术平台,并且是采用分布式集群的方式。
hadoop有两大功能:
hadoop三大核心组件:
hadoop两大使用角度:
[img]Hadoop三大组件
hadoop三大组件 mapreduce 分布式运算框架 yarn 任务调度平台 hdfs 分布式文件系统
1.HDFS数据存放策略:分块存储+副扰皮本存放。
2.数据拓扑结构(即数据备份):默认存放3份,可以通过修改配置文件hdfs-site.xml修改备份数量,如果本机在集群中,第一份就会存放到本节点即本机上,如果不在集群中,就通过负载均衡存放到一个相应的随机节点上,第二份存放在同机柜的不同节点上,第三份存放在不同机柜的某个节点上。
3.数据查找:就近原则,现在本节点上查找,再从本机柜上查找,最后再去不同机柜上查找。
4.单点故障:Hadoop1中,一个集群只有NameNode,一旦NameNode宕机,整个集群就无法使用。
5.RPC:(Remote-Procedure-Call远程过程调用)RPC是hadoop构建的基础,一种协议,通过网络从远程计算机程序上请求服务,采用client/sever客户机/服务机模式,客户端发动请求结果返回给客户端而不是服务端。
6.安答迹装模式:NameNode启动时会进入该模式进行检测,检查数据块的完整性,处于该模式下的集群无法对HDFS进行操作,可以手动离开安全模式
hadoop dfsadmin -saftmode leave 推出安全模式(enter进入安全模式)
7.负载均衡:让DataNode处于均很状态,调整数据块,DataNode的工作任务等,例如:现有一个任务要分配给从节点运行,但是有些slave内存比较小,有些内存比较大,又有些slave正在执行别的任务,有些事空闲的,为了让各个slave既要饱和状态又要性能最好,就需要调整;再例如:原本有8个子节点,现在扩充了2个子节点,原先的8个子节点都要数据存储,也有相应的任务需要执行,而后加的2个子节点是空的,此时也需要负载均衡进行重新分配数据的存储和任务的执行。手动启动该机制运行:
$HADOOP_HOME/sbin/start-balancer.sh
8.机架感知:机架之间的交互用机架感知来进行。机架之间的通信是通过一些交换机,路由器,光纤等进行通信的,需要通过机架感知来交互。不同机架之间相互访问网络耗费较大且延迟也较高,所以理想状态下要查找数据刚刚好就在本机上,就不用耗费资源查找了,就需要通过机架感知。大型hadoop集群通过机架形式组织,而且同一机架上不同节点间的网络状况比不同机架之间清李并的更为理想。
9.心跳机制:Hadoop是主从结构,即master/slave结构,master有NameNode,ResourceManager,SecondaryManager;slave有DataNode,NodeManager。master启动时会启动一个ipc服务(Inner-Process-Communication,通信间进程),等待slave连接。slave启动时,会主动连接ipc服务,并且每隔3秒连接一次master,这就是“心跳”。slave通过心跳机制汇报自己的状态,job完成情况等给master,同事master也通过心跳机制向slave下达命令,分配任务。同样的,ResourceManager和NodeManager之间也通过心跳机制进行交互。如果master长时间没有收到slave的心跳,那么master就认为该slave宕机了,如果slave宕机了,master就会把slave的数据通过负载均衡机制分配给其他slave上,正在执行的任务也会被作废,重新分配,重新执行。
10.HA机制:High Availablity高可用性,H2中用于结局NameNode的单点故障问题。通过配置Active/Standby两个NameNode解决热备份问题。active NN对外提供服务,standby NN只做备份,active NN将数据写入共享存储系统(NFS-NetWorkSystem,QJM,BooKeeper等)中而standby NN监听,一旦有新数据写入standby NN会读取这些数据写入自己的内存,保证和active NN保持同步,当active NN发生故障,standby NN可以立即顶替。每个节点上都有一个zookeeper。DN不断向active NN 和standby NN发送心跳,zookeeper会检测2个NN,active NN和standby NN通过共享存储系统保持一致,当zookeeper监测到active NN出现故障时,会立即通过故障转移控制器切换standby NN为激活状态。
注意:SecondaryNameNode不是HA,只是阶段性合并edits和fsimage,用以缩短NN启动的时间,NN失效时SecondaryNN不能立即提供服务,而且也不能保证数据和NN的一致性。
hadoop三大组件是什么?
目前开源局源hadoop只包含hdfs,mr,和yarn,yarn是hadoop2新增组件。
hdfs是hadoop分布式文件系统,主要采用多备份方式存储文件,可以对接hive和hbase等产品并存储对应数据。
mapreduce是大数据处理并行框架,用户可以编写自己的程序调用mr框架并行的处理大数据,在调用过程中可以调整m和r的数目。不过总的来说编程相对复杂,因此诞生了hive。
yarn作为新生控件,主要管理hadoop各个模块运行过程中的任务调度,目前主前兆要有公平调度与容量调度两种模型。如果需要其他组件,需要单独下载安装。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。
充分利用集群的威力进雹悔让行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。
hadoop作用
1.hadoop有三个主要的核心组件:HDFS(分布式文件存储)、MAPREDUCE(分布式的计算)、YARN(资源调度),现在云计算包括大数据和虚拟化进行支撑。
在HADOOP(hdfs、MAPREDUCE、yarn)大数据处理技术框架,擅长离线数据分析.
Zookeeper 分布式协调服务基础组件,Hbase 分布式海量数据库,离线分析和在线业务处理。
Hive sql 数据仓库工具,使用方便,功能丰富,基于MR延迟大,可以方便对数据的分析,并且数据的处理可以自定义方法进行操作,简单方便。
Sqoop数据导入导出工具,将数据从数据导入Hive,将Hive导入数据库等操作液空侍。
Flume数据采集框架,可以从多种源读取数据。
Azkaban对操作进行管理,比如定时脚本执行,有图形化界面,上传job简单,只需要将脚本打成bao,可直接上传。
2.hadoop的可以做离散日志分析,一般流程是:
将web中的数据取过来【通过flume】,然后通过预处理【mapreduce,一般只是使用map就可以了】,就是将数据中没有用处的数据去除掉,将数据转换【比如说时间的格式,Agent的组合】,并将数据进行处理之后以固定格式输出,由Hive处理,Hive是作用是将数据转换出一个表,RTL就是写SQL的一个过程,将数据进行分析,然后将数据报表统计,这个时候使用的是pig数据分析【hive一般作为库,pig做分析,我没有使用pig,因为感觉还没有hive的HQL处理方便】,最后将含金量最大的数据放入到mysql中,然后将mysql中的数据变为可视图化的工具。
推荐的使用:当我们浏览一各网页的时候,将数据的值值传递给后台保存到亏枣log中,后台将数据收集起来,hadoop中的fiume可以将数据拿到放入到HDFS中,原始的数据进行预处理,然后使用HIVE将数据变为表,进行数据的分析,将有价值的数据放入到mysql,作为推荐使用,这个一般是商城,数据的来源也是可以通过多种方式的,比如说隐形图片、js、日志等都可以作为采集数据的来源。
3.hadoop中的HDFS有两个重要的角色:NameNode、datanode,Yarn有两个主要的主角:ResourceManager和nodeManager.
4.分布式:使用多个节点协同完成一项或者多项业务功能的系统叫做分布式系统,分布式一般使用多个节点组成,包括主节点和从节点,进闹吵行分析
5.mapreduce:是使用较少的代码,完成对海量数据的处理,比如wordCount,统计单词的个数。
实现思想:将单词一个一个的遍历,然后将单词加1处理,但是这是集群,那么就每个节点计算自己节点的数据,然后最后交给一个统计的程序完成就可以了,最后将单词和结果输出。
关于hadoop三大核心组件和hadoop三大核心组件的关系的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。