MapReduce安装及Wordcount实例

一. MapReduce安装配置

准备工作:

①本机主要配置了3台虚拟机:node01、 node02、  node03

②配置mapreduce需要解决的配置:mapred-site.xml yarn-site.xml    yarn--site.xml

③关闭防火墙:service  iptables  stop

 

具体操作:

1.配置mapred-site.xml

//启用yarn 作为资源管理框架

<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>

 

 

2.配置yarn-site.xml

<configuration>
<!--启用mapreducer 的shuffle 功能 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
<!-- 启动高可用 --> <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property>
<!-- 定义集群名:我的名称sxt --> <property> <name>yarn.resourcemanager.cluster-id</name> <value>sxt</value> </property>
<!--定义resourcemanager别名 --> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property>
<!--为为别名指定服务器id node02 --> <property> <name>yarn.resourcemanager.hostname.rm1</name> <value>node02</value> </property>
<!--为别名指定服务器Id node03--> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>node03</value> </property>
<!--指定zk服务器--> <property> <name>yarn.resourcemanager.zk-address</name> <value>node01:2181,node02:2181,node03:2181</value> </property> </configuration>

 

3.拷贝到其它节点:scp -r  hadoop-2.6.5  node02: /home/mysoft      scp -r  hadoop-2.6.5  node03: /home/mysoft   

4.验证:jps查看进程   ------浏览器:node01:50070   node02:50070(是否active  standby)

 

 

二、利用MapReduce实现Wordcount

准备工作:

①pycharm中编写wc.py的启动脚本,需要安装mrjob包

 

  from mrjob.job import MRJob

class  WordCount(MRJob):

    def  mapper(self,key,lines):
        line =lines.strip().split(' ')

        for word in line:
            yield  word,1

    def  reduceer(self,words,occrrence):
        yield  words,sum(occrrence)


if __name__ =="__main__":
    WordCount.run()

 

 ②准备测试文本: 随机去网上摘取一段英文文本   本机: text.py

③上传hadoop:  a.在本地root新建一个MRJob目录(方便操作)   

       ,b.上传测试文件跟wc.py启动脚本到MRJob

        c.在hdfs中新建input目录并上传text.py文件: 

④在虚拟机中安装mrjob:  pip install mrjob

具体过程:

1.本地运行命令:

[root@node01 MRJob]# python3 wc.py -r local  ./text.py >outputfile

这是在MRJob目录中执行命令,将结果重定向到本地outputfile文件中!

 2.hdfs上运行命令:

[root@node01 MRJob]# python3 wc.py -r  hadoop hdfs://sxt/input/text.py

 

posted @ 2018-08-01 12:38  路人庄  阅读(209)  评论(0编辑  收藏  举报