Hadoop系统
Hadoop系统(精选12篇)
Hadoop系统 第1篇
随着电子商务的快速发展,网上商品的种类和数量日益繁杂,顾客面对选择的时候,往往不知道从何抉择,为了解决这一个困惑,推荐系统平台应运而生,目前,推荐系统平台引领了各个搜索型网站,交友软件的好友推荐、美团网网站的热门推荐、购物网站的商品推荐、视频网站的电影推荐、资源网站的优质资源推荐等,这些推荐系统提高各个网站的点击率和销售额,影响着人们的学习、生活、工作。
Hadoop,是大数据技术的核心技术,即分布式系统基础构架,主要有HDFS和Map Reduce两部分组成,它能够实现对大量数据的存储和计算,能够将多台普通或者低性能的服务器组合成分布式的运算集聚。如果我们把Hadoop的这一特性应用到推荐系统,势必能够提高推荐系统的推荐范围和推荐的精准度[1],,克服了目前的推荐系统在空间存储的可扩展性与算法的效率存在缺陷。
2 Hadoop
2.1 HDFS
HDFS即分布式文件系统,由block、namenode和datanode组成,是Hadoop的核心技术之一,主要是超大文件的存储和超高效的访问模式,它可以存储GB、TB的文件,它所存储的数据集既是我们的分析对象,我们可以借助HDFS长时间对这些数据进行分析,它的一个显著的优点就是可以运行在普通的服务器上面,但是它在数据访问时要求高延迟,在存储大量的小文件时,内存可能跟不上要求,目前HDFS只支持单个用户写,无法满足多个用户并行写。
基于HDFS的上述特点,我们对HDFS(分布式文件系统)的遵守的原则如下:
1)访问的透明性:在分布式文件系统中,对于本地文件和远程资源的访问,用户可以通过同样的操作完成;2)位置的透明性:在不改变文件路径的前提下,使用同样的文件命名空间,那么在这种前提下,文件可以重新被定位,在HDFS文件中,我们只使用一个namenode来管理文件系统,我们可以根据block副本的数量来重新复制;3)移动的透明性:这个有namenode的edits中的日记文件对文件的移动、复制,增加因子等变化进行记录,而客户端和客户端程序并不需要改变什么;4)性能的透明性:HDFS一个显著的优点就是能够在普通廉价的服务器上面,它的性能可以参看首页上的benchmark。
2.2 Map Reduce
Map Reduce是Hadoop的核心技术,通过映射和化简来实现大量数据的并行计算,是大数据计算的开发模式和思想方法,先把一个大的问题进行分解成小问题,找出各个小问题的并行处理部分,在根据相关要求写出Map程序,接下来可使用服务器群来执行Map程序[2],每一个服务器可执行Map程序的一个并行小段,对于Map程序的执行结果,通过Reduce程序来实现执行结果的合并,最终,就可以合并出最终的完整结果[3]。例如:你要在一个浏览器中搜索“computer”,可以先通过Map程序找出每一个网页中这个词语的位置,然后在使用Reduce程序获得相应的URL,这样就可以得到最终的搜索结果[4]。
3基于Hadoop的推荐系统的设计
3.1算法模型
以前的推荐系统平台常用的算法模型是最近邻模型;基于矩阵分解的模型;社会网络图模型;Hadoop出现以后,我们把Hadoop构架和推荐系统的算法模型结合,即分布式基于物品的协同过滤算法,算法的主要思想:
1)建立物品的同现矩阵:根据用户的浏览记录,两两一组对浏览记录进行计数,同现矩阵如图1所示。
2)建立用户对物品的评分矩阵:找个用户对某一个物品的评分,评分矩阵如图2:
3)通过对物品同现矩阵和评分矩阵的计算,得出推荐结果,即表达为:同现矩阵*评分矩阵=推荐结果,经过计算得出推荐结果如图3:
4)使用Map Reduce完成最终计算
1使用Map程序,根据用户分组,计算出相应物品的组合列表得,得到评分矩阵;
2使用Map程序,建立相应物品的同现矩阵;
3使用Reduce程序,合并矩阵并计算结果列表。
以上是计算模型,模型本身并复杂,但是面对海量的数据存储时Hadoop就能够发挥它实现大量数据储存和大量数据计算的功能。
3.2推荐系统构架设计
结合算法设计模型,我们把算法设计成如下步骤:
1) 在Application中的Database记录了用户的浏览记录和对某项物品的打分记录;
2) 通过CRON(系统定时器),每隔一段时间,把Database中记录的数据导入到HDFS;
3) 数据导入完成后,系统启动Map Reduce程序,运行推荐系统模型算法;
4) 计算完毕后,从HDFS中导出数据到数据库中。
3.3 Map Reduce程序设计
我们使用Map程序把大任务分解成各个并行的小任务,在依靠Reduce程序进行合并计算[5],在Map Reduce程序设计中我们主要采 用java语言 ,有main.java、frist1.java、frist2. Java和frist3. Java四个主要的程序组成。
1) 启动主任务:main.java ,在主任务中,给出各个分程序的路径;
2) 计算评分矩阵:frist1.java,依据算法模型,根据用户分组的不同,得出各个分组的评分;
3) 计算同现矩阵:frist2. Java;
4) 计算推荐结果:frist3. Java,依据算法模型:推荐结果=同现矩阵*评分矩阵;
3.4 设计的优缺点
基于Hadoop构架的推荐系统能够在大范围内、高效率精准地进行推荐,极大的改变现在推荐系统有限的推荐范围,同时,由于Hadoop的成本并不高,设计成本合理,使用性强,是大数据技术的又一个经典实例。
在Map Reduce程序设计frist3. Java这一步骤的运行过程中,这种程序设计具有明显的缺陷:Hadoop读入顺序不能够随便制定,面对多个节点的Hadoop集群环境,假如有两个输入集,那么输入的顺序有可能发生错误,进而导致产生空指针。这个计算过程,同现矩阵和评分矩阵存储过大,在内存中进行存储和计算,如果矩阵存储量过大,会造成单个节点的存储不足[6]。
4总结
在大数据技术的热潮影响下,各行各业已经受到极大的影响,大数据的关键性技术Hadoop具有较强的应用市场,本文把目前流行的推荐系统平台和Hadoop构建融合在一起,克服了目前的推荐系统在空间存储的可扩展性与算法的效率存在缺陷,它经济适用强,效率高,并且极大地提高了基于分布式计算Hadoop构架能够解决推荐系统的可扩展性问题,对于大数据技术在实际中的应用具有重要的意义。
但是,目前基于Hadoop构架的推荐系统还存在一点的缺陷,由于Hadoop平台中数据的输入顺序无法限定,容易造成数据的混淆,造成误差,在以后Hadoop版本中我们要积极解决这些问题,使Hadoop技术更加成熟和完善。
摘要:高速发展的信息技术和迅速增加的数据,给人们的生活带来困惑,推荐系统(Recommender System)可以从海量的用户浏览信息中,根据用户的特点,选择出特定的内容推荐给用户,推荐系统给用户提供了极大的便捷,但是,目前的推荐系统在空间存储的可扩展性与算法的效率存在缺陷,基于Hadoop构架的推荐系统解决了这一缺陷,它经济适用强,效率高,并且极大的提高了基于分布式计算Hadoop构架能够解决推荐系统的可扩展性问题,同时,对于大数据技术在实际中的应用具有实际意义。
Hadoop系统 第2篇
Hadoop是什么
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
Hadoop优点
Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。
Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。
Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。
Hadoop 还是可伸缩的,能够处理 PB 级数据。
此外,Hadoop 依赖于社区服务,因此它的成本比较低,任何人都可以使用。
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。
hadoop大数据处理的意义
Hadoop系统 第3篇
IDC公司高性能计算研究副总裁Steve Conway表示:“数据密集型计算长期以来都是HPC的一部分,但是采用Hadoop等方法的最新分析方式,如图形分析方式,将促进高性能数据分析的强劲增长,这便是需要HPC的大数据市场。Hadoop工作流加速设备可服务于这个不断融合的大数据HPC市场的技术计算和商业层面,IDC预计该市场将于2018年超过40亿美元。IDC研究显示,29%的HPC站点已经采用了Hadoop。能够提升Hadoop性能和效率的工具将在这个市场找到用武之地。”
Hadoop工作流加速设备支持基于开源Apache Hadoop的Hadoop产品。希捷携手各领先的Hadoop厂商,为HPC客户提供同类最佳的解决方案,并且未来还将实现Hadoop工作流加速设备和其它Hadoop产品之间更加紧密的集成。
希捷公司云系统和解决方案部门ClusterStor业务副总裁Ken Claffey表示:“企业不仅希望管理好他们从各种渠道收集的海量数据,而且还希望能够从中获取新的分析结论,从而得到有用的信息并提高运营效率。现在有了Hadoop工作流加速设备的协助,希捷屡获殊荣的ClusterStor横向扩展型HPC解决方案便可使企业能够优化其大数据工作流程,并将数据存储集中化,最终实现各种高性能数据分析解决方案。TeraSort基准测试结果显示,基于相同的硬件时,Hadoop工作流加速设备的性能超过Hadoop分布式文件系统(HDFS)上的Hadoop产品高达38%。Hadoop工作流加速设备能够满足客户的性能需求,并可以优化Hadoop系统部署设备的性能,因此能够帮助客户迅速获得数据密集型工作负载和硬件配置的分析结果。”
希捷ClusterStor系统创新的横向扩展型HPC架构能够实现一个集中的数据库,使得HPC和Hadoop两种分析工具能够同时利用ClusterStor的相同数据集。Hadoop工作流加速设备从每项任务伊始便立即开展Hadoop数据处理,从而极大地缩短了获得分析结果的时间,并且还可以减少从独立数据库批量拷贝大量数据的冗长步骤。有了这个加速设备,Hadoop环境便能够独立扩展计算和存储资源,从而提高优化分析资源的灵活性,同时还支持100PB级存储容量的集中化高性能数据库。
Hadoop分布式文件系统原理 第4篇
一般的文件系统无法存储海量数据,为解决这个问题,研究人员提出了分布式文件系统概念[1]。分布式存储系统技术已成为计算机信息存储技术领域内的研究热点[2]。分布式文件系统在分布式存储系统中的作用非常重要,它是实现分布式存储的核心技术,对分布式文件系统进行研究有着重要的现实意义[2]。Hadoop分布式文件系统简称为HDFS。HDFS是开源Hadoop项目中的分布式文件系统,目前广泛应用于云计算环境中大型数据集的存储[3],是Hadoop的核心组件之一,负责系统的数据存储和管理、文件管理及出错处理等基础工作[4]。HDFS具有可靠性高、扩展性强、成本低等优势,它的开源性、高容错性及可以部署在廉价硬件设备上的特点,使其成为云存储研究的热点之一[4],在大规模数据存储和访问中具有广阔的应用空间。
1 基本概念
文本块(block)、数据节点(DataNode)和元数据节点(NameNode)是HDFS的3个基本逻辑单元。
文本块是HDFS存储文件的最小单位。存储的文件划分为若干个文本块,除最后一个文本块以外,其它的块大小保持一致。HDFS默认块大小为64M,但这个值不是必需的,可以根据实际需要自行调整设置。HDFS存储的文件都是大文件,采用块的方式可以避免单个节点磁盘空间不足造成的文件存储障碍。如果文本块发生损坏,可能只是某个文件的一小部分受到影响,HDFS的容错机制会立刻检测并修复。因此,采用块存储的方式对于存储和容错都十分有利。
数据节点,顾名思义,是存放数据的节点。文件存储的物理位置都在所谓的数据节点上。通常情况下,一个数据节点实例被部署在集群中的一个服务器上,但也存在一个服务器上运行多个数据节点的情况。
元数据节点在HDFS中通常是唯一的(Hadoop已经存在支持部署多个元数据节点的版本),部署在集群中性能较好的服务器上,是集群的主节点,负责管理文件的元数据信息,包括文件和目录的创建、删除、重命名、存储位置等。
2 基本结构
HDFS和现有分布式文件系统很相似,但也存在一定差别[5]。如图1 所示,HDFS是一个主从结构(Master/Slave)的分布式文件系统,元数据节点部署在一个单独的服务器上,这个服务器也可以运行一个数据节点,集群中的其它服务器均各自运行一个数据节点。 一个典型的HDFS集群由一个元数据节点和数量众多的数据节点组成。元数据节点是管理者,负责文件系统内所有元数据的仲裁和存储,处理来自客户端的读写请求,管理文件目录和打开、关闭、重命名等文件操作,以及数据块映射关系。数据节点是文件存储者,文件存储时首先被划分成固定大小的块,存储文件实际就是存储这些文件块。文件块被放置在数据节点上,数据节点按照元数据节点的指令完成数据块的创建、删除和复制操作。
3 元数据管理
元数据节点负责管理HDFS的所有元数据。元数据节点所属系统的硬盘上存储着两个文件,分别是事务日志文件和镜像文件,元数据节点通过操作这两个文件管理元数据。
事务日志文件(Editlog)存储系统中所有元数据相关的变更动作,如创建文件、变更复制因子等。 镜像文件(FsImage)负责元数据的持久存储(metadata persistent storage),包括命名空间、文本块映射和文件属性。
如图2所示,当元数据节点启动时,系统从硬盘上读取最新版本的事务日志文件和镜像文件,如果这两个文件版本不匹配,管理过程就提前结束。与之相反,将事物日志文件中记录的所有元数据相关操作用于内存中的镜像文件,更新完成后,镜像文件就囊括了此前系统对元数据的所有操作,这些操作作为重要信息持久保存下来。由于事务日志中的记录信息已经成功转移到镜像文件中保存,因此系统可以将日志文件清空。
4 数据存储
4.1 数据存储方式
HDFS为大文件提供存储服务,这些文件并不直接存放在硬盘上,而是根据系统设定,划分成一系列大小相等的数据块(除最后一个块以外)。数据块是存储文件的最小单位。HDFS将数据块分配到数据节点上,数据节点负责数据块存储。
4.2 冗余数据存储方式
为保证数据安全,每个数据块都被冗余存储。系统提供一个叫做复制因子的参数,通过设置这个参数的数值来确定存储冗余数据的副本个数。当数据节点发生故障时,系统会认为原有的副本数据已经失效,启动数据复制程序,重新创建冗余数据。
系统采取心跳机制来检测数据节点是否有效。如图3所示,数据节点周期性地向元数据节点发送心跳信息和数据块报告。元数据节点根据是否收到数据节点的心跳信息来判断数据的有效性。如果没有收到某个数据节点的心跳信息,元数据节点就认为该数据节点失效。由于数据节点失效,其上的数据块副本个数可能会小于复制因子的最小值,一旦判定数据块副本个数不满足复制因子的设定要求,元数据节点将启动数据复制,从而恢复复制因子的正常状态。
副本因子可根据应用需求灵活设置,默认数值为3。副本因子为3时,一份数据需要存储3份,考虑到数据的存取效率,两份放在同一个机架的数据节点上,一份放在其它机架的数据节点上。
5 文件管理
5.1 文件存储
HDFS对文件存储过程的组织如图4 所示。客户端首先向元数据节点申请创建文件,元数据节点受理客户端申请后,并不会立即创建文件,而是由客户端在本地创建一个临时文件,并将内容写入这个临时文件,当临时文件中的数据量超过系统设置的数据块最大容量时,客户端再次向元数据节点发出请求,申请用于存储文件内容的数据块。元数据节点响应客户端请求,向客户端发送数据节点标识和一个数据块,客户端获得数据节点和数据块以后,就向分配的存储空间写入临时文件中的内容。在建立起文件存储过程后,客户端继续监控文件状态。当文件关闭并且临时文件中的内容都已经写入到数据节点后,客户端立刻向元数据节点发送文件关闭信息,元数据节点即将文件持久存储。
5.2 副本存放
在讨论HDFS副本存放策略之前,需要明确两点:(1)同一个机架上的数据节点之间的传输效率高于机架之间的数据传输效率;(2)机架发生故障的概率要远远低于数据节点出现错误的概率。利用第(1)点可以提高数据读写速度,降低读写负担。利用第(2) 点可以保障数据安全,防止数据丢失。HDFS的副本存放策略充分利用了这两个特点,同时兼顾了文件读写和文件安全。
副本存放过程如图5所示。图5给出了复制因子为3时的存储过程,系统在节点之间形成了一个数据通道,数据从客户端创建的临时文件中一部分一部分地传输至数据节点A,数据节点A接收来自临时文件数据的同时,将数据分别发送至数据节点B,数据节点B和数据节点A一样,接收数据的同时,继续将数据向下一个数据节点C传递,数据节点C是最后一个副本存放处,因此只负责接收数据而不再向下传递数据。在形成的这个数据管道里,数据好像被送上了工厂的生产流水线,源源不断地进行着数据存储复制工作。
5.3 文件读取
HDFS充分考虑到了文件读取的影响因素,文件读取策略可以简单概括为就近原则。当客户端需要读取文件时,系统首先推送的是距离客户端最近的节点数据,这个节点可能与客户端在同一个机架上,那么同一个机架上的节点就是首选。即使客户端与节点不在同一个数据中心,节点的选择依然遵循就近原则,本地数据中心将作为首选。
5.4 文件删除
文件数据被删除的诱因可以归纳为两个方面:(1)客户端请求删除文件;(2)文件的复制因子变小导致副本数量过剩。
当客户端发出文件删除请求时,系统并不会立刻把文件物理删除,而是将其暂时放在一个专门管理删除文件的目录下,以便客户端因为种种原因撤销删除请求时可以恢复文件数据,而不至于数据丢失。删除的文件也不会长久保存在系统中,只是在客户端的删除指令和真正的物理删除之间增加了一个缓冲延时,这个延时的默认值是六小时,一旦超过这个时间,文件将被永久删除。
如果文件的复制因子变更为较小的数值,那么系统中原有的数据副本就会过剩。多余的副本不会在复制因子发生变化后立刻删除,两者之间同样存在延迟,这个延迟是元数据节点等待发送副本过剩的心跳信息需要的时间。
6 数据容错
HDFS的任务就是存储文件,保证文件数据的安全准确。造成数据错误的因素是多方面的,存储设备故障、软件缺陷和网络传输异常都会影响到数据的正确性,这些影响因素在某种程度上是不可避免的。因此,系统要有充分的容错机制,能够应对数据出现的各种错误,并且不影响系统的正常运行。
常见的文件数据存储错误有:数据冗余不足、数据异常、事务日志文件和镜像文件出错。
数据节点服务器故障、数据节点异常、复制因子增大、数据块丢失等都会造成数据冗余不足,系统通过心跳机制发现冗余不足,从而采取增加冗余的措施。
数据异常是指存储在硬盘上的数据出现错误或者丢失。文件存储时,系统对文件的每一个数据块都收集了相关信息并计算了校验和,创建校验和文件以隐藏的方式存储在系统内。读取文件时,系统通过数据块校验和发现数据是否存在异常。如果校验和不匹配,系统将检索其它数据节点读取文件数据块。
事务日志文件和镜像文件是文件系统的核心数据结构,管理着系统中全部的元数据信息,这两个文件丢失或出错,对系统将是灾难性的。HDFS在存储这两个文件的元数据节点服务器上设置了多个备份文件和辅助服务器。系统对事物日志文件和镜像文件进行的修改都会同步到备份文件中,并在需要读取记录时选择最新版本文件。
7 结语
本文通过对HDFS基本概念、基本结构、元数据管理、数据存储、文件存储和数据容错6个方面内容的探究,对HDFS进行了整体阐述,相关人员能够充分利用其特点,应用于大规模数据的存储和管理业务中。
参考文献
[1]卢俊华.HDFS存储机制的分析与研究[D].武汉:武汉理工大学,2014.
[2]易理林.HDFS文件系统中元数据的高可用性管理方法研究[D].广州:华南理工大学,2013.
[3]陈贞.HDFS环境下的访问控制技术研究[D].重庆:重庆大学,2013.
[4]王永洲.基于HDFS的存储技术的研究[D].南京:南京邮电大学,2013.
Hadoop面试题目及答案 第5篇
1.Hadoop集群可以运行的3个模式?
单机(本地)模式
伪分布式模式
全分布式模式
2. 单机(本地)模式中的注意点?
在单机模式(standalone)中不会存在守护进程,所有东西都运行在一个JVM上。这里同样没有DFS,使用的是本地文件系统。单机模式适用于开发过程中运行MapReduce程序,这也是最少使用的一个模式。
3. 伪分布模式中的注意点?
伪分布式(Pseudo)适用于开发和测试环境,在这个模式中,所有守护进程都在同一台机器上运行。
4. VM是否可以称为Pseudo?
不是,两个事物,同时Pseudo只针对Hadoop。
5. 全分布模式又有什么注意点?
全分布模式通常被用于生产环境,这里我们使用N台主机组成一个Hadoop集群,Hadoop守护进程运行在每台主机之上。这里会存在Namenode运行的主机,Datanode运行的主机,以及task tracker运行的主机。在分布式环境下,主节点和从节点会分开。
6. Hadoop是否遵循UNIX模式?
是的,在UNIX用例下,Hadoop还拥有“conf”目录。
7. Hadoop安装在什么目录下?
Cloudera和Apache使用相同的目录结构,Hadoop被安装在cd/usr/lib/hadoop-0.20/。
8. Namenode、Job tracker和task tracker的端口号是?
Namenode,70;Job tracker,30;Task tracker,60。
9. Hadoop的核心配置是什么?
Hadoop的核心配置通过两个xml文件来完成:1,hadoop-default.xml;2,hadoop-site.xml。这些文件都使用xml格式,因此每个xml中都有一些属性,包括名称和值,但是当下这些文件都已不复存在。
10. 那当下又该如何配置?
Hadoop现在拥有3个配置文件:1,core-site.xml;2,hdfs-site.xml;3,mapred-site.xml。这些文件都保存在conf/子目录下。
11. RAM的溢出因子是?
溢出因子(Spill factor)是临时文件中储存文件的大小,也就是Hadoop-temp目录。
12. fs.mapr.working.dir只是单一的目录?
fs.mapr.working.dir只是一个目录。
13. hdfs-site.xml的3个主要属性?
dfs.name.dir决定的是元数据存储的路径以及DFS的存储方式(磁盘或是远端) dfs.data.dir决定的是数据存储的路径
fs.checkpoint.dir用于第二Namenode
14. 如何退出输入模式?
退出输入的方式有:1,按ESC;2,键入:q(如果你没有输入任何当下)或者键入:wq(如果你已经输入当下),并且按下Enter。
15. 当你输入hadoopfsck /造成“connection refused java exception’”时,系统究竟发生了什么?
这意味着Namenode没有运行在你的VM之上。
16. 我们使用Ubuntu及Cloudera,那么我们该去哪里下载Hadoop,或者是默认就与Ubuntu一起安装?
这个属于Hadoop的默认配置,你必须从Cloudera或者Edureka的dropbox下载,然后在你的系统上运行。当然,你也可以自己配置,但是你需要一个Linux box,Ubuntu或者是Red Hat。在Cloudera网站或者是Edureka的Dropbox中有安装步骤。
17. “jps”命令的用处?
这个命令可以检查Namenode、Datanode、Task Tracker、 Job Tracker是否正常工作。
18. 如何重启Namenode?
点击stop-all.sh,再点击start-all.sh。
键入sudo hdfs(Enter),su-hdfs (Enter),/etc/init.d/ha(Enter),及/etc/init.d/hadoop-0.20-namenode start(Enter)。
19. Fsck的全名?
全名是:File System Check。
20. 如何检查Namenode是否正常运行?
如果要检查Namenode是否正常工作,使用命令/etc/init.d/hadoop-0.20-namenode status或者就是简单的jps。
21. mapred.job.tracker命令的作用?
可以让你知道哪个节点是Job Tracker。
22. /etc /init.d命令的作用是?
/etc /init.d说明了守护进程(服务)的位置或状态,其实是LINUX特性,和Hadoop关系不大。
23. 如何在浏览器中查找Namenode?
如果你确实需要在浏览器中查找Namenode,你不再需要localhost:8021,Namenode的端口号是50070。
24. 如何从SU转到Cloudera?
从SU转到Cloudera只需要键入exit。
25. 启动和关闭命令会用到哪些文件?
Slaves及Masters。
26. Slaves由什么组成?
Slaves由主机的列表组成,每台1行,用于说明数据节点。
27. Masters由什么组成?
Masters同样是主机的列表组成,每台一行,用于说明第二Namenode服务器。
28. hadoop-env.sh是用于做什么的?
hadoop-env.sh提供了Hadoop中. JAVA_HOME的运行环境。
29. Master文件是否提供了多个入口?
是的你可以拥有多个Master文件接口。
30. Hadoop-env.sh文件当下的位置?
hadoop-env.sh现在位于conf。
31. 在Hadoop_PID_DIR中,PID代表了什么?
PID代表了“Process ID”。
32. /var/hadoop/pids用于做什么?
/var/hadoop/pids用来存储PID。
33. hadoop-metrics.properties文件的作用是?
hadoop-metrics.properties被用做“Reporting”,控制Hadoop报告,初始状态是“not to report”。
34. Hadoop需求什么样的网络?
Hadoop核心使用Shell(SSH)来驱动从节点上的服务器进程,并在主节点和从节点之间使用password-less SSH连接。
35. 全分布式环境下为什么需求password-less SSH?
这主要因为集群中通信过于频繁,Job Tracker需要尽可能快的给Task Tracker发布任务。
36. 这会导致安全问题吗?
完全不用担心。Hadoop集群是完全隔离的,通常情况下无法从互联网进行操作。与众不同的配置,因此我们完全不需要在意这种级别的安全漏洞,比如说通过互联网侵入等等。Hadoop为机器之间的连接提供了一个相对安全的方式。
37. SSH工作的端口号是?
SSH工作的端口号是NO.22,当然可以通过它来配置,22是默认的端口号。
38. SSH中的注意点还包括?
SSH只是个安全的shell通信,可以把它当做NO.22上的一种协议,只需要配置一个密码就可以安全的访问。
39. 为什么SSH本地主机需要密码?
在SSH中使用密码主要是增加安全性,在某些情况下也根本不会设置密码通信。
40. 如果在SSH中添加key,是否还需要设置密码?
1.大数据技术Hadoop面试题
2.小升初面试题目及答案
3.护士面试题目及答案
4.大数据技术Hadoop面试题,看看你能答对多少?
5.医药面试题目答案
6.Web前端面试题目及答案
7.日企面试题目及答案
8.事业单位面试题目及答案
9.上海小升初面试题目及答案
Hadoop系统 第6篇
摘 要:文章详细介绍了Hadoop Yarn框架及Hadoop调度,并分析了Yarn框架下的标签调度(Label based scheduling)策略,以实例方式详细介绍了标签调度的应用场合和使用方法。该文的方法对基于Hadoop Yarn框架下的大数据处理平台配置,特别是异构环境中的平台优化有一定的参考意义。
关键词:大数据;框架;标签调度
中图分类号:TP311.13 文献标识码:A 文章编号:1006-8937(2015)15-0072-01
1 概 述
在Hadoop0.20版本推出之后,Hadoop开源社区开始设计全新构架的新一代Hadoop系统,该版本后演化为Hadoop2.0版本,即新一代的Hadoop系统YARN。
YARN构架将主控节点的资源管理和作业管理功能分离设置,引入了全局资源管理器(Resource Manager)和针对每个作业的应用主控管理器(Application Master)。在最新的Hadoop 2.6.0版本中,YARN引入了一种新的调度策略:基于标签的调度机制。该机制的主要引入动机是更好地让YARN运行在异构集群中,进而更好地管理和调度混合类型的应用程序,本文即尝试如何使用标签调度展开讨论。
2 Hadoop Yarn框架介绍
新的Hadoop MapReduce框架命名为MapReduceV2或者叫 Yarn。重构根本的思想是将JobTracker两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度/监控。新的资源管理器全局管理所有应用程序计算资源的分配,每一个应用的ApplicationMaster负责相应的调度和协调。一个应用程序无非是一个单独的传统的MapReduce任务或者是一个DAG(有向无环图)任务。ResourceManager和每一台机器的节点管理服务器能够管理用户在那台机器上的进程并能对计算进行组织。每一个应用的ApplicationMaster的职责有:向调度器索要适当的资源容器运行任务,跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。
3 Hadoop常用调度器
为了更好地理解标签调度技术,有必要回顾一下Hadoop常用的调度器。
3.1 默认的调度器FIFO
最早的Hadoop Map/Reduce 计算架构中,JobTracker 在进行作业调度时使用的FIFO(First In First Out)算法,其优点是调度算法简单明了,JobTracker工作负担轻。
3.2 公平份额调度算法(Fair Scheduler)
Fair Scheduler是由Facebook公司提出的,设计思想是,尽可能保证所有的作业都能够获得等量的资源份额,Fair Scheduler考虑了作业用户的“公平性”。
3.3 计算能力调度器(Capacity Scheduler)
Capacity Scheduler能有效的对hadoop集群的内存资源进行管理,以支持内存密集型应用。作业对内存资源需求高时,调度算法将把该作业的相关任务分配到内存资源充足的节点上。在hadoop自带的调度器中,Capacity Scheduler支持标签调度,FIFO Scheduler和Fair Scheduler尚不支持。
4 Label based scheduling应用
Label based scheduling是一种调度策略,就像priority-based scheduling一样,是调度器调度众多调度策略中的一种,可以跟其他调度策略混合使用,下面以实例说明。
不失一般性,假设有30个以上的节点,各节点硬件配置和网络部署如表一所示,其中:HighCPU组10个节点,各节点CPU运算能力较强,适合计算密集型任务;HighMEM组10个节点,计算能力普通,但各节点内存较高,适合内存密集型任务;HighIO组10个节点,计算能力和内存配置普通,但使用了IB高性能网络,网络交换能力较强,适合IO密集型任务。
假设公司运行的任务类型有三类,一类是普通的Hadoop应用,一类是运行高内存需求应用,一类是高IO的应用。
首先,用Normal、HighgCPU、Highmem、HighIO表示分配标签名,需要为三类节点创建相应的标签,方法如下:
修改capacity scheduler相关配置,设置每个队列对应的label,以及每中label的资源上下限。根据规划,应创建四个队列,假设为queue1、queue2、queue3、queue4,其中queue1队列可使用的标签是Normal和HighgCPU、Highmem、HighIO,queue2队列可使用的标签是HighCPU,queue3队列可使用的标签是HighMEM,queue4队列可使用的标签是HighIO,并配置四个队列的capacity和maxcapacity。
之后按照以下步骤操作:
步骤1:添加系统级别的label(相当于所有label的全集),注意各个节点上的label必须都在系统级别的label中。
yarn rmadmin-addToClusterNodeLabels Normal,HighCPU,HighMeM,HighIO
步骤2:为各个节点分别添加label(可动态修改)。
yarn rmadmin -replaceLabelsOnNode“nodeId,Normal,High-
CPU,HighMeM,HighIO”
注意,nodeId是nodemanager的唯一标示,注意一个节点上可以有多个nodemanager,每个nodemanager的nodeid可以在ResourceManager界面上看到,通常有host和PRC port拼接而成,默认情况下,各个nodemanager的RPC port是随机选取的,你可以将所有的nodemanager配置成一样的,便于管理:
步骤3:配置label重启恢复功能。这样,label信息会保存到hdfs上(默认是保存在内存中的),之后Yarn重新启动,可以自动恢复所有label信息:
nodelabels.RMNodeLabelsManager
5 结 语
本文详细介绍本文详细介绍了Hadoop Yarn框架下的标签调度(Label based scheduling)策略,并介绍了使用方法,但对异构环境中的资源类别划分、任务类别划分等没有作深入的讨论,用户在使用标签调度时,应根据平台的实际资源状况作出比较详细的分类,然后根据各任务的资源需求建立相对合理的配置规划,只有这样,才能充分发挥标签调度的作用。
参考文献:
[1] 邓传华,范通让,高峰.Hadoop下基于统计最优的资源调度算法[J].计算机应用研究,2013,(2).
[2] 土峰.Hadoop集群作业的调度算法[J].程序员,2009,(12).
Hadoop系统 第7篇
网络安全问题一直是网络运行管理中的突出问题。加强对网络日志的管理和分析是强化网络管理、维护网络安全的一项重要途径[1]。通过分析日志数据, 可以获取关于设备故障、网络运行历史背景、网络异常行为等信息, 从而有助于网络安全管理人员及时发现和解决网络故障或阻断网络攻击, 保证网络的健康稳定运行。另一方面, 网络日志分析也是网络调查取证的重要内容。
Hadoop作为开源的大数据处理平台, 近年来得到了快速的发展, 出现了许多相关应用[2,3,4]。Hadoop在网络日志分析系统领域也受到广泛关注, 出现了一些应用研究[5,6,7,8,9]。Hadoop可以有效解决传统网络日志系统无法处理海量日志数据的问题。但由于Hadoop并不擅长处理实时应用, 现有的基于Hadoop的日志分析系统主要采用离线处理模式。虽然离线网络日志分析结果对于网络管理也具有重要作用, 但由于时滞问题, 其对解决当前网络运行问题的作用有限。因此, 构建面向大数据的在线的日志分析系统具有重要意义。
本文根据网络日志的应用特点, 提出了日志数据的分级归档机制。并依其为基础, 将传统网络日志分析系统和基于Hadoop的日志处理系统相结合, 设计构建了基于Hadoop的在线网络日志分析系统。在新系统中, 传统网络日志分析方式用于处理低级别日志文件, 高级别日志文件则交给Hadoop集群处理。系统既具有传统日志分析系统响应速度快的优点, 又兼具Hadoop在处理大数据方面的优势, 既可以在合理的时间内响应用户请求, 又可以存储处理海量日志数据。文件分级归档机制避免了Hadoop系统的小文件问题, 使文件组织结构相对稳定, 可以保证日志数据的长期稳定存储, 具有较好的可扩展性。
1 传统网络日志分析系统
网络日志包含了大量网络活动的信息, 但对网络日志的管理和处理一直是个难题。在早期网络中, 日志一般分散在多台设备或服务器上, 且不同设备的日志存在优先次序不一致、格式不统一、存储时间比较短等问题, 造成日志记录有可能被覆盖或分析困难, 日志的安全管理无法保障。因此, 对日志数据进行集中存放和有效管理是日志分析的首要任务。
Syslog协议较好地解决了这个问题。Syslog是采集日志数据最常用的方式, 现已成为系统日志协议的工业标准[10]。Syslog支持纯文本的标准日志格式, 每一行为一条记录, 对应于系统产生的一次事件。在支持Syslog的网络设备中, Syslog记录着系统中的任何事件, 并根据配置确定事件是存储在本地还是发送到远端服务器。Syslog还能够接收远程系统的日志记录, 按时间顺序处理包含多个系统的记录, 并以文件形式存盘。因此, 可以基于Syslog灵活构建日志服务器, 自动接收和存储日志数据。数据存储方式可以为:文本文件方式、RDBMS方式和混合方式3种。不同存储方式对应的日志处理模型、应用环境及处理效率都有所不同。
日志文件的集中管理实现了日志数据的异地存放, 提高了日志的安全性[11]。专用的存储空间可以保证存放较长时段的日志信息。在存放过程中, 可以对日志记录进行转换, 形成统一格式, 便于日志的管理和分析。传统日志处理的流程包括存储、分析和显示3步, 如图1所示。在存储阶段, 日志服务器接收日志源的日志记录, 并按序存放在文件或数据库中。在分析阶段, 各种分析程序按指定条件查询或挖掘日志数据, 获得期望的信息。这些信息经归并和转换后, 以可视化的形式显示给用户。
传统网络日志分析系统可有效处理中小规模的日志数据。但在大型网络中日志源很多, 日志系统需要长期存储的数据量可达TB或者PB级别。即便是高效的基于RDBMS的日志处理系统也无法有效处理如此海量的数据。事实上, 尽管采用了很多优化技术, 当日志数据达到TB级别时, 基于RDBMS的日志处理方式性能会急剧下降, 从而变得不可用。
2 基于Hadoop的离线日志系统
Hadoop是Apache基金会推出的一个开源的大数据处理框架, 可以构建在廉价集群上[12]。Hadoop底层主要基于HDFS文件系统, 并包含一个简易、高效的MapReduce并行计算框架。可以将大数据处理任务转化为相应的MapReduce处理模型, 并用包含Mapper、Reducer、Combiner及Partitioner等逻辑处理部件的MapReduce程序进行实现。其中Mapper和Reducer是核心部分。
陈文波等[13]利用Hadoop建立了分布式日志分析系统, 用于对IP地址的请求次数进行统计, 从而发现泛洪攻击中的异常IP。实验结果显示, 分布式模式比单机模式在耗时上具有明显优势。胡光民等[14]利用Hadoop分布式计算框架, 设计并实现了一套基于Hadoop的网络日志分析系统。宋爱青[15]基于Hadoop实现了一个日志存储和计算的数据处理系统。该系统在日志的收集、存储和处理方面较之前的处理方案都有很大的改进。在系统中, 用户可以自定义的配置数据表, 增加了报表的可定制性。
基于Hadoop的日志分析系统主要处理流程也包含存储、分析及显示3个环节, 如图2所示。和传统日志处理系统相比, 区别主要有4点: (1) 存储流程中增加了从日志服务器到Hadoop集群的转储环节。该环节可对日志数据进行必要的归并和清洗, 以利于后续分析处理。 (2) 分析程序为MapReduce程序, 需要运行在Hadoop集群中。 (3) 是日志分析采用离线分析模式, 无法处理缓存在日志服务器上的最新日志数据。 (4) 日志分析结果仍以文件形式存储在Hadoop集群中, 需要专门的处理及可视化方法。
相对于传统的日志分析系统, 基于Hadoop的日志分析系统进一步解决了海量日志的存储管理及分析问题。但由于采用了离线处理模式, 系统分析结果的实效性较差, 对解决当前网络管理中的问题帮助有限。由于MapReduce被设计为一个离线的大数据处理框架, 其优势在于对大文件数据的高效处理。若要基于Hadoop构建在线的日志分析系统, 必须提供日志数据的快速处理机制, 以使系统提供合理的响应速度, 满足在线处理系统的要求。
3 Hadoop在线日志分析系统设计
3.1 系统需求
要构建一个面向海量日志数据的在线分析系统, 必须明确系统应具有的功能特点, 主要包括以下几点:
1) 可以实时接收和存储日志数据。数据接收和存储的实时性是在线日志分析的基础。
2) 能有效管理海量数据, 具有良好的扩展性。日志数据量是不断增长的, 系统要有效维护存储系统的文件结构和存储结构, 使增量日志数据的存储不对系统性能造成较大影响。
3) 要及时响应用户请求。只有做到及时响应, 在线分析的目的才可以达到。
4) 系统结构要简洁高效。日志分析主要通过对数据的读取操作完成, 分析操作具有相对稳定的模式, 不需要做过多的改动。
5) 可以有效分割和定位数据, 满足用户定制查询的需要。这也是提高系统性能的内在要求。
鉴于Hadoop在处理大数据方面的优势, 基于Hadoop构建在线的网络日志分析系统无疑是一个有吸引力的思路, 但仍面临2个问题:
1) 小文件问题。由于HDFS中未关闭的文件对用户是不可见的, 因此, Hadoop若要提供对当前数据的处理能力, 必须不断地分割日志流, 形成大量的小文件。但Hadoop在处理大量小文件时效率不高, 而且存储空间利用率很低, 当小文件规模过大的时候还会造成集群的崩溃。
2) 系统响应时间过长。Hadoop对处理的响应最低在数十秒, 若数据规模较大, 处理时间可达数小时。这显然不符合在线处理的要求。
考虑传统日志处理系统在处理中小规模日志数据时的有效性, 可以将传统日志处理模式和Hadoop处理模式结合起来, 构建混合的日志处理系统。为此, 要在两个系统间有效组织日志数据, 使新系统在效率和耗时之间取得较好平衡。日志文件的分级归档机制是一个有效措施。
3.2 文件分级归档管理机制
在大型网络中, 日志系统需要长期存储的数据量可达数十TB或PB级别。若每项业务都要处理如此大规模的数据, 无疑是非常耗时的, 而且没有必要。在实际应用中, 除了一些特殊情况, 大部分业务只会处理部分网络日志数据。用户往往对某一时段、某个日志源或某种优先级的数据特别感兴趣。因此, 对数据进行有效的分割和合理的组织是必不可少的。
在日志数据组织中, 日志时间和文件大小是两个最重要的因素。日志时间和其使用价值密切相关。日志越新其价值越大, 访问越频繁。反之, 越久的日志访问几率越低。文件大小和数据的可定制性有关。文件越大则文件数量越少, 数据的可定制性越差。相反, 数据会分割到较多的小文件中, 系统可以根据用户的查询条件选择最适合的文件集进行操作。但文件设置太小也不合适, 过多的小文件也不利于数据的组织, 还会降低系统处理效率。对日志文件进行分级归档管理可以充分兼顾上述日志使用中的一些特点。
可以依据不同的分级指标进行文件分级归档。此处以文件大小为例进行说明。在归档前先要设定不同的日志文件大小标准, 如设定第1级文件大小为64 MB, 第2、3级文件大小分别为1和16 GB等。相应的文件归档条件就是:当下级文件数据量达到上级文件大小标准时启动归档过程。具体归档过程如图3所示。当第1级文件数据量累积到上级文件的大小1 GB (16个) 时, 则执行归档程序将第1级文件归并为一个第2级文件, 第1级文件从系统中删除。当第2级文件的个数达到16个 (161 GB=16 GB) 时, 再启动归档程序完成向第3级文件的归并。依次类推, 日志文件可以逐级向上归并。
文件分级归档机制存在归档奇点问题, 即底层文件的归档会连续触发高层文件的归档行为。连续归档可能对系统性能造成较大影响, 可采取延迟归档机制解决。归档延迟机制为每一级设定一个最大归档阈值, 当标准的归档条件满足时, 系统并不立即启动归档程序, 而是首先判断当前系统的负载情况, 并在最大归档阈值满足前选择合适的时机启动归档。
采用文件分级归档机制后, 日志数据的文件组织结构具有如下特点:
1) 实现了日志数据的分文件不均匀存储。从下到上各级文件大小会越来越大, 形成日志数据的倒金字塔存储结构。且越小的文件其日志数据越新, 越大的文件其存储时间越久。这符合网络日志数据的应用特点。
2) 文件组织结构相对稳定。假定系统的最大数据量C已知, 则系统所需的最大文件数N可以很容易求出。设各级文件大小标准为Si, i=1, 2, , n, 各级归档所需文件数为Ai, i=1, 2, , n, 则N可由下式得到:
从式 (1) 可以看出, 随着日志数据量的增大, 文件数量并不会有显著的增长, 保持相对稳定, 这就使得文件系统具有较好的可扩展性。
3) 归档操作不会对系统性能造成明显影响。随着文件级别的提高, 文件大小呈指数增长, 日志归档的频率会逐渐降低。因此, 归档操作会较多出现在低级别的小文件上, 再结合归档延迟机制, 归档操作对系统性能影响有限。
日志文件的分级归档机制为灵活构建在线日志系统提供了可能。如图3所示, 可以将底层的小文件由传统日志分析程序处理, 以获取较快的响应速度;而高层的大数据文件可由Hadoop集群进行处理, 以获取较高的处理效率。
3.3 系统功能框架
为实现各种应用需求, 结合传统日志分析的流程, 可将在线网络日志分析系统的功能架构分为6层, 如图4所示。自底向上依次为:日志源层、转换层、收集层、存储层、业务层和可视化层。
日志源层:可产生各种原生的日志记录, 由网络交换机、路由器、防火墙、入侵检测、认证计费等设备及各种服务器构成。日志数据可通过设备内置的Syslog协议或附加的日志发送程序发送到远端设备, 用于进一步处理或集中存储。
转换层:这是一个可选层, 由日志转换器程序构成。有些设备产生的日志信息格式比较特殊, 需要先转换成标准Syslog日志格式, 再发送到日志收集服务器存储。日志转换器程序由各种日志格式适配器构成, 可以部署到独立的服务器上, 也可以集成到有处理条件的日志源上。日志转换器不缓存数据, 转换之后直接发送。
收集层:由若干日志收集服务器构成, 主要完成日志记录的接收和存储以及日志文件分级归档功能。按照日志分级归档机制, 日志收集程序对接收的日志流进行分割, 形成第1级分级文件, 缓存在本地。日志缓存文件积累到一定数量且满足归档条件后由归档程序合并成大文件发送给存储层存储。日志收集服务器还可以接收日志分析任务, 对本地缓存文件进行分析。
存储层:由Hadoop集群构成, 底层采用HDFS文件系统。一般具有较大的存储空间, 用于可靠、持久存储日志数据, 并维护合理的文件组织结构。此外, Hadoop集群还要有一定的规模, 以满足在线处理的性能要求。
业务层:由各种日志分析程序构成, 包括用在Hadoop集群上的MapReduce程序和用于日志收集服务器上的传统日志分析程序。对网络日志数据的分析可最终转化为一系列的查询操作, 非常适合用MapReduce框架实现。
可视化层:对业务层的处理结果进行再处理并可视化显示。MapReduce程序的处理结果一般仍在Hadoop集群中, 需要先将这些结果提取出来, 并分析转换为相应的可视化元素, 如文字描述、图、表等。
此外, 系统管理功能也是在线网络日志分析系统的一个重要组成部分。主要用于对系统的各层进行配置、维护;对存储层的日志文件结构进行组织管理, 执行文件分级归档机制;对业务处理过程进行监控和调度等。
3.4 系统部署架构
根据在线网络日志分析系统的功能划分, 可以构建一个简单的系统, 其部署架构如图5所示。该系统由1台日志转换器、3台日志收集服务器、1台日志分析服务器、1套Hadoop集群和若干日志源设备构成, 其中日志分析服务器在整个架构中居于中心地位。系统中各部件的交互分为3种类型:日志流、业务流和控制流。
日志流:起于日志源, 经转换器转换及日志收集器缓存后, 最终存储到Hadoop集群中。
分析流:由客户端发起请求, 经日志分析服务器处理后, 形成一个子任务列表。然后依据数据分布和系统性能情况将各个子任务发送给日志收集服务器或Hadoop集群进行处理。最后, 日志分析服务器接收所有子任务的处理结果, 经必要处理后在客户端显示。
管理流:用于对整个系统进行配置和管理。包括对日志源的日志功能进行配置、对设备的存活状态进行监控等。
3.5 网络日志分析业务流程
网络日志分析业务是在线网络日志分析系统的核心功能。为实现快速响应用户请求的需求, 必须在文件分级归档管理的基础上, 结合使用传统日志业务处理方式和基于Hadoop的日志处理方式, 发挥二者优点。具体处理架构如图6所示。传统日志处理以分布式和多线程为特点。分析任务被分配到多个主机上, 在每个主机上又运行多个线程, 每个线程处理数据集的不同部分。各部分的处理数据最后经合并、转换之后显示给用户。基于Hadoop的日志处理以执行MapReduce程序为主要途径。MapReduce程序主要由Mapper和Reducer两部分构成, Mapper将原始数据映射为业务逻辑需要的数据, Reducer对映射结果进行归并和排序。传统日志分析程序和MapReduce程序遵循的执行流程基本相同, 但各自的运行环境不同。
日志分析服务器是业务流程的发起者, 并对业务处理流程进行管理调度, 同时也对业务处理的结果进行后期处理, 如整合和显示等。一项具体的分析业务流程如下:
1) 用户提交分析业务请求;
2) 服务器分析用户请求, 获得处理请求所需的数据文件列表;
3) 将所有文件按存储位置进行划分, 然后按从小到大进行排序;
4) 若文件存储于日志收集器上, 则服务器调取日志收集器的业务处理接口进行处理;
5) 若文件存在于Hadoop集群中, 则服务器根据集群性能, 按文件从小到大的顺序依次启动MapReduce程序进行处理;
6) 服务器接收处理的返回结果或从集群中获取结果文件, 进行必要的处理后, 进行可视化显示;
7) 若Hadoop集群中仍有未处理的文件, 则重复上述5) 、6) 步, 直到数据处理结束或用户中止处理。
4 实验验证
4.1 实验环境
为验证在线网络日志分析系统的可行性, 本文构建了一套小型系统。其中硬件平台包含6台服务器, 1台充当日志收集服务器, 1台为日志分析服务器, 其余4台构成Hadoop集群。为提高存储效率, 设定dfs.replications值为2。系统主要存储和处理防火墙、核心交换机、核心路由器以及Web系统的访问日志。日志按存储时间进行分级归档, 设定时、日、周、月及年为分级归档条件。当日的日志缓存在日志收集服务器上, 存储时间超过一天的日志归档到Hadoop集群中。7日的数据归档为一个周文件, 依次类推。
软件实现包括两部分功能:日志收集及分级归档存储功能和日志分析及显示功能。日志分析功能又包括两部分:用于在日志服务器上执行的程序和在Hadoop集群上执行的Mapreduce程序, 两者在功能上相似。实现的功能主要包括按指定条件对IP地址、服务端口及报警消息进行查询统计等。通过实验可以验证系统设计思路和机制的可行性、存储结构的有效性, 并对业务处理的执行效率和响应时间进行评估。
4.2 实验结果
为测试传统日志分析程序的效果, 先对缓存在日志服务器上的防火墙日志数据进行处理, 分别查询当日的分时IP访问数据和访问IP的TOP10, 处理结果分别如图7、图8所示。由于日志收集服务器上的数据量比较少, 且分别存储在24个独立的文件中, 分析操作均很快顺利完成。
为了测试系统的跨平台处理能力, 对Web系统一周内的日IP访问量进行了统计。日访问数据中, 当日数据缓存在日志服务器中, 过去6日的数据以日归档文件形式存储于Hadoop集群中。该分析过程需要同时启动传统日志分析程序和Mapreduce程序。由于集群中的3个Data Node均配置有2个Map任务槽和2个Reduce任务槽, 因此对6个历史数据的分析可以同时进行。对7日数据的具体处理情况如表1所示, 最终的分析统计结果显示在图9中。
从表1可以看出缓存在日志收集服务器上的数据处理速度最快, 只需要27 s即可以返回结果, Hadoop集群上的数据均在1分钟左右处理完毕。因此, 系统对此任务的最快响应时间是半分钟, 完全响应时间为1分钟左右。本例中待处理的数据约1.2 G, 若采用传统的串行日志处理模式, 处理完所有数据需花费约3分钟时间, 相比之下, 基于Hadoop的日志分析模式具有更大的优势。此外, 本例中的日志数据集还比较小, 并不能完全发挥Hadoop集群的效率优势。若采用更大规模的数据集, 则效果提升会更加明显。
5 结语
网络日志分析是网络安全管理的重要一环, 传统的日志分析技术无法解决大数据集的问题。基于Hadoop的离线日志处理系统虽然可以解决大数据问题, 但离线模式的处理结果时效性较差, 对网络管理员及时解决网络问题帮助有限。因此, 本文提出了文件分级归档机制, 并将传统的日志处理模式和基于Hadoop的日志处理模式结合起来, 设计了基于Hadoop的在线日志分析系统。文件分级归档机制实现了海量数据的分级不均匀存储, 一方面使存储系统具有良好的扩展性, 另一方面, 增加了业务操作的可定制性, 业务处理可以针对不同的数据集, 避免不必要的耗时。基于Hadoop的在线日志分析系统通过两种模式的结合, 对分析业务的处理效率更高, 保证了系统的响应速度。
相比传统的日志分析系统, 基于Hadoop的网络日志分析系统的软件架构更复杂, 需要一些针对性的开发工作。此外, 对业务并行处理, 先处理先响应的模式对有些应用也不适合。比如统计分析时间跨度很大的日志数据时, 只有对处理结果进行必要的合并后才能显示。因此, 虽然实验系统验证了方案的总体可行性, 但仍有一些具体问题有待于进一步的研究。
Hadoop系统 第8篇
关键词:数据挖掘,网络行为,Hadoop大数据
据《中国移动互联网用户行为统计报告2015》一文中的数字显示,截至2014 年,中国移动互联网用户规模达7.29 亿,其中社交、娱乐、实用工具以及阅读类应用用户占比超过70%,出行旅游、消费(实物)类应用用户占比大于40%[1]。网络世界里充满着多方面的信息和数据,如何通过分析这些数据来发掘用户的潜在需求,为用户推荐更好的产品或服务是当前电子商务的一大营销策略。本文从云计算技术和聚类算法的两个角度来设计用户行为分析系统,希望能为电商系统的精准营销做出贡献。
1系统流程
本次研究主要是围绕如何在Hadoop分布式处理平台之上,借助云计算的方法来研究网络用户的行为而展开的。利用网络用户行为所产生的海量的日志数据构建大数据环境,借助Hadoop分布式处理的框架和聚类算法等挖掘出相应的信息。
1.1数据提取
本系统针对网购用户的行为进行分析,数据来源于搜狗实验室所提供的用户查询日志,主要是Sogou搜索引擎部分通过网络爬虫抓取到的网页查询需求及用户点击情况的网页查询日志数据集合,该数据集合的格式为:访问时间用户ID [查询词] 该URL在返回结果中的排名用户点击的顺序号用户点击的URL,其中,用户ID是根据用户使用浏览器访问搜索引擎时的Cookie信息自动赋值,即同一次使用浏览器输入的不同查询对应同一个用户ID[2]。
1.2数据预处理
Sogou实验室所提供的数据格式是一条数据占据一行,行内数据以空格间隔,因此需要切割数据并存放在一组对象数组中,对象元素包含1.1所叙述的数据集合格式的基本属性。
1.3用户行为的集群性分析
本系统需要对用户的行为进行分门别类,即打上用户标签,标注该用户行为的详细信息,比如用户停留在某一网站时间长短、购物车里的物品类别以及上网时间段等更细粒度的信息。把结果归并成某一特征规律,从而得出用户和网站之间的映射关系。如果此后再关注用户的网络行为时,便可以产生相应的推荐系统。
1.4挖掘用户潜在的其他可能行为:
通过给用户贴标签,分析用户的上网习惯并结合关联规则,我们可以发掘出客户的多种需求,向其推销相关的产品或服务。比如购买圆珠笔的顾客中有65%也会购买笔记本,利用这个规则,网站可以合理地规划商品摆放问题。
1.5优化用户行为分析流程:
为了提高用户行为分析效率,本系统需要解决的问题是“如何利用用户的标签行为给用户推荐物品”和“如何在用户给物品打标签时给用户推荐适合该物品的标签”。
2实验方法及过程
通过聚类算法可以把相似度高的对象归为一类,以实现“物以类聚”,我们可以用聚类算法来对用户的上网行为进行“聚类”,将具有相同的上网习惯的用户归为一类,并为其“贴上”相同的用户标签。本文采用K-means算法实现聚类过程,并将其Map Reduce化。
2.1 K-means算法简介
K-means算法是十大经典算法中的之一,其核心思想就是将m个样本点细分为n个聚簇,每个簇有为数不一的样本点,簇的数量由划分时的设定值决定[3]。其中簇内样本点相似度较大,而簇与簇之间的样本点相似度却很低,通过计算每个簇中样本点的期望值来决定相似度值的大小。
2.2 Mapper与Reducer任务
3 结束语
基于Hadoop的大数据平台分析用户的网络行为有助于推动对用户上网行为的研究向前发展,以目前的互联网和电商的发展趋势来看,用户上网所产生的数据量及其所具有的潜在价值都值得我们对其认真研究。本系统的技术架构的优点在于它的分层处理思路清晰,灵活使用Hadoop的生态系统搭建适合本系统的数据挖掘环境。采用了经典的K-means算法实现聚类思路,并且将其Map Reduce化,虽然最后得出结果,但其中仍然有待优化的地方,尤其是在处理PB级别的数据量时,系统的稳定性更是得出结果的关键。
参考文献
[1]搜狐媒体.中国移动互联网用户行为统计报告.http://mt.sohu.com/20150318/n409959259.shtml.2015
[2]搜狗实验室.用户查询日志.http://www.sogou.com/labs/re-sources.html?v=1.2015
Hadoop系统 第9篇
对Hadoop云平台大容量数据的优化存储是构建云存储信息管理系统的基础,传统方法中,对Hadoop云平台大容量数据的存储设计采用基于BP神经网络控制的数据存储设计方法、基于自适应均衡调度的数据存储方法和基于遗传进化的数据存储系统设计方法。进行Hadoop的大容量数据存储设计时,当前的典型方法采用最大Lyapunove指数谱分解,将云平台中的计算机访问数据分为显态数据和伪态数据,对于不同状态的数据,提取不同的数据特征,通过识别访问数据的深层次特征,对Hadoop数据集合进行融合分析,算法在一定程度上提高了数据库的访问能力,但是计算复杂,特征分解维数较高。因此,本文提出优化的基于Hadoop的大容量数据快速存储系统设计方法,采用负载均衡调度和云存储优化方法进行存储系统构架,对Hadoop云平台的海量大数据进行信息融合处理,对Hadoop云平台大容量数据信息流进行非线性时间序列重组,采用特征空间降维方法降低存储开销,优化存储结构,提高存储和调度的速度。最后通过仿真实验进行性能测试,得出有效性结论。
1数据存储系统构架和数据结构分析
构建云计算环境下Hadoop云平台大容量数据的采集和存储模型,实现存储系统优化设计,采用负载均衡调度和云存储优化方法进行存储系统构架,基于Hadoop的大容量数据快速存储系统总体结构。
2算法设计描述
其中,m为Hadoop云平台的大容量数据信息重组的嵌入为数。通过获得数据特征压缩处理后的输出,实现数据的优化存储和特征匹配。
3实验分析
从图2可见,采用本文算法提高了大容量数据快速存储系统的数据存储吞吐量,说明该系统的存储开销较小,存储性能较优。
4结束语
本文在Hadoop云平台中进行数据云存储系统的优化设计,提高了大容量数据快速存取能力,构建基于Hadoop的大容量数据快速存储系统,采用负载均衡调度和云存储优化方法进行存储系统构架,进行Hadoop云平台的海量大数据信息融合处理,对Hadoop云平台大容量数据信息流进行非线性时间序列重组,提高了存储和调度的速度。仿真结果表明,采用该方法进行Hadoop大容量云存储系统设计,提高了数据存储的吞吐性能和快速存取性能,展示了较高的应用性。
摘要:在Hadoop云平台进行数据云存储系统的优化设计,提高大容量数据快速存取能力,构建基于Hadoop的大容量数据快速存储系统,采用负载均衡调度和云存储优化方法进行存储系统构架,进行Hadoop云平台的海量大数据进行信息融合处理,对Hadoop云平台大容量数据信息流进行非线性时间序列重组,采用特征空间降维方法降低存储开销,优化存储结构,提高存储和调度的速度。仿真结果表明,采用该方法进行Hadoop大容量云存储系统设计,提高了数据存储的吞吐性能和快速存取性能。
关键词:Hadoop云平台,数据,存储,开销
参考文献
[1]何倩,胡启伟,王勇,等.基于软件定义网络的反饱和分组云负载均衡[J].计算机应用,2016,36(06):1520-1525.
Hadoop系统 第10篇
关键词:基于Hadoop分布式文件系统,系统模型,云计算
Hadoop是Apache软件基金会所研发的开放源码并行运算编程工具和分散式档案系统根据Google公司发表的Map Reduce和Google档案系统的论文自行而成。Hadoop主要由HDFS(Hadoop Distributed File System)和Map Reduce两部分组成。HDFS在最底部它主要是用来存储Hadoop集群中存储节点上的文件,为海量的数据提供存储。Map Reduce在HDFS的上一层由概念"Map(映射)"和"Reduce(归约)"组成,主要是用于大规模数据集的并行运算,为海量的数据提供了计算。
Hadoop对数据采取可靠、高效、可伸缩的分布式方式进行并行处理,使开发软件平台和运行海量数据变得更加容易。Hadoop是一个分布式计算框架并且由Apache开源组织的,能使一些低成本的硬件设备得到充分利用并且在它们组成的集群上运行应用程序,为应用程序提供了一组稳定可靠的接口,目的在于构建可靠性高和扩展性比较好的并行分布式系统。Hadoop有以下优点:扩展性好、成本廉价、效率较高、可靠性有保障、免费开源并且有良好的可移植性。
1 分布式文件系统模型
分布式文件系统作为分布式系统中的关键技术,它最大的作用就是使信息资源共享,它采取以文件的方式把文件集中在一起管理,使文件资源达到共享的目的。在云计算环境中,分布式文件系统和本地磁盘提供的服务相比,它能使用户在查看、保存在云中的文件时能够获得更高的服务质量,使系统性更加可靠从而为用户带来良好的文件服务。
用户对远程文件的访问的服务质量能否满足是分布式文件系统的透明性需求的要求。可靠性高、良好的可用性,能够并发快速的访问文件等一些其他的设计要求也要满足,并且使文件得数据具有一致性和容错性等。针对以上的设计要求,设计出由扁平文件服务、目录服务和用户端模块3部分为主要组成的分布式文件系统服务模型。对服务器磁盘上曾经保存的文件的操作是由扁平文件服务负责,比如查看文件的属性和内容还可以创建新文件删除不用的文件,为每一个创建的新文件创建一个唯一的标示符能保证以后操作时能够引用;文件的名字和与其对应标识符之间的映射关系主要是由目录服务负责,包括创建、查找和删除目录,然后对新生成的目录由扁平文件服务管理,把它也是以文件方式保存在服务器磁盘上;扁平文件服务的封装以及目录服务的访问都需要在客户端上运行的用户模块负责,同时用户模块提供一种调用有关功能的映射:是从用户端本地文件系统的文件操作接口到远程服务器之间。相反扁平文件服务和目录服务也向客户端模块提供一种调用接口:它是一种高效、基于网络通信并且能够组成完备的文件操作集合。用户端模块与本地文件操作接口接近的方式提供给应用程序的同时将操作接口进行进一步封装,使透明化进一步提高。
2 HDFS分析与建模
当前的HDFS(Hadoop Distributed File System)架构非常容易实现,因为整个架构集群上只能存在一个namespace并且这个namespace也只能被仅有的一个namenode管理。但是执行起来并不是这么简单,可能在具体实现过程中会导致了一些局限性和模糊点,比如限制namenode的扩展,当添加机器用水平扩展来解决时却发现集群存储空间不足,所以namespace不可以扩展namenode。集群中数据块,文件和目录的数量也要受到限制,因为namenode在内存中存储了分布式文件系统中的所有元数据信息,但是当前的namespace只能存放在单个namenode上。还有Block Storage和namespace高耦合性,当前namenode中的namespace和block management的结合使得这两层架构耦合在一起,难以让其他可能namenode实现方案直接使用block storage。
鉴于以上不足,HDFS的设计与实现更加重注重大量数据在存储和管理上的高可扩展性和高可靠性,HDFS采用主从(Master/Slave)结构模型,一个HDFS集群是由一个Name Node和若干个Data Node组成的,多个Name Node的配置已经在最新的版本中实现。Name Node在HDFS架构中作为主服务器主要负责用户端对文件的访问操作和对文件系统命名空间的管理,存储的数据是由Data Node负责管理并且HDFS还支持以文件形式的数据。从内部结构来看,文件把数据分成若干块然后把这若块数据存放在一组的Data Node上。如果想查看、修改文件或者目录的名字和关闭保存文件,由文件系统的命名空间发出命令Name Node负责执行同时也负责数据块到具体Data Node之间的映射。Name Node作为所有HDFS元数据的管理者,在Name Node的统一调度下,用户在客户端对文件的读写操作和创建、删除和复制数据库相关工作是由Data Node负责执行,因此,Name Node不在用户数据上经过。用户端负责将要访问得文件的信息其中包含了文件的名字发送给Namenode,然后Namenode负责反馈在Datanode上存储文件数据块位置的相关信息给客户端,最后客户端直接和对应的Datanode建立连接并进行具体的文件操作。Namenode定期对Datanode监控并负责管理Datanode提交的已保存文件的数据信息。
根据以上描述的HDFS体系架构中的文件服务模型,就可以建立起HDFS的模型,Namenode负责提供服务器的主要目录服务,包括查看、修改文件或目录的名字和关闭文件等操作以及对文件系统名字的空间操作,同时还需要负责调度Datanode与数据块之间的映射关系。Datanode负责提供服务器侧的扁平文件服务,而处理客户端发来的文件读写请求与执行数据块的创建、删除等操作是由服务器侧的扁平文件服务负责,最后按照Namenode发出的指令对语言文件进行访问操作。
通过以上可以分析出HDFS的主要特征:
多种通信机制并存。根据通信对象分为远程过程调用,根据传输内容的不同提供数据流通信方式,提高了访问性能。
一个扁平文件可以支持众多的服务器运行。文件数据块分布广泛并且互为备份,有多个Datanode为数据库为此提供服务用户服务得到显著提高,从而保证每个节点级在系统中的高可靠性,普通的PC服务器也可以担当每个节点,有利于降低系统的成本价格。
指定的服务器为目录服务提供服务。Namenode可以使系统具有高透明性和高扩展性,因为在用户访问时可以提供统一的文件名字空间使用户访问更加高效,不但提高了对文件元数据的管理,而且还达到了从全局上对系统进行控制的目的。
3 文件系统的比较
NFS是Network File System的缩写,即网络文件系统。是一种文件系统协定使用于分散式并能在不同的系统上使用,主要功能是让在不同的机器上、不同的操作系统上的数据能够通过网络连接相互分享,在服务器磁盘中的数据通过网络让应用程序在客户端进行访问,从而实现了磁盘文件的共享在类Unix系统之间。在NFS的客户端模块和服务器侧的服务器模块共同组成了NFS分布式文件系统,NFS的客户端可以成为远程文件的客户端,服务器模块可以成为远程文件访问服务的服务器,因为在每台服务器都部署了这两个模块并且是互为对称分布,所以使集群内文件资源的共享程度更高。无状态的NFS协议负责NFS的客户端与服务器之间了的联系,远程服务器上已保存的文件和目录客户端可以通过网络进行远程操作。NFS提供了与文件系统之间访问的接口、服务器和客户端的缓存访问信息,实现了访问透明性,使访问性能得到提高。
NFS的设计体现了以前主流分布式文件系统的典型特征,而HDFS则是面向云计算的分布式文件系统的代表,NFS和HDFS在满足系统需求方面侧重点不同。HDFS具有位置透明性在访问空间时用文本文件名和统一的标示符访进行空间访问,同时具有文件移动透明性因为在Namenode节点管理和维护上使用统一的名字空间;在并行访问过程中能让多个文件数据块同时访问,有可靠的访问性能,实现了性能的透明化;在系统的扩展过程中不用通过用户直接根据负载规模增删Datanode,实现了扩展透明性;在文件方面很好的保持了文件数据的一致性,在对文件进行修改过程中在文件的一致性协议下通过原子化修改,然后把修改后的文件块自动复制多份并且分别保存在多个Datanode上;具有良好的容故障性,能去除在文件和数据块中的的冗余,PC服务器可以Linux系统下作为客户端和服务器,使文件服务有可靠的兼容性;在安全方面,用安全套接字的网络安全机制服务访问,文件的安全得到有效保障。
从以上可以看出,HDFS具有良好的透明性、可靠的扩展性,很好地满足了系统设计的要求,以这类新型的分布式文件系统为基础,将会促进了分布式计算和分布式数据库等重要技术的发展,这些技术将会促进云计算的新的发展,所以将会对当今产生巨大影响。
另外,虽然HDFS在当前的面向云计算中有美好的前景或者在相关邻域中已取得了较大的突破,但是它也具有一定的不足和局限,如访问透明性不高,在接口方面没有与传统的POSIX完全兼容的接口。在访问过程中文件不能的并发的进行更新并且在数据交互中低延时的文件数据不能交互等。
4 结束语
通过以上对Hadoop分布式文件系统的模型分析,可以看出,无论是在服务器侧提供的扁平文件服务和目录服务,还是在用户端运行的用户端模块,HDFS在设计和实现时都要考虑到如何保存和处理海量数据,并最终设计出高可扩展性、高可靠性、高效性和高容错性等满足需求的系统,并在云计算相关领域的取得非常突出的成绩。因此,HDFS一直以来都受到了业界的广泛关注,在未来它将会在更多的领域中扮演幕后英雄,为我们提供更加快捷优质的服务。但是,HDFS也不是对任何文件系统都是万能的,文件服务的提供者必须根据实际需求选择合适自己的文件系统。
参考文献
[1]Hadoop community.Hadoop distributed file system,http://hadoop.apache.org/hdfs,2010.
[2]曹宁,吴中海,刘宏志,等.HDFS下载效率的优化[J].计算机应用,,2010,30(8):2060-2065.
[3]George C,Jean D,Tim K.Distributed systems:concepts and design(3rd Edition).Addison-Wesley Publishers Limited,2000.
[4]Russel S,David G,Steve K,et al.Design and implementation of the Sun network file system.Artech House,1988
[5]陈剑,龚发根.一种优化分布式文件系统的文件合并策略[J].计算机应用,2011(S2).
[6]姚远,王丽芳,蒋泽军.-致性管理的研究[J].现代电子技术,2012(8).
[7]Wang F,Qiu J,Yang J,et al.Hadoop high availability through metadata replication.In:Proceeding of the First International Workshop on Cloud Data Management,Hong Kong,China,2009.
Hadoop系统 第11篇
【关键词】大数据;Hadoop;分布式系统;数据备份
随着计算机网络的普及,web技术和Internet在当今世界产生大量的数据,这些海量数据远远超过有记载以来所产生的数据总量。以天文学为例,2000多年以来,整个天文学的数据累积到现在是140兆兆字节的信息,而位于新墨西哥州阿帕奇山顶天文台的2.5米口径望远镜进行的红移巡天项目,在短短几个星期内就收集到多于140兆兆字节的信息量。这些海量数据每年以超过50%的速度增长,多方面的数据显示,我们已经进入了大数据时代。
由于数据量爆炸式增长,数据处理手段也是复杂多样,再加上数据结构不象传统数据那样统一存储,所以数据分析处理技术就显得尤为重要。如果数据得不到很好的处理,则海量的数据就没有任何意义,要想真正的拥有这些数据,需要解决以下几个问题:
1、存储系统的改变
数据量急剧增加,使得原有的存储系统和方法不能适应新产生的大量数据的存储要求。
2、复杂的数据结构存储
原有存储方案中,一种类型的数据库只能存储一种结构的数据。大数据的产生使得数据结构已经由原来单一的结构化数据变为结构化、非结构化、半结构化数据并存的局面。这种多数据结构的数据在目前只能存放单一数据结构的数据库中已经没有办法存储了。
3、数据处理难度增大
和处理单一的数据类型不同,将多种数据结构的数据整合、分析、挖掘并从中得出有价位的信息的难度大大增加。
对伴随大数据产生的新问题,可以逐一的解决。由于数据量极大,原来由单一媒体存储的数据,可以通过技术构建分布式存储系统,将大量数据分别存储在不同的存储系统里,不仅可以实现海量数据的存取,而且可以方便实现分布系统扩展。对于数据结构不同的问题,可以通过设置多种存储引擎,为每种数据结构提供合适的存储方案,来代替以前的结构化为主体的存储方式。多种类型的数据结构给数据分析带来极大的困难,而数据分析是数据存在的主要意义。可以通过对多种结构的数据进行集成,实现对在同一架构下对多种数据结构的分析。
Hadoop技术是解决上述问题的最好的实现框架。Hadoop是由Apache基金会开发的一种分布式平台,并且是开源的,是目前应用最为广泛的云计算软件平台。当前在行业中存在多种云计算的平台,如主要有亚马逊的EC2,谷歌的App Engine,IBM的蓝云,微软的Azure等等.Hadoop和其它的云计算平台相比主要有以下几个特点:
1、高性能
在数据测试中,Hadoop可以对PB数量级的大数据进行同时处理操作,并将结果提供给其它应用。研究人员做过大量测试,以2011个节点的Hadoop集群来进行基准测试,100GB的数据仅仅130秒中就完成了,这种数据处理能力是其它平台所不能完成的。
2、高扩展性
由于Hadoop技术主要是针对大数据操作的云计算平台,在设计的时候充分考虑到平台的可扩展性。得用Hadoop技术可以将数据轻松上万台服务节点来实现数据的存储和分析,即实现分布式的存儲和分布式的数据处理。这对传统的关系型数据库处理系统及非结构化数据处理技术来讲是不可想象的,这种可扩展性有利于数据量更大时的集群拓展工作。
3、成本效益高
传统的存储方案在存储大量重要数据的时候,往往要进行数据备份,这就对存储系统提出很高要求,而且成本大大提高。而Hadoop可以利用其高扩展性的特性,将数据存储到其扩展空间上来完成数据的存储,同时,Hadoop还可以通过保存副本的技术来保证数据的完整性和容错性。同时,由于Hadoop本身对硬件要求不高,所以它可以架构在众多低廉的设备中,以较低的成本来完成较高的收益,使得技术成本大大降低。
4、广泛应用
由于Hadoop计算平台的众多优点,加上其技术难度不高,所以它现在成为了互联网上应用最为广泛的云计算平台。目前,微软、百度、雅虎、IBM、甲骨文、淘宝等国内外大公司都积极进行Hadoop的开发和使用,众多公司也都利用此项技术为用户提供了更为全面的服务。
5、开源性
和其它的开源性技术软件一样,Hadoop的出现给云计算平台带来大量业务和服务质量的大幅度提高。作为对谷歌的MapReduce和GFS技术的开源实现,其核心技术在海量网络数据处理业务中具有明显的优势。Hadoop的技术架构如表一所示
Pig:数据分析平台,是一个基于Hadoop的针对大数据的分析平台,它提供Pig Latin,即非结构化的数据库查询语言。
Chuwa:数据分析和收集系统,针对分布式存储的大数据,它可以快速进行数据分析和指定数据收集。
Hives:数据仓库,管理分布式存储系统中的数据,它提供基于关系型数据库的查询语言,用来小范围内的数据查询。
Hbase:分布式列存储数据库,使用分布式文件系统为底层存储。
MapReudce:数据处理和执行环境,分布式数据处理模式设置,用于大规模的分布式存储机器群。
HDFS:分布式文件系统,将数据存储在不同地点或设备。
ZooKepper:分布式应用程序协调服务,提供配置维护,分布式同步等功能。
Core:一系列分布式文件系统和通用I/O的组件和接口(序列化、Java RPC和持久化数据结构)。
Avro:一种提供高效、跨语言RPC的数据序列系统,持久化数据存储。
从Hadoop的技术框架上可以看出,它要解决的主要问题就是分布式的存储和计算,在Hadoop分布式的文件体系中,客户可以远程创建文件夹并且在文件夹里保存和修改文件。允许用户创建、删除、复制、转移、重命文件等。目录结点主要负责存储和管理整个文件系统的命名空间,对文件的安全性,分布式文件系统主要依靠存储副本策略来实现文件的备份。在应用程序中,用户可以指定某一个文件在分布式系统中备份的数目(默认情况下是备份三份),程序将文件备份到3个数据结点上,其中至少有一个位于不同结点架的数据结点上。用户指定的备份数目,称为冗余因子,其信息保存在目录结点里。
Hadoop下的分布式文件系统,对文件的存储做了精心设计,一个大的数据由程序分成若干块,为了方便管理和操作,要求每一个数据块的大小都固定(除了最后一块外)。另外为了安全性,每个数据块程序都会按要求进行冗余存储。在每个目录结点上,会定期收到每个数据结点发来的存在信号和数据块列表,数据块列表包括了此数据点上所有的数据块的编号。如果目录结点长时间没有收到数据结点的存在信号,则认为此数据结点失效。
随着大数据时代的到来,今后数据处理上会越来越多的应用到云计算的平台,单一的、结构化的数据处理已经远远不能哆适应当今数据爆炸式的增长。做为当今最为流行的大数据处理技术,Hadoop还是有其不完善的地方,但是在此技术下的分布式文件系统及其数据的分析、处理、整合程序已经显示出其强大的功能和适应性。在数据安全、数据提取上Hadoop技术也做了充分的考虑,使得数據存储无后顾之忧。
参考文献
[1]Amazon E C,Amazon Elastic Compute Cloud, Retrieved Feb, 102009.
[2]许志远,李婷,王跃,移动互联网白皮书;北京:工业和信息化部电信研宄院,2013
[3]Zahariev A, Google App Engine, Helsinki University of Technology, 2009.
[4]Sims K, IBM Introduces Ready-To-Use Cloud Computing Collaboration Services Get Clients Started with Cloud Computing, 2011.
[5]Shmder D,Microsoft Azure:Security in the Cloud,WindowSecurity. com (downloaded),2009.
[6]Cooper B F,Baldeschwieler E,Fonseca Ret al.,Building a Cloud for Yahoo!, IEEE Data Eng.Bull., 32 (1)2009 36-43.
[7]余利华.分布式数据存储和处理的若干技术研究:(博士学位论文)杭州:浙江大学,2008.
[8]ZikopoulosP,Parasuraman K,Deutsch Tet al” Harness the Power of Big Data the IBM Big Data Platform, McGrawHill Professional,2012,.
[9]Sarkar D,Pro Microsoft HDInsight: Hadoop On Windows, Apress,2014
Hadoop系统 第12篇
随着全球化石能源紧张进一步加剧,加之国际社会对气候变化问题的日益关切,光伏发电作为一种新型的清洁能源利用方式,其发展前景更加广阔。为了最大化提高光伏发电系统的发电效率,加速光伏发电产业的发展,需要对光伏发电系统各项参数进行采集、处理与分析,而这些数据数量巨大、种类繁多,一般的分析方法很难完成这样的分析任务。因此,本文采用了目前流行的云计算与大数据分析方法。
本文采用了Apache基金会的开源分布式计算框架Hadoop[1,2],它能够利用低廉的设备搭建大型的计算池。它以分布式文件系统HDFS和MapReduce为核心,为用户提供系统底层透明的分布式基础架构,具有高可靠性、高扩展性、高效性和高容错性等优势,已经被广泛应用于各个领域。
1 光伏发电大数据处理系统设计实现
本文所研究的基于Hadoop的光伏发电海量数据分析系统为常州市科技支撑(工业)项目组成部分之一。该系统的基础架构包括系统整体硬件设计与Hadoop大数据处理环境搭架两大部分。
1.1 光伏发电大数据分析系统硬件整体规划
根据光伏发电系统的特点,整个海量数据分析系统的硬件框架可以分为数据采集层、传输层、储存层、处理层和应用层等[3],系统整体结构如图1所示。
采集层:该层主要是通过相关的传感器收集光伏发电系统涉及到的数据,比如实时温度,光照强度,输出电压与电流,输出功率,蓄电池电量等,该层是整个平台的基础,是数据的主要来源。
传输层:分布式光伏发电系统所在地理位置与云平台硬件的位置不可能在一起,且分布式光伏发电系统可能存在多个,此时就需要将采集的数据传输给云平台计算构架Hadoop上,方便下一步的处理。根据不同的实际情况可以使用3G模块,Zig Bee模块或者TCP/IP协议传输等。此外,不排除存在其他的一些传输方式。
储存层:数据的储存是利用Hadoop分布式文件系统HDFS,将数量众多分布在不同位置的数据储存在Hadoop的分布式文件系统上,方便数据的处理。
处理层:在这一层,主要利用MapReduce编程框架构建分布式处理程序,对HDFS中的数据进行分布式处理。
应用层:应用层主要作用是显示处理层所得到的数据,生成相关图或表,让用户能够通过这些图表直观地研究分布式光伏发电系统中存在的问题,促进光伏发电技术的发展。
1.2 Hadoop大数据处理环境搭建
1.2.1 Hadoop结构分析
Hadoop顶级项目以HDFS和MapReduce两大支撑项目为核心。除了HDFS和MapReduce两大核心项目之外,也包含其他的子项目如Common、Avro、Chukwa、Hive、HBase[3]等。Hadoop项目结构如表1所示。
HDFS是一个分布式文件系统,具有高容错性和高扩展性,所以用户能够将Hadoop集群部署在大量低廉的硬件上,组成分布式集群。HDFS采用master/salver结构对文件系统进行管理,一个Hadoop集群由一个Name Node和若干Data Node组成,Name Node扮演了master的作用,负责管理文件系统及客户端对文件的访问,Data Node则扮演了salver角色,负责它所在节点上的储存。HDFS的构架如图2所示。
MapReduce则为用户提供并行编程模式和计算框架,允许用户在不了解分布式系统底层细节的情况下开发并行处理程序。它也采用master/salver结构,其中Job Tracker作为master负责发布任务,Task-Tracker作为salver负责执行任务。它的编程原理是利用一个输入key/value对集合来产生一个输出的key/value对集合,如图3所示。这个过程中使用两个函数:Map和Reduce。
1.2.2 Hadoop集群搭建与测试[4]
Hadoop集群由三台服务器组成,一台为控制节点,两台为数据节点。首先需要在Hadoop的官网下载相应版本的Hadoop安装包,本文使用的是Hadoop的1.2.1版本。然后在节点上配置host文件,Hadoop目录用户,Java环境的搭建,SSH面密码登录,最后就是安装Hadoop及做相关配置。
安装完Hadoop集群后,可以通过在集群上运行Hadoop-1.2.1-examples.jar来测试Hadoop开发环境是否搭建成功。具体的步骤如下:
(1)进入Hadoop安装目录,默认是在home下:cd/home/Hadoop。
(2)新建文件夹file,在文件夹里面建立两个文本文件file1和file2,操作如下:
(3)在HDFS上创建输入文件夹:hadoop fs-mkdir input,上传本地文件到集群HDFS上:hadoop fs–put~/file/file*.txt input。
(4)在Hadoop集群上运行Hadoop
jar/user/share/Hadoop/hadoop-1.21.1-examples.jar wordcount input output
查看输出的结果:hadoop fs-cat/user/Hadoop/output/part-r-00000.如图4所示。
2 MapReduce大数据处理程序设计
本文所积累的大数据一共有19271行,每行数据包括了10组电压,10组电流,行号,时间,温度,风速及日照度等。部分数据如图5所示。
2.1 程序设计思路
因为每行数据都是同一个时间存储到数据库中的,因此每一行数据的温度、风速和光照是相同的。所以决定光伏发电效率的因素就是光伏组件的材料、倾斜角度和发电功率,10组光伏组件对应的材料,角度与功率如表2所示。根据以上原因,本文将每天的同一时刻的发电数据相加求其平均值并按照小时时间抽样,例如抽样的时间是18:00,然后计算其对应的发电功率,最后将抽到的数据结果画出相关图形。
2.2 程序代码编写
按照程序设计[4,5]思路,首先截取数据行的时间段并且切割其中的小时分钟(HH:MM),将其作为键key,在截取10块组件的电压作为值value。
同理,在reduce部分将所有同一时刻的数据相加起来且求出其平均值。时间依然作为key输出,平均值作为value输出。
3 结果展示与分析
3.1 材料不同,其他相同的情况
如以组件6、组件8,组件9为例:它们的角度与功率都是相同的,材料不同,通过Hadoop大数据处理后结果表明:(1)三种材料的发电量都程抛物线形分布,在早上8点开始迅速上升,在12点到16点之间达到最大,在18点的时候急速下降,符合光照强度随时间的变化而变化;(2)材料为白色双玻璃的组件在相同时间段内的输出电压值最大,其次是材料为普通背板的组件,最后是材料为白色双玻璃的组件,具体的结果如图6所示。
3.2 角度不同,其他相同的情况
如选择组件5与组件6为例:它们的材料与功率都是相同的,但安装角度不同,通过Hadoop大数据分析后结果表面:(1)两种安装角度都是程类抛物线分布,在早上8点开始迅速上升,在12点到16点之间达到最大,在18点的时候急速下降,符合光照强度随时间的变化而变化;(2)安装角度为30度的组件在相同的时间段内它的输出电压值大于安装角度为15度的组件,推测为按照角度为30度的组件与太阳的入射角度更接近垂直。具体的结果如图7所示。
3.3 功率不同,其他相同的情况
如选择组件1与组件10为例:它们的材料与角度都是相同的,但功率不同,通过Hadoop大数据分析后结果表面:(1)两种功率的组件输出电压都是程类抛物线分布,在早上8点开始迅速上升,在12点到16点之间达到最大,在18点的时候急速下降,符合光照强度随时间的变化而变化;(2)功率是300W的组件在相同的时间段内它的输出电压值大于功率是250W的组件。具体结果如图8所示。
4 结束语
本文搭建了大数据分析系统整体框架,通过分析数据结构与项目需求,设计了基于MapReduce的大数据处理程序,并将处理结果通过JFree Chart[6]画出有关图像,得出了以下结论:(1)在材料不同,其他方面相同的情况下,白色双玻璃的组件发电效率最高,其次是普通材料的组件,最后是透明双玻璃的组件;(2)在角度不同,其他方面相同的情况下,角度为30度的组件的输出电压更高;(3)在功率不同,其他相同的情况下,功率更大的输出电压更高;(4)组件的输出电压随着光照的增强而变大。
摘要:光伏发电系统的发电效率和光伏组件的材料、组件安装的倾斜角度及组件功率等因素有密切关系,为了科学地研究这些因素对发电量的实际影响,文中选择使用Hadoop大数据分析工具,它由HDFS分布式文件系统和MapReduce数据处理框架两大核心部件组成,通过它提供的强大的分布式数据处理能力,高效快捷地分析光伏发电系统运行中所产生的各种数据。实验表明该系统能够有效地完成光伏数据处理分析,从海量数据中挖掘到有用信息,对光伏发电发展提供重要助力。
关键词:云平台,分布式光伏发电,Open Stack,Hadoop
参考文献
[1]Hadoop[EB/OL].[2014-07-20].http:∥hadoop.apache.org.
[2]Tom White.Hadoop权威指南[M].2版.北京:清华大学出版社,2011.
[3]杨锋,吴华瑞,朱华吉,等.基于Hadoop的海量农业数据资源管理平台[J].计算机工程,2011,37(12):1-3.
[4]黎宏剑,刘恒.基于Hadoop的海量电信数据云计算平台研究[J].电信科学,2012,84(4):1-2.
[5]李伟,张爽,康建东.基于Hadoop的电网大数据处理探究[J].电子测试,2014(1):74-77.
Hadoop系统
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


