mapreduce编程学习(一)

1.在eclipse中编程:
首先配置环境
这里写图片描述
1.mapper代码
2.reducer代码
3.main代码

一.Hadoop 伪分布式 yarn配置 自带wordcount 运行测试

1.首先按照http://dblab.xmu.edu.cn/blog/install-hadoop/ 安装hadoop2x版本(包括java,ssh)
2.重要的几个配置文件
Etc/hadoop 下的Core-site.xml:

1. <configuration>
2. <property>
3. <name>hadoop.tmp.dir</name>
4. <value>file:/usr/local/hadoop/tmp</value>
5. <description>Abase for other temporary directories.</description>
6. </property>
7. <property>
8. <name>fs.defaultFS</name>
9. <value>hdfs://localhost:8020</value>(:9000后面会出现问题1)
10. </property>
11. </configuration>

hdfs-site.xml:

1. <configuration>
2. <property>
3. <name>dfs.replication</name>
4. <value>1</value>
5. </property>
6. <property>
7. <name>dfs.namenode.name.dir</name>
8. <value>file:/usr/local/hadoop/tmp/dfs/name</value>
9. </property>
10. <property>
11. <name>dfs.datanode.data.dir</name>
12. <value>file:/usr/local/hadoop/tmp/dfs/data</value>
13. </property>
14. </configuration>

来自 http://dblab.xmu.edu.cn/blog/install-hadoop/

mapred-site.xml:

1. <configuration>
2. <property>
3. <name>mapreduce.framework.name</name>
4. <value>yarn</value>
5. </property>
6. </configuration>

来自 http://dblab.xmu.edu.cn/blog/install-hadoop/

Yarn-site.xml:

1. <configuration>
2. <property>
3. <name>yarn.nodemanager.aux-services</name>
4. <value>mapreduce_shuffle</value>
5. </property>
6. </configuration>

来自 http://dblab.xmu.edu.cn/blog/install-hadoop/

3.启动hdfs,yarn
Sbin/start-all.sh 会有提示信息,启动了dfs和yarn
然后启动sbin/mr-jobhistory-daemon.sh
4.查看是否配置成功:
jps
这里写图片描述
简单的hadoop指令测试:
创建文件夹,上传文件
这里写图片描述
执行wordcount测试文件:
这里写图片描述
注意,这里如果集群上存在、output目录会报错
这里example中打包了多个函数,所以要wordcount指出这个函数,如果我们打包了一个函数,那么我们直接jar *.jar /input /output
5.这里我遇到两个问题:
问题1:创建文件,提示安全模式:safemode
解决:hdfs dfsadmin -safemode leave
问题2:执行测试文件时候报错
这里写图片描述
我遇到这个问题真是找了很多博客,改来改去:
问题1.将hdfs//localhost:9000改成:8020 解决方法:将core-site.xml中的地址更改,重启hadoop
问题2.namenode节点没有启动
问题3.output输出目录已经存在 解决方法;hadoop fs -rm -r /output
对于问题2:
关闭hadoop:sbin/stop-all.sh
删除 tmp目录 rm -r temp/*
格式化节点:hadoop namenode -format
启动hadoop: sbin.start-all.sh
对于datanode 节点没有启动也可以这么解决

6.提醒:每次关电脑要stop-all.sh 关闭hadoop 不然下次打开电脑,会出现错误

猜你喜欢

转载自blog.csdn.net/penypeng/article/details/80710957