2-MapReduce使用

WordCount —— MapReduce的Hello World

  • 下载输入数据
$ wget http://www.gutenberg.org/cache/epub/20417/pg20417.txt
  • 上传输入数据到HDFS
$ hdfs dfs -mkdir /tmp
$ hdfs dfs -copyFromLocal /home/zhy/pg20417.txt /tmp
  • 执行WorkCount
$ hadoop jar /usr/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /tmp/ /tmp-output

开发环境配置

  • windows8.1 + Eclipse-Luna + Hadoop2.2-eclipse-plugin插件

  • 插件参数配置

    • Map/Reduce Master 端口号50020不需修改

    • DFS Master 对应 core-site.xml

2-MapReduce使用_第1张图片
配置Map/Reduce Location
  • 开发工程配置

    • 新建Map/Reduce工程

    • 添加修改的core-site.xmlhdfs-site.xml以及log4j.properties文件到src文件夹下

    • 设置运行参数arguments,Run on Hadoop即可

hdfs://172.20.10.6:8020/input/1.txt
hdfs://172.20.10.6:8020/output

TweetTrend分布式算法

  • Map阶段

  • Reduce阶段

问题及解决方案

  • 问题 —— Eclipse插件连接被拒绝

    • 解决步骤 —— 1 通过命令行进行连接测试

    • 解决步骤 —— 2 配置文件修改,将所有使用localhost的地方改为使用主机名 node

#连接成功
$ hdfs dfs -ls hdfs://localhost:8020/

#连接拒绝
$ hdfs dfs -ls hdfs://node:8020/
  • 问题 —— UnsupportedClassVersionError[1]

    • 解决方案 —— 该问题是由于Eclipse中JDK版本和Hadoop库中JDK版本不一致导致的,修改JDK版本即可[2]
2-MapReduce使用_第2张图片
修改JDK
  • 问题 —— Could not locate executable null\bin\winutils.exe in the Hadoop binaries

    • 解决步骤 —— 1 配置HADOOP_HOME路径
    • 解决步骤 —— 2 下载winutils.exe和hadoop.dll,复制到$HADOOP_HOME/bin路径下
    • 解决步骤 —— 3 重启Eclipse
  • 问题 —— Windows.access

2-MapReduce使用_第3张图片
windows
* 解决方案 —— 将hadoop.dll复制到C:\Windows\System32路径下,成功解决

  1. 在Eclipse中运行Map/Reduce程序时出现该问题导致程序无法在Hadoop集群中运行 ↩

  2. JDK1.6到JDK1.8 ↩

你可能感兴趣的:(2-MapReduce使用)