基于Hadoop的对俄贸易大数据分析系统研究
2018-02-02王丽红刘平于光华
王丽红+刘平+于光华
摘要:大数据时代下,进出口企业发展出了跨境电子商务或在线国际贸易的新型虚拟网络贸易平台,需要对海量的贸易数据进行收集并完成处理。为了处理这些海量贸易数据,基于Hadoop 大数据分析工具设计并实现了对俄贸易大数据分析处理系统,通过它提供的强大的分布式数据处理能力,高效快捷地分析对俄贸易的各种数据。实验表明该系统能够有效地完成对俄贸易数据处理分析,从海量数据中挖掘到有用信息,从而可靠地、高效地对贸易数据进行存储和分析,帮助企业制订营销计划。
关键词:对俄贸易大数据;大数据分析;hadoop;MapReduce
中图分类号:TP319 文献标识码:A 文章编号:1009-3044(2018)01-0020-03
Abstract: In the era of big data, import and export enterprises have developed a new virtual network trading platform for cross-border e-commerce or online international trade, which requires the collection and processing of massive trade data.. In order to deal with the massive trade data, Large data analysis and processing system for Russian trade was was designed and implemented Based on the Hadoop, through which provide powerful distributed data processing capabilities, efficient and quick analysis on Russia's trade all kinds of data. Experiments show that the system can effectively complete analysis on Russia's trade data processing to the useful information from huge amounts of data mining, so as to reliably and efficiently for trade data for storage and analysis, to help enterprises make the marketing plan.
Key words: Big Data of russian trade; Big Data Analysis; hadoop; MapReduce
大數据时代下,信息数据化的同时,更多的企业利用电子商务开展贸易活动。在更少的时间里获取丰富且具有时效性的数据信息,可以提高企业业务处理能力和贸易交易率,为客户和企业带来双赢的便利。黑龙江省的对俄贸易一直引领全国,在“一带一路”发展战略影响下,我省的对俄经贸合作必将进入新一轮峰值期,如何存储、处理海量的贸易数据并监测市场需求使我们面临的新问题。就当前实际情况引入Hadoop来对海量数据进行分析存储[1]。
Hadoop 是 Apache 基金的一个开源的大数据处理框架,核心部分由HDFS(分布式文件系统)和MapReduce(并行计算模型)两大模块组成[2],HDFS可以高效地完成大规模数据集的高效存储,MapReduce将应用程序要处理的工作分成若干小块,是开发人员轻松实现分布式应用程序员。二者的集合使用户可以在上层编写分布式程序而不需要了解其底层的细节情况。可以让使用者充分利用集群的优势进行分布式的高速的存储和运算。HDFS与MapReduce的结合使得Hadoop变得更加强大[3]。
本文设计并实现了基于Hadoop的大数据分析系统,用以处理和分析海量的对俄贸易数据,并通过结果为企业提供相关信息。
1 基于Hadoop的大数据分析系统架构设计
1.1 系统基本架构
基于Hadoop的大数据分析系统按照逻辑分层的方法划分为以下3层[4],分别是“数据存储层”、“数据处理层”和“应用层”。大数据分析系统架构如图1所示。
数据存储层: 利用 Hadoop分布式文件系统 HDFS,根据数据特点和具体业务需求将数据分类存储。大量历史数据经过HIVE管理存储[5],需要快速查询并响应的数据交给 HBASE 进行存储划分。将整理后的数据保存成文件存放在 HDFS 分布式文件系统上,方便数据的处理。
数据处理层:这一层是大数据分析系统的核心层,在这一层,主要应用 MapReduce编程框架构建分布式处理程序,利用Hadoop 的组件执行对应的工作完成大型数据的各种需求分析。数据处理层中的业务逻辑分析模型用以识别业务功能,识别后被分解成相应的任务对 HBase 进行操作。 利用模型库把一些常用的模型和分析结果数据进行固化。中间件通过相应参数对应用层具体需求做出判断,并根据判决结果决定把任务送给 Hive 处理还是 HBase处理。
应用层: 将数据处理层得到的数据用相关图或表进行表示,通过图表用户能够直观地研究对俄贸易数据的商机及存在的问题,促进对俄贸易的发展。
1.2 Hadoop 集群硬件架构设计
Hadopp集群是由5台服务器和10台PC机组成的集群,服务器集群上安装linux操作系统,在10台PC机上安装虚拟Linux Cont OS 系统,并在每台机器上安 装 JDK、SSH、Hadoop 和HBase。一台服务器作为Hadoop集群的client,负责数据进行Hbase和Hive入库。一台服务器作为Namenode,剩余3台服务器和10台PC机作为Hadoop集群的datanode,其中两台datanode作为中间件服务器。endprint
2 基于Hadoop的大数据分析系统实现
2.1 数据统计实现
大数据分析系统需要针对对俄贸易数据进行分析和统计,而应用MapReduce算法框架需要使用者自己编写程序,这对于使用该分析系统的员工来讲难以实现。Hive所提供的数据库语言HiveQL,可以将类sql语言转化为在Hadoop中执行的MapReduce任务。使得数据库操作人员上手简单且功能强大。Hive与普通关系数据库比较如表1所示。
由表1可知,Hive由于利用 Map Reduce 进行并行计算,因此可以支持很大规模的数据,在处理的数据规模和可扩展性上有相当大的优势。
2.2 数据存储实现
为了提高存储效率和减少硬盘的访问次数,先将数据放到内存里,达到一定数目时写入本地文件,在将数据通过 Hadoop 提供的 API上传到 HDFS。而HDFS 的设计是每个文件占用整个数据块时存储效率最高,為了提高存储效率,减少Name Node 的元数据,因此将本地文件控制在 64M 大小,再上传到 HDFS[1]。
2.3 数据查询实现
对于在海量数据中迅速定位到几条或几十条符合条件的数据,就犹如大海捞针。在大数据分析系统中应用HBase这个分布式数据库,可以实现高速的写入和读取。HBase表由行和列组成,查询时,都是通过行键来进行搜索的,因此行键的规划尤为重要。根据行表可以将HBase分成多个Region,HBase的所有数据保存在HDFS中,由Region负责完成数据的读取。某个Region内的数据只能保存在一个主机上。为了解决读写矛盾,在行键前添加一个hash值,即可使数据写入不同的Region,可以充分发挥分布式系统的优势。
2.4 数据处理实现
Hadoop 对数据处理是通过 MapReduce 来完成的。系统将数据划分为若干数据块, Map 节点对数据块分析处理后会返回一个中间结果集,并对中间结果使用一定的策略进行适当的划分处理,保证相关数据传送到Reduce节点。Reduce节点所处理的数据可能来自多个Map节点,为了减少数据通信开销,中间结果在进入Reduce节点前会进行一定的合并处理,Reduce节点将接收到的数据进行归纳总结。Map节点 和 Reduce节点在数据处理时可能会并行运行,即使不是在同一系统的同一时刻。因此MapReduce 为并行系统的数据处理,提供了一个简单优雅的解决方案。
2.5 复杂数据模型分析实现
除了大部分应用进行统计查询就可以满足,但还有很重要的一部分任务需要进行复杂的数据建模来进行分析。算法步骤如下:
1) 数据提取。
2) 判断提取数据是否在Hadoop中,若在,提取Hadoop中已有数据,若不在,则导入外部数据。
3) 数据处理,选择复杂算法。
4) 算法是否包含在Mahout中或者已导入,若是转步骤5,否则导入所需算法转步骤5。
5) 设置算法参数。
6) 进行算法迭代并判断是否完成迭代,若完成输出最终结果,否则继续步骤6。
3 结果分析
文中程序是在搭建的Hadoop并行计算平台上运行的,平台有15个节点,15个节点包括一台client,一台Namenode,13台Datanode。其中5台服务器配置八核 CPU、内存64G、硬盘400G、千兆以太网;另外10台 PC 机配置双核 CPU、内存 8G、百兆以太网、硬盘 300G。
在数据量比较小时,HDFS的性能体现并不明显,当文件数据量比较大时,HDFS的性能优势可以充分体现出来。运行文件大小为100M不变,但是文件数量从1个到10个增加,运行总时间和平均运行时间如图2所示。
根据对比图可知,文件数量的增加导致运行总体时间在增加,但是平均处理时间呈下降趋势。同时若运行文件数量相同,文件大小从10M增加到500M,随着文件大小增加,总体时间是成上涨趋势的,但是平均时间是呈下降趋势的。
4 结束语
对于对俄贸易数据海量的特点,设计并实现了基于Hadoop 的大数据分析系统。应用 HDFS 设计实现了数据的分布式存储,使用Hive组件来完成大数据分析的统计任务,应用HBase分布式数据库,可以实现高速的写入和读取文件。将文件合理的分布到每个节点,并对文件进行了 3 节点备份,保证了系统的安全;基于Hadoop的Map Reduce 模型实现数据并行储存与处理,随着数据量的增大,集群处理数据的优势越来越明显。因此基于 Hadoop 的对俄贸易大数据处理是非常安全有效的。
参考文献:
[1] 张国栋. 基于 Hadoop 技术的电信大数据分析平台设计与实现[D]. 上海: 上海交通大学, 2014.
[2] Apache Hadoop Next Gen Map Reduce (YARN) [EB/OL]. 2013.
http://hadoop.apache.org/docs/r2.2.0/hadoop-yarn/hadoop-yarn-site/YARN.html.
[3] 陈浩. 基于Hadoop的农业电子商务数据平台构建关键技术研究[D]. 武汉: 华中师范大学, 2015.
[4] Hadoop 官方网站[EB/OL]. http://hadoop.apache.org.
[5] Edward Capriolo, Dean Wampler, Jason Rutherglen.Programming Hive[M]. O'Reilly Media, 2012.
[6] 李伟. 基于Hadoop 的电网大数据处理探究[J]. 电子测试, 2014(1).endprint