服务器中的大数据与MapReduce
经常会有人说你的数据量太大了,毫无疑问随着大量设备与互联网的互联,还有企业对数据决策的敏感程度,所收集的数据已经远远超过了我们的处理能力。所幸的是,一些开源的软件项目提供了开源的海量数据处理解决方案,利用多台机器(香港服务器)上进行分布式处理数据,Hadoop就是其中的佼佼者。Hadoop是MapReduce框架下的一个免费开源的实现。MapReduce是分布式计算的框架。该框架可以将单个计算作业分配给多台服务器(香港服务器)执行。如果单击运行时间很长,使用多台服务器(香港服务器)将大大降低实现的时间,提升执行效率。
MapReduce在多个单节点组成的集群上运行,其工作原理是:单个作业被分割成很多小份作业,输入的数据也被分配到各个节点,各个节点对输入数据做运算,该过程称为Map阶段;输出数据经过排序后再被分成小份分给各个节点做下一步处理,该阶段称为reduce阶段;reduce输出的就是程序得最终执行结果。这样做的优点在于:可以在短时间内完成大量工作;缺点是:算法必须经过重写,需要对系统工程有一定的理解,而且处理的数据必须是数值型和标称型数据。
注:在任何时候,每个Map和Reduce之间都是互相不通信的。每个节点只处理自己的事务,且在本地分配的数据集上运算。
Hadoop流:Hadoop是开源的Java项目,为运行MapReduce作业提供了大量所需功能,Hadoop可以运行Java之外的其他语言编写的分布式程序。随着Python的火热流行,本人将用Phython编写MapReduce代码,并在Hadoop流中运行。比如如果使用Mapper.py(Python程序格式)调用Map,用Reducer.py调用Reducer,那么Hadoopliu就可以像Linux指令那样运行。
如:cat inputFile.txt | python mapper.py | sort | python reducer.py >
outputFile.txt
MapReduce上机器学习:如用MapReduce处理简单贝叶斯、K-邻近值算法、支持向量机制算法(SVM)、奇异值分解、K-均值聚类算法。
(1)首先使用Python中使用mrjob来自动化MapReduce。因为算法要经过多次迭代。Mrjob可以与EMR无缝集成。使用mrjob在EMR上运行Hadoop流,不需要再担心输入的指令是否正确。有了mrjob用户可以在自己的Hadoop集群上运行MapReduce作业也可以在单机上进行测试。
在单机上测试:
% python mumuin.py
在hadoop集群上测试:
% python mumuin.py -r emr
本次讲解就到这里,相信小编已经给大家对于MapReduce框架和机器学习做了一些正确合理的普及,大家现在应该理解MapReduce框架是如何进行机器学习算法实战的了,喜欢动手的朋友可以使用Phython在安装MapReduce基础上继续机器学习算法解析,这样会对机器学习算法有更深的了解(上述操作本人都亲自试验过)。
希望大家踊跃的购买我们公司的香港服务器,更好的进行大数据、机器学习相关的研究和实战。
如果还有什么不明确或者不懂的地方,欢迎来到新世界主机咨询了解,详情请咨询Skpey咨询:vpssj.net@hotmail.com, 。我们必将竭诚为您服务。