(国网四川省电力公司攀枝花供电公司 攀枝花 617000)
摘要:随着科学技术的发展,供电公司的数据量日益增加,很多存储和计算功能靠单台主机已无法有效运行。Hadoop作为云计算的一种开源分布式计算编程模型,为企业的大数据并行计算,提供了有效处理方法。本文在hadoop框架基础上,用4台主机部署hadoop集群计算环境,并用实例测试hadoop集群环境的并行计算能力。通过实验证明,Hadoop集群环境部署成功,且并行处理能力具有很好的及时性和准确性。该计算环境为以后分析和处理供电公司的用电采集系统、PMS2.0系统和调度OMS系统等大数据文件提供了很好计算平台。
关键词:云计算, Hadoop, 集群环境,并行计算
1.引言
随着信息社会的发展,互联网上的信息和数据呈指数级增长,电力企业的数据量也日益庞大,营销专业的用电采集系统记录着用户的用电信息,运检专业的PMS2.0系统记录着电力生产管理方面的各类信息,调控中心的OMS系统记录着调度部门执行调度指令和工作票的大量信息。如何从公司这大量的数据中分析找出企业想要的数据,从而为用电客户提供更高质量的优质服务,为企业生产的精益化管理指明方向,至关重要。云计算作为一种新兴的商业计算模型,为各类大数据的高效存储和计算,提供了有效处理手段。Hadoop作为一种开源的能够对大数据进行分布式存储和计算的编程模型[1],具有易于实现,并行处理效果好,节约成本等优点[2],已被很多大型企业所采用,如Facebook,Google,Yahoo!等。
本文首先简单介绍了hadoop编程模型的基本原理,在hadoop模型基础上,用4台主机构建了hadoop分布式集群环境,并用实例测试了该环境的并行处理能力,实验证明,hadoop编程模型并行处理大数据,具有很好的及时性和准确性。为以后分析和处理供电公司的用电采集系统、PMS2.0系统和调度OMS系统等大数据文件提供了很好计算平台。
2.Hadoop编程模型
Hadoop的最核心的两个组成就是:HDFS和MapReduce。其中HDFS作用是海量的数据的存储,而MapReduce的作用就是海量的数据的计算[3]。
2.1 HDFS文件系统
HDFS体系结构中有两类节点,一类是 NameNode,又叫“元数据节点”;另一类是DataNode,又叫“数据节点”。这两类节点分别承担 Master和 Worker具体任务的执行节点[4]。
HDFS是一个主/从(Mater/Slave)体系结构,从最终用户的角度来看,它就像传统的文件系统一样,可以通过目录路径对文件执行 CRUD(Create、Read、Update和 Delete)操作[5]。但由于分布式存储的性质,HDFS集群拥有一个NameNode和一些DataNode。NameNode管理文件系统的元数据,DataNode存储实际的数据。客户端通过同 NameNode和DataNodes的交互访问文件系统。客户端联系 NameNode以获取文件的元数据,而真正的文件I/O操作是直接和 DataNode进行交互的。如图1所示。
2.2 MapReduce计算模型
MapReduce采用"分而治之"的思想[6],把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是"任务的分解与结果的汇总"[7]。
在Hadoop中,用于执行MapReduce任务的机器角色有两个[8]:一个是JobTracker;另一个是TaskTracker,JobTracker是用于调度工作的,TaskTracker是用于执行工作的。一个Hadoop集群中只有一台JobTracker。
如图2所示。每个MapReduce任务都被初始化为一个Job,每个Job又可以分为两种阶段[9]:map阶段和reduce阶段。这两个阶段分别用两个函数表示,即map函数和reduce函数。map函数接收一个<key,value>形式的输入,然后同样产生一个<key,value>形式的中间输出,Hadoop函数接收一个如<key,(list of values)>形式的输入,然后对这个value集合进行处理,每个reduce产生0或1个输出,reduce的输出也是<key,value>形式的。
3.Hadoop集群环境部署
3.1 集群环境
集群包括4个节点:1个Master,3个Slaves,局域网节点之间用一个交换机连接,可以相互ping通。
3.2 集群部署
以Master机器为例,进行相关配置,其他Slaves机器类似配置。
1)在所有机器上安装JDK文件并在/etc/profile文件中配置jdk环境变量。
2)在Master无密码访问所有Slaves(ssh无密码访问)执行以下命令:ssh-keygen –t rsa –P
3)在所有机器上安装Hadoop,并把hadoop的安装路径添加到/etc/profile文件里。
4)配置hadoop,编辑hadoop-env.sh文件,把jdk安装路径添加到文件中。
5)配置core-site.xml、hdfs-site.xml、mapred-site.xml三个文件。
3.3 hadoop集群启动及验证
1)在启动hadoop集群之前,需要对hdfs文件系统进行格式化。
2)关闭所有机器防火墙,在Master上启动hadoop,执行命令start-all.sh。如图9所示。
通过以下启动日志看出,首先启动 namenode接着启动 datanode1,datanode2,…,然后启动 secondarynamenode。再启动 jobtracker,然后启动 tasktracker1,tasktracker2,…。启动 hadoop成功后,在 Master中的tmp文件夹中生成了dfs文件夹,在Slave中的tmp文件夹中均生成了dfs文件夹和mapred文件夹。
3)验证hadoop,在Master上使用java自带小工具jps查看进程。如图10所示。
4)在slaves上查看hadoop集群状态,验证hadoop部署成功。如图11所示。
通过图10和图11可以看到,在Master和Slaves上验证hadoop集群部署成功。为后续实例测试集群的mapreduce计算能力奠定了基础。
4.单词计数实例应用
为了测试集群环境处理数据的能力,我们采取wordcount实例(单词计数)来体现mapreduce的计算思想。该程序的完整代码可以在hadoop安装包的examples目录下找到。单词计数是统计一系列文本文件中每个单词出现的次数,如图12所示。
mapreduce程序计算过程中,reduce后的汇总计算结果会存放在文件夹output下的part-r-00000文件中,打开文件可以看到单词计数计算成功,如图14所示。
通过运算wordcount程序实例证明,hadoop集群环境可以有效的处理多个大数据文件,并及时统计出单词的出现次数。而单机运行是无法及时完成大数据文件的分片和汇总操作。
5结论
本文主要针对云计算开源编程框架Hadoop进行了简单介绍,并用4台主机搭建了hadoop集群环境,并用单词计数实例测试了集群的mapreduce的计算能力,通过实验证明,hadoop 集群环境处理大数据的速度和准确性都很高。且hadoop易于实现,并行处理能力较高,节约成本等优点,已被很多大型企业所采用,均开始组建自己企业内部的私有云,为公司的大数据处理提供云计算平台。在hadoop运算过程中,不需要知道并行处理分片和汇总的具体过程,只需在map()和reduce()函数中添加具体处理代码,就可以实现大数据的并行处理,过程简单,针对性强。日后,供电公司的数据量只会越来越大,分析和处理大数据文件,提取出有效信息,为公司的发展尤为重要,搭建此hadoop集群计算环境,为以后分析和处理供电公司的用电采集系统、PMS2.0系统和调度OMS系统等各类大数据文件提供了很好计算平台。
参考文献
[1]Hadoop Wiki, http://en.wikipedia.org/wiki/Hadoop
[2]Apache Hadoop Site, http://hadoop.apache.org
[3]Hadoop文件系统HDFS:架构和设计, http://hadoop.apache.org/common/docs
[4]使用Linux 和Hadoop 进行分布式计算, http://www.ibm.com/developerworks/cn/linux/l-hadoop
[5]Dhruba Borthakur. The Hadoop Distributed File System: Architecture and Design. The Apache Software Foundation, 2007
[6]王宾.hadoop集群的部署与管理系统的设计与实现[D].南京大学, 2013
[7]Alex Rasmussen and Maximus Daehan Choi. Improving Performance in MapReduce Through Pipelining, 2006
[8]Jeffrey Dean. Experiences with MapReduce, an abstraction for large-scale computation. Proc, 15th International Conference on Parallel Architec-tures and Compilation Techniques, 2006
[9]刘军. Hadoop大数据处理 [M]. 北京: 人民邮电出版社, 2013.
[10]周敏奇,王晓玲,金澈清等译. Hadoop权威指南[M]. 北京:清华大学出版社, 2011
论文作者:赵涛
论文发表刊物:《电力设备》2017年第1期
论文发表时间:2017/3/10
标签:集群论文; 数据论文; 文件论文; 环境论文; 节点论文; 如图论文; 所示论文; 《电力设备》2017年第1期论文;