论文部分内容阅读
摘要:人们通常会误认为大数据即是大量数据,真实意义上的大数据技术则是对于数据的分類、处理、计算的综合类的技术总称。大数据技术本质是上对数据的极快计算能力,它与传统的编程技术有着本质区别。对于大数据构成以及实现较高的计算能力的探究,是每个相关行业人员提升自己的必要途径。认识大数据技术的具体构成技术、详细功能、应用领域,是每个软件开发和教育相关领域人才成长的必经途径,因此,对于此方面的研究对于个人专业能力成长具有积极意义。
关键词:大数据技术;大数据管理模块组成技术;技术分析;分支技术探析
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)27-0033-02
自从我国各领域对大数据技术产生应用需求之后,已有多个企业并计算机技术开发应用领域人员开始对多个情境下的大数据技术的需求、应用以及发展做出了应有的贡献。在大数据技术日趋成熟之际,人们对大数据的认知成熟度需要得到普遍提升,而计算机技术领域的专业人员也需要站在专业角度,对大数据技术的构成进行深入了解。这不仅对大数据技术的普及应用和持续发展有益,更对各领域的个人发展、顺应时代潮流以及个人的专业素养提升有极大帮助意义。本文中笔者结合自身对于大数据相关技术的正确认知,对大数据技术发展认识基础上的分支技术体系展开深入讨论。
1 基于分布式大数据管理模块构成的技术探究
我们在深入挖掘大数据技术对其进行了解之前,首先要了解它主要需要解决什么问题,以及能够解决什么问题。一方面,在大数据技术出现之前,IT行业各类技术发展速度不是很快,系统化应用过程中的各类软件框架体系也足够完善,普通的单个服务器为基础平台的数据库之计算能力,也足够支撑各类系统计算业务。但随着各行业数据越来越多,单机计算能力上限已经被多个行业的计算软件“触顶”。在这种情况下,大数据管理模块技术开始被人们所关注,下面分析支持它进行计算的细分技术。
首先,在大量数据储存方面,HDFS的分布式储存可以解决数据储存的困难。它可以让多个主机对同一任务进行同时计算。那么,它的实现需要周边便衍生了许多与管理和缓存有关的技术。包括:“yarn”技术可以在程序开发中帮助人解决资源难资源调节难题;“flume”可以帮助解决传输数据的问题;“sqoop”可以转换分布式储存数据与传统数据库之间的数据;“oozie”可以帮助业务程序资源调节计算任务;“kafka”则提供了发布订阅机制的消息队列;“zookeeper”可以有效地帮助用户快速完成对主备服务的选择;“hive”在HDFS的基础上提供了数仓的功能。“hbase”基“hdf”来实现一个列式数据库。然后从数据处理过程来看,对于数据库计算技术方面的大数据相关技术应用,是在普通数据库技术存在和被应用基础上对计算业务进行逻辑处理的过程。对于单一的业务处理,可以通过编写健壮的代码进行定时的任务进行相应数据的结算。若业务冗杂,需要定时获取多种数据采集分析,则通过代码实现各个JOB维护成本太高。在“Hadoop2.0”完美解决该问题,采用HQL自动生成数据的mapreduce任务基础上,多个领域的项目实践过程中,就会出现多个reduce任务就会被批量删除掉的情况。因此,Hadoop技术正在走在被淘汰的路上。那么,Hadoop 现在是一个可以用硬件集群上进行大规模数据处理的优秀工具,但是若开发人员需要处理动态数据集、点对点分析多进程数据,那么Google已经为我们展示了大大优于MapReduce范型的技术选择。因此毫无疑问,Percolator、Dremel和Pregel将成为大数据技术未来发展的主流技术。
2 支撑大数据管理模块组成的各类技术详析
为了能够更好地架构大数据项目,技术人员、项目经理、架构师等大数据管理模块开发流程中不同角色人员为了选择合适的技术,必须了解大数据各种技术之间的关系,以便选择合适的语言,实现相应的功能。那么,笔者在下面对几点中提到的大数据分支技术进行详细分析。
2.1 HDFS技术
与普通编程语言应用编写系统相比,HDFS主要改革在数据储存形式方面,HDFS即Hadoop是以流式的数据查找和提取模式对文件型数据进行规模化储存,而且大数据管理模块应用中的数据通常是占用内存过大的单元数据,HDFS运行于多个主机集群中,属于是管理网络中跨多台及其进行数据储存的文件系统支撑基础。
我们从HDFS技术应用的过程来分析使用数据块的益处:在程序运行过程中,HDFS上的文件会被划成64MB大的多个分块,每一个数据块都可以存储不同的数据。文件型数据块不需要储存在同一个磁盘上,因此它们可以利用集群上的任意一个磁盘实现存储。所以这从根本上大幅提升了大量数据管理的效率。而HDFS技术也可以提高系统中对数据储存的容错力。在业务处理方面HDFS的优点更为明显:HDFS的应用可以做到简化储存子系统的设计,将每个服务器的储存子系统控制单元设置为“块”,因此可实现简化储存管理,用一个单独的系统就可以管理这些块的元数据,这就大幅减轻了服务器的数据管理压力。
2.2 yarn技术
Hadoop集群管理员希望能根据不同的业务组或不同的用户对集群yarn作业的资源进行控制,也就是对yarn的资源池进行划分,达到资源管控、任务管控的效果。yarn技术管理分配资源细节如下:yarn默许提供了多种资源分配的策略,用于分配的资源可以是节点的数量、内存的大小、CPU核数,它主要将MP1中JobTracker的资源管理和作业资源调节两个功能分散,分别由ResourceManager和ApplicationMaster进程来实现管理,以负责整个集群的资源管理和资源调度,并负责处理应用程序提出的事件,比如调节任务及数据资源、监视运行任务情况和出错信息等,具体作用体现在“模块提交作业”“初始化作业”“分配任务和运行”“更新模块运行相关数据”等方面。而Flume可以通过运行可靠的服务模块,用于有效地收集和移动日志数据,使用简单的可扩展数据模型,被允许收集日志数据,导进到HDFS中并实现在线分析应用程序。因此,HDFS是Hadoop应用程序中主要的分布式储存系统。 2.3 sqoop技术
sqoop解决了分布式寄存数据与普通数据之间的转换。它属于可以将Hadoop和关系型数据库之间实现数据导进导出的工具型技术。它可以通过sqoop把数据从普通数据库,包括Mysql数据库和Oracle数据库中导进到HDFS中,反之亦可。sqoop通过Hadoop的MapReduce导进导出数据库中的数据,因此它提供了很高的并行优势以及良好的容错性。通过sqoop技术的应用,开发大数据管理模块的人员可以将数据从普通数据库中导出,并导进到HDFS中。导进到HDFS的数据形式为数据库表、查询结果,以及从HDFS中导出的文件形式则是数据库表或者集合类型的文件。在HDFS导进数据的多个进程可以并发运行,这时的输出的可以是多个文件输出结果。这些文件可能是标准的文本文件,也可以是Avro或者SequeenceFiles的记录文件。总结来说,sqoop是可以在大数据系统运行模块中将db数据与hadoop之间交换数据,而将其应用于系统开发过程中,则需要开发人员参照较为冗杂的使用文档。
在优点显著的同时,sqoop也有些许缺点。因为hbase技术显然采用的是基于HDFS为核心的列式数据库存储数据的形式,是多种分布式、可以扩展的大数据储存方式,它能够为各种大数据集上随机和及时的阅读、写数据进行访问功能,并且能够实现分布式的列型数据储存,能快速地索引查询数据。较其他普通的数据库处理技术而言,hbase对于写入的时间更为随意,因此hbase总会有很多超时的现象,这成为了许多开发者在程序开发后的运行测试中的诟病。因此,此项技术目前仍然正在进行持续的优化。最后是接收数据的“Hive”技术应用模块,acheHive提供完整的HiveQL查询功能之外,还是一个数据仓库系统。而zookeeper可以实现类似“主从后台事件列序”“分配事件”“协调负载”等多种功能。
2.4 Oozie的应用特点和优点
Oozie是用于Hadoop平台开源的技术,用工作流资源调节引擎,用来管理Hadoop作业,它是属于Web应用程序。因为Oozie的工作流必须在一个有固定流程的无环结构中,所以,使用Oozie时,若前一个任务执行失败,后一个任务将不会被资源调节。优点是当用户需要执行多个关联的MR任务时,只需要将MR执行顺序写入workflow.xml文件,然后使用Oozie提交本次任务,Oozie会托管此任务流。而Oozie对工作流的指定,与Jboss jBPM提供的jPDL一样,提供了类似的流程定义语言hPDL,它可以利用XML文件格式来定义流程。对于工作流系统,一般会有很多不同功能的节点,比如分支,并发等等。Oozie的控制流节点和动作节点可以让开发者定义流程的开始与结束,并能够以及控制流程和定位具体数据地址。
2.5 Kafka的特点和应用优点
Kafka可以用于即時构建数据流传输程序以及流式数据处理、应用程序。它具有水平可扩展性、容错性、速度极快的特点。此外,它的运行过程具备三个特点:“消息”“持久化”“流处理”。客户端服务器通过使用TCP协议进行模块间的数据交互,具体的数据流的写入过程则有支持多种语言的特征,此外,它还支持主题和日志功能,一个主题可以有零个、一个或多个用户写入数据。对于每个主题,Kafka可以维护一个模块日志,每一个分区都成为一个有序且不可变的记录序列,不断添加到结构化的提交日志中,这使得Kafka技术应用有“用户在应用程序过程中特别容易使用”的特点。
3 大数据管理模块技术成熟之上的应用领域
严格意义上讲,大数据技术是数据分析的前沿技术,那么,从大量、各类的数据中,及时获取有价值的信息的技术应用,就是大数据技术得到发展的缘由和最终意义,对于大数据技术在实际生产和生活中的应用领域大致分为以下几个方面:第一,移动互联网出现后,为了提升移动设备用户的用体验,在移动设备的用户点击行为数据记录过程中,应用到了大数据技术。第二,在数据记录、保存方面,大数据技术在音乐文件保存、视频资料保存、监控录像数据保存方面对大数据技术进行了应用。第三,在交通方面,如百度、高德、Google等电子地图为了人们出现更加便利,在应用大数据技术过程中同样利用大数据技术挖掘并提取、计算了大量有价值的信息。第四,随着移动设备的加入,人们的社交行为产生了大量的数据,这为人们生活环境安全性的巩固促进了大数据技术发展。第五,人们使用搜索引擎搜索数据期间,搜索引擎为向用户提供更多有价值的信息,应用了大数据技术。
4 结束语
综上所述,对于大数据技术的成熟的认识,要从大数据技术应用过程以及解决问题过程中应用的不同技术展开分析,这不仅能让我们在当下社会跟上IT行业发展的步伐,更能减轻我们学习、实践、应用大数据技术过程中的恐惧心理和畏难情绪,助力我们的专业能力步步高升。
参考文献:
[1] 彭宇,庞景月,刘大同,等.大数据:内涵、技术体系与展望[J].电子测量与仪器学报,2015,29(4):469-482.
[2] 程学旗,靳小龙,王元卓,等.大数据系统和分析技术综述[J].软件学报,2014,25(9):1889-1908.
【通联编辑:代影】
关键词:大数据技术;大数据管理模块组成技术;技术分析;分支技术探析
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)27-0033-02
自从我国各领域对大数据技术产生应用需求之后,已有多个企业并计算机技术开发应用领域人员开始对多个情境下的大数据技术的需求、应用以及发展做出了应有的贡献。在大数据技术日趋成熟之际,人们对大数据的认知成熟度需要得到普遍提升,而计算机技术领域的专业人员也需要站在专业角度,对大数据技术的构成进行深入了解。这不仅对大数据技术的普及应用和持续发展有益,更对各领域的个人发展、顺应时代潮流以及个人的专业素养提升有极大帮助意义。本文中笔者结合自身对于大数据相关技术的正确认知,对大数据技术发展认识基础上的分支技术体系展开深入讨论。
1 基于分布式大数据管理模块构成的技术探究
我们在深入挖掘大数据技术对其进行了解之前,首先要了解它主要需要解决什么问题,以及能够解决什么问题。一方面,在大数据技术出现之前,IT行业各类技术发展速度不是很快,系统化应用过程中的各类软件框架体系也足够完善,普通的单个服务器为基础平台的数据库之计算能力,也足够支撑各类系统计算业务。但随着各行业数据越来越多,单机计算能力上限已经被多个行业的计算软件“触顶”。在这种情况下,大数据管理模块技术开始被人们所关注,下面分析支持它进行计算的细分技术。
首先,在大量数据储存方面,HDFS的分布式储存可以解决数据储存的困难。它可以让多个主机对同一任务进行同时计算。那么,它的实现需要周边便衍生了许多与管理和缓存有关的技术。包括:“yarn”技术可以在程序开发中帮助人解决资源难资源调节难题;“flume”可以帮助解决传输数据的问题;“sqoop”可以转换分布式储存数据与传统数据库之间的数据;“oozie”可以帮助业务程序资源调节计算任务;“kafka”则提供了发布订阅机制的消息队列;“zookeeper”可以有效地帮助用户快速完成对主备服务的选择;“hive”在HDFS的基础上提供了数仓的功能。“hbase”基“hdf”来实现一个列式数据库。然后从数据处理过程来看,对于数据库计算技术方面的大数据相关技术应用,是在普通数据库技术存在和被应用基础上对计算业务进行逻辑处理的过程。对于单一的业务处理,可以通过编写健壮的代码进行定时的任务进行相应数据的结算。若业务冗杂,需要定时获取多种数据采集分析,则通过代码实现各个JOB维护成本太高。在“Hadoop2.0”完美解决该问题,采用HQL自动生成数据的mapreduce任务基础上,多个领域的项目实践过程中,就会出现多个reduce任务就会被批量删除掉的情况。因此,Hadoop技术正在走在被淘汰的路上。那么,Hadoop 现在是一个可以用硬件集群上进行大规模数据处理的优秀工具,但是若开发人员需要处理动态数据集、点对点分析多进程数据,那么Google已经为我们展示了大大优于MapReduce范型的技术选择。因此毫无疑问,Percolator、Dremel和Pregel将成为大数据技术未来发展的主流技术。
2 支撑大数据管理模块组成的各类技术详析
为了能够更好地架构大数据项目,技术人员、项目经理、架构师等大数据管理模块开发流程中不同角色人员为了选择合适的技术,必须了解大数据各种技术之间的关系,以便选择合适的语言,实现相应的功能。那么,笔者在下面对几点中提到的大数据分支技术进行详细分析。
2.1 HDFS技术
与普通编程语言应用编写系统相比,HDFS主要改革在数据储存形式方面,HDFS即Hadoop是以流式的数据查找和提取模式对文件型数据进行规模化储存,而且大数据管理模块应用中的数据通常是占用内存过大的单元数据,HDFS运行于多个主机集群中,属于是管理网络中跨多台及其进行数据储存的文件系统支撑基础。
我们从HDFS技术应用的过程来分析使用数据块的益处:在程序运行过程中,HDFS上的文件会被划成64MB大的多个分块,每一个数据块都可以存储不同的数据。文件型数据块不需要储存在同一个磁盘上,因此它们可以利用集群上的任意一个磁盘实现存储。所以这从根本上大幅提升了大量数据管理的效率。而HDFS技术也可以提高系统中对数据储存的容错力。在业务处理方面HDFS的优点更为明显:HDFS的应用可以做到简化储存子系统的设计,将每个服务器的储存子系统控制单元设置为“块”,因此可实现简化储存管理,用一个单独的系统就可以管理这些块的元数据,这就大幅减轻了服务器的数据管理压力。
2.2 yarn技术
Hadoop集群管理员希望能根据不同的业务组或不同的用户对集群yarn作业的资源进行控制,也就是对yarn的资源池进行划分,达到资源管控、任务管控的效果。yarn技术管理分配资源细节如下:yarn默许提供了多种资源分配的策略,用于分配的资源可以是节点的数量、内存的大小、CPU核数,它主要将MP1中JobTracker的资源管理和作业资源调节两个功能分散,分别由ResourceManager和ApplicationMaster进程来实现管理,以负责整个集群的资源管理和资源调度,并负责处理应用程序提出的事件,比如调节任务及数据资源、监视运行任务情况和出错信息等,具体作用体现在“模块提交作业”“初始化作业”“分配任务和运行”“更新模块运行相关数据”等方面。而Flume可以通过运行可靠的服务模块,用于有效地收集和移动日志数据,使用简单的可扩展数据模型,被允许收集日志数据,导进到HDFS中并实现在线分析应用程序。因此,HDFS是Hadoop应用程序中主要的分布式储存系统。 2.3 sqoop技术
sqoop解决了分布式寄存数据与普通数据之间的转换。它属于可以将Hadoop和关系型数据库之间实现数据导进导出的工具型技术。它可以通过sqoop把数据从普通数据库,包括Mysql数据库和Oracle数据库中导进到HDFS中,反之亦可。sqoop通过Hadoop的MapReduce导进导出数据库中的数据,因此它提供了很高的并行优势以及良好的容错性。通过sqoop技术的应用,开发大数据管理模块的人员可以将数据从普通数据库中导出,并导进到HDFS中。导进到HDFS的数据形式为数据库表、查询结果,以及从HDFS中导出的文件形式则是数据库表或者集合类型的文件。在HDFS导进数据的多个进程可以并发运行,这时的输出的可以是多个文件输出结果。这些文件可能是标准的文本文件,也可以是Avro或者SequeenceFiles的记录文件。总结来说,sqoop是可以在大数据系统运行模块中将db数据与hadoop之间交换数据,而将其应用于系统开发过程中,则需要开发人员参照较为冗杂的使用文档。
在优点显著的同时,sqoop也有些许缺点。因为hbase技术显然采用的是基于HDFS为核心的列式数据库存储数据的形式,是多种分布式、可以扩展的大数据储存方式,它能够为各种大数据集上随机和及时的阅读、写数据进行访问功能,并且能够实现分布式的列型数据储存,能快速地索引查询数据。较其他普通的数据库处理技术而言,hbase对于写入的时间更为随意,因此hbase总会有很多超时的现象,这成为了许多开发者在程序开发后的运行测试中的诟病。因此,此项技术目前仍然正在进行持续的优化。最后是接收数据的“Hive”技术应用模块,acheHive提供完整的HiveQL查询功能之外,还是一个数据仓库系统。而zookeeper可以实现类似“主从后台事件列序”“分配事件”“协调负载”等多种功能。
2.4 Oozie的应用特点和优点
Oozie是用于Hadoop平台开源的技术,用工作流资源调节引擎,用来管理Hadoop作业,它是属于Web应用程序。因为Oozie的工作流必须在一个有固定流程的无环结构中,所以,使用Oozie时,若前一个任务执行失败,后一个任务将不会被资源调节。优点是当用户需要执行多个关联的MR任务时,只需要将MR执行顺序写入workflow.xml文件,然后使用Oozie提交本次任务,Oozie会托管此任务流。而Oozie对工作流的指定,与Jboss jBPM提供的jPDL一样,提供了类似的流程定义语言hPDL,它可以利用XML文件格式来定义流程。对于工作流系统,一般会有很多不同功能的节点,比如分支,并发等等。Oozie的控制流节点和动作节点可以让开发者定义流程的开始与结束,并能够以及控制流程和定位具体数据地址。
2.5 Kafka的特点和应用优点
Kafka可以用于即時构建数据流传输程序以及流式数据处理、应用程序。它具有水平可扩展性、容错性、速度极快的特点。此外,它的运行过程具备三个特点:“消息”“持久化”“流处理”。客户端服务器通过使用TCP协议进行模块间的数据交互,具体的数据流的写入过程则有支持多种语言的特征,此外,它还支持主题和日志功能,一个主题可以有零个、一个或多个用户写入数据。对于每个主题,Kafka可以维护一个模块日志,每一个分区都成为一个有序且不可变的记录序列,不断添加到结构化的提交日志中,这使得Kafka技术应用有“用户在应用程序过程中特别容易使用”的特点。
3 大数据管理模块技术成熟之上的应用领域
严格意义上讲,大数据技术是数据分析的前沿技术,那么,从大量、各类的数据中,及时获取有价值的信息的技术应用,就是大数据技术得到发展的缘由和最终意义,对于大数据技术在实际生产和生活中的应用领域大致分为以下几个方面:第一,移动互联网出现后,为了提升移动设备用户的用体验,在移动设备的用户点击行为数据记录过程中,应用到了大数据技术。第二,在数据记录、保存方面,大数据技术在音乐文件保存、视频资料保存、监控录像数据保存方面对大数据技术进行了应用。第三,在交通方面,如百度、高德、Google等电子地图为了人们出现更加便利,在应用大数据技术过程中同样利用大数据技术挖掘并提取、计算了大量有价值的信息。第四,随着移动设备的加入,人们的社交行为产生了大量的数据,这为人们生活环境安全性的巩固促进了大数据技术发展。第五,人们使用搜索引擎搜索数据期间,搜索引擎为向用户提供更多有价值的信息,应用了大数据技术。
4 结束语
综上所述,对于大数据技术的成熟的认识,要从大数据技术应用过程以及解决问题过程中应用的不同技术展开分析,这不仅能让我们在当下社会跟上IT行业发展的步伐,更能减轻我们学习、实践、应用大数据技术过程中的恐惧心理和畏难情绪,助力我们的专业能力步步高升。
参考文献:
[1] 彭宇,庞景月,刘大同,等.大数据:内涵、技术体系与展望[J].电子测量与仪器学报,2015,29(4):469-482.
[2] 程学旗,靳小龙,王元卓,等.大数据系统和分析技术综述[J].软件学报,2014,25(9):1889-1908.
【通联编辑:代影】