系统: Ubuntu14.04

Hadoop版本: 2.7.2

参照http://www.cnblogs.com/taichu/p/5264185.html中的分享,来学习运行第一个hadoop程序。

在hadoop的安装文件夹 /usr/local/hadoop下创建input文件夹

hadoop@hadoopmaster:/usr/local/hadoop$ mkdir ./input

然后copy几个文档到input文件夹中作为WordCount的输入

hadoop@hadoopmaster:/usr/local/hadoop$ cp *.txt ./input

执行WordCount

hadoop@hadoopmaster:/usr/local/hadoop$ hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.7.2-sources.jar org.apache.hadoop.examples.WordCount input/ output

运行时报错

Exception in thread "main" org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://hadoopmaster:9000/user/hadoop/input

按照http://rangerwolf.iteye.com/blog/1900615中提供的解决方案把usr/local/hadoop/input文件夹put到hdfs中

hadoop@hadoopmaster:/usr/local/hadoop$ hdfs dfs -put ./input/ input (这里在input前加上 / 就不会报错了,后同)
报错:put: `input': No such file or directory

直接mkdir也会出现同样的问题

hadoop@hadoopmaster:~$ hdfs dfs -mkdir input
mkdir: `input': No such file or directory
加上 / 成功put了后再执行WordCount,仍然报错,Input path does not exist: hdfs://hadoopmaster:9000/user/hadoop/input

这里的input文件夹路径是/user/hadoop/input,但我的路径是/usr/local/input,是不是这个原因导致找不到路径呢

参考http://stackoverflow.com/questions/20821584/hadoop-2-2-installation-no-such-file-or-directory中的回答,在hdfs中创建/user/hadoop/

hadoop@hadoopmaster:hdfs dfs -mkdir -p /user/hadoop

将input文件夹添加到该文件夹下(这一步是在eclipse中进行的)

现在我的hdfs的文件结构是这样的

hadoop@hadoopmaster:/usr/local/hadoop/etc/hadoop$ hdfs dfs -ls -R /
drwxr-xr-x   - hadoop supergroup          0 2016-03-16 21:39 /input
-rw-r--r--   2 hadoop supergroup      15429 2016-03-16 21:39 /input/LICENSE.txt
-rw-r--r--   2 hadoop supergroup        101 2016-03-16 21:39 /input/NOTICE.txt
-rw-r--r--   2 hadoop supergroup       1366 2016-03-16 21:39 /input/README.txt
drwx------   - hadoop supergroup          0 2016-03-16 21:17 /tmp
drwx------   - hadoop supergroup          0 2016-03-16 21:17 /tmp/hadoop-yarn
drwx------   - hadoop supergroup          0 2016-03-16 21:17 /tmp/hadoop-yarn/staging
drwx------   - hadoop supergroup          0 2016-03-16 21:17 /tmp/hadoop-yarn/staging/hadoop
drwx------   - hadoop supergroup          0 2016-03-16 21:41 /tmp/hadoop-yarn/staging/hadoop/.staging
drwxr-xr-x   - hadoop supergroup          0 2016-03-16 21:51 /user
drwxr-xr-x   - hadoop supergroup          0 2016-03-16 22:02 /user/hadoop
drwxr-xr-x   - hadoop supergroup          0 2016-03-16 21:57 /user/hadoop/input
-rw-r--r--   3 hadoop supergroup      15429 2016-03-16 21:57 /user/hadoop/input/LICENSE.txt
-rw-r--r--   3 hadoop supergroup        101 2016-03-16 21:57 /user/hadoop/input/NOTICE.txt
-rw-r--r--   3 hadoop supergroup       1366 2016-03-16 21:57 /user/hadoop/input/README.txt
执行
hadoop@hadoopmaster:/usr/local/hadoop/etc/hadoop$ hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.7.2-sources.jar org.apache.hadoop.examples.WordCount input/ output
Not a valid JAR: /usr/local/hadoop/etc/hadoop/share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.7.2-sources.jar

换成hdfs jar则会

hadoop@hadoopmaster:/usr/local/hadoop/etc/hadoop$ hdfs jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.7.2-sources.jar org.apache.hadoop.examples.WordCount input/ output
Error: Could not find or load main class jar
尚不清楚原因,改天来解决。有高手知道为什么会出这样的问题的请不吝赐教。

在eclipse中执行WordCount,运行成功!下面是部分输出结果。

16/03/16 22:02:46 INFO mapreduce.Job:  map 100% reduce 100%
16/03/16 22:02:46 INFO mapreduce.Job: Job job_local1837130715_0001 completed successfully
16/03/16 22:02:46 INFO mapreduce.Job: Counters: 35
    File System Counters
        FILE: Number of bytes read=29752
        FILE: Number of bytes written=1200391
        FILE: Number of read operations=0
        FILE: Number of large read operations=0
        FILE: Number of write operations=0
        HDFS: Number of bytes read=66016
        HDFS: Number of bytes written=8983
        HDFS: Number of read operations=33
        HDFS: Number of large read operations=0
        HDFS: Number of write operations=6
    Map-Reduce Framework
        Map input records=322
        Map output records=2347
        Map output bytes=24935
        Map output materialized bytes=13001
        Input split bytes=355
        Combine input records=2347
        Combine output records=897
        Reduce input groups=840
        Reduce shuffle bytes=13001
        Reduce input records=897
        Reduce output records=840
        Spilled Records=1794
        Shuffled Maps =3
        Failed Shuffles=0
        Merged Map outputs=3
        GC time elapsed (ms)=17
        Total committed heap usage (bytes)=1444937728
    Shuffle Errors
        BAD_ID=0
        CONNECTION=0
        IO_ERROR=0
        WRONG_LENGTH=0
        WRONG_MAP=0
        WRONG_REDUCE=0
    File Input Format Counters
        Bytes Read=16896
    File Output Format Counters
        Bytes Written=8983

嗯,目前还不是很看得懂这个结果,明天开始看书了,基础还是最重要的。

备忘:

hadoop命令:

列出hdfs文件系统根目录下的目录和文件

hdfs dfs -ls /  (有 / )

hdfs dfs -ls    (没有有 / )

这两个的结果是不一样的,不理解为什么,这就是为什么明天要看书的原因

Error: Could not find or load main class jar
hadoop@hadoopmaster:/usr/local/hadoop/etc/hadoop$ hdfs dfs -ls(在hdfs dfs -mkdir -p /user/[current login user]
Found 2 items
drwxr-xr-x   - hadoop supergroup          0 2016-03-16 21:57 input
drwxr-xr-x   - hadoop supergroup          0 2016-03-16 22:02 output
hadoop@hadoopmaster:/usr/local/hadoop/etc/hadoop$ hdfs dfs -ls /
Found 3 items
drwxr-xr-x   - hadoop supergroup          0 2016-03-16 21:39 /input
drwx------   - hadoop supergroup          0 2016-03-16 21:17 /tmp
drwxr-xr-x   - hadoop supergroup          0 2016-03-16 21:51 /user

列出hdfs文件系统所有的目录和文件

hdfs dfs -ls  -R /(有 / 和没有 / 的结果也是不一样的,对应上面-ls的文件夹)

运行第一个Hadoop程序,WordCount的更多相关文章

  1. Eclipse上运行第一个Hadoop实例 - WordCount(单词统计程序)

    需求 计算出文件中每个单词的频数.要求输出结果按照单词的字母顺序进行排序.每个单词和其频数占一行,单词和频数之间有间隔. 比如,输入两个文件,其一内容如下: hello world hello had ...

  2. 第六篇:Eclipse上运行第一个Hadoop实例 - WordCount(单词统计程序)

    需求 计算出文件中每个单词的频数.要求输出结果按照单词的字母顺序进行排序.每个单词和其频数占一行,单词和频数之间有间隔. 比如,输入两个文件,其一内容如下: hello world hello had ...

  3. 在Hadoop1.2.1上运行第一个Hadoop程序FileSystemCat

  4. Spark认识&环境搭建&运行第一个Spark程序

    摘要:Spark作为新一代大数据计算引擎,因为内存计算的特性,具有比hadoop更快的计算速度.这里总结下对Spark的认识.虚拟机Spark安装.Spark开发环境搭建及编写第一个scala程序.运 ...

  5. 运行第一个ruby程序

    0x00 安装 首先需要安装一个ruby的环境,ruby分为win.linux.macOS版本.不用系统安装方法略有差异,不在这进行讲解. 0x01 运行第一个ruby程序 我这里是win环境,打开命 ...

  6. 运行第一个python程序,python 变量,常量,注释

    一.运行第一个python程序: print('Hello,world') 保存为.py文件 在cmd窗口: python3x:python  py文件路径 回车 python2x:python  p ...

  7. IntelliJ IDEA + Maven环境编写第一个hadoop程序

    1. 新建IntelliJ下的maven项目 点击File->New->Project,在弹出的对话框中选择Maven,JDK选择你自己安装的版本,点击Next 2. 填写Maven的Gr ...

  8. 第一个MapReduce程序——WordCount

    通常我们在学习一门语言的时候,写的第一个程序就是Hello World.而在学习Hadoop时,我们要写的第一个程序就是词频统计WordCount程序. 一.MapReduce简介 1.1 MapRe ...

  9. 第一个Hadoop程序-单词计数

    上一篇配置了Hadoop,本文将测试一个Hadoop的小案例 hadoop的Wordcount程序是hadoop自带的一个小的案例,是一个简单的单词统计程序,可以在hadoop的解压包里找到,如下: ...

随机推荐

  1. VS2010发布网站的基本步骤

    1.首先建一个空文件夹,用来存放发布的程序:例如:WebTest 2.然后打开IIS--->右击--->添加网站,如下图所示: 图 1-1                          ...

  2. Nginx配置域名转发实例

    域名:cps.45wan.com   所在阿里云主机:123.35.9.12 45wan没有在阿里云备案 67wan已经在阿里云备案 阿里云主机(假如123.35.9.12)上原来的nginx配置: ...

  3. PHP Zip File

    安装 如需在服务器上运行 Zip File 函数,必须安装这些库: Guido Draheim 的 ZZIPlib 库: 下载 ZZIPlib 库 Zip PELC 扩展:下载 Zip PELC 扩展 ...

  4. JS实现Tab切换

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. HDU 4606 Occupy Cities (计算几何+最短路+最小路径覆盖)

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 题目:给出n个城市需要去占领,有m条线段是障碍物, ...

  6. Symfony2 EventDispatcher组件

            一个插件系统中,A插件在不影响其它插件的前提下,添加新的方法,或者在一个方法运行前做一些准备工作,通过继承来实现扩展是很不容易的,由于插件之间的关联关系,A插件的改变也会使得关联的插件 ...

  7. Android开发者须知的几种APP加密方式--备

    作为一个Android开发者,不仅需要使自己的APP功能丰富,便于使用,同时也需要去完善APP的安全性,下面就介绍几种简单而又可靠的加密方法.1.Spongy Castle Spongy Castle ...

  8. 转:VC中MessageBox的常见用法

    一.关于MessageBox       消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合.       1.MessageBox("这是一个最简单的 ...

  9. 向PE文件中添加一个Section

    背景 之前说过直接向类HelloWorld.exe的可执行文件添加一个MessageBox弹窗, 但有时候, 需要添加的内容太多了, 因为数据与代码一起插入, 以至于可执行文件本身没有足够的空闲空间存 ...

  10. ffdshow 源代码分析1 : 整体结构

    ffdshow是一个非常强大的DirectShow解码器,封装了ffmpeg,libmpeg2等解码库.它也提供了丰富的加工处理选项,可以锐化画面,调节画面的亮度等等.不止是视频,FFDShow现在同 ...