at org.apache.hadoop.util.RunJar.main(RunJar.java:153)
关于手动编译hadoop入门例子WordCount并执行
之前做的例子都是用hadoop中已经编译好jar包来运行示例的
但是这次想要手动编译个实例,练下手
没想到还是遇到点了小困难
[root@centos WordCount]# hadoop jar WordCount.jar /wc/input /wc/output
Exception in thread "main" java.lang.ClassNotFoundException: /wc/input
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.hadoop.util.RunJar.main(RunJar.java:153)
然后总是报这个错
1、准备编译的文件和环境
首先在找个地方把hadoop安装目录下的WordCount.java拷出来
在WordCount.java所在的文件夹下,建一个文件夹,这里建的是WordCount,用于编译用
[root@centos wordcount_class]# ls
commons-cli-1.2.jar hadoop-core-1.2.1.jar WordCount.java
[root@centos wordcount_class]# mkdir WordCount
[root@centos wordcount_class]# ls
commons-cli-1.2.jar hadoop-core-1.2.1.jar WordCount WordCount.java
2、编译到文件夹下
下面是编译了
需要两个jar包:hadoop-core-1.2.1.jar,commons-cli-1.2.jar
这两个jar包在hadoop安装目录下有
hadoop-core-1.2.1.jar是在根目录下,
commons-cli-1.2.jar是在根目录下的lib目录下
你可以用绝对路径,也可以把这两个jar包拷到之前建立的WordCount文件夹中
编译过程是:
javac -classpath hadoop-core-1.2.1.jar:commons-cli-1.2.jar WordCount.java -d WordCount
[root@centos wordcount_class]# javac -classpath hadoop-core-1.2.1.jar:commons-cli-1.2.jar WordCount.java -d WordCount
[root@centos wordcount_class]# cd WordCount
[root@centos WordCount]# ls
org
在这里解释下,-classpath可以简写为-cp,后面跟的是要用到的jar包的路径
WordCount.java是我们要用到的java源文件
-d是编译到后面接的WordCoun文件夹下
WordCount.java中的命名空间为如下,如果没有被改的话,
package org.apache.hadoop.examples;
则编译到WordCount文件夹下会会有很多嵌套的子文件夹生成,
比如WordCount下的org,org下的apache,等等,一直到examples是最后一个目录
3、打包jar包
编译完了之后我们要打包成jar包
这个时候,进入WordCount目录中,执行命令为:
jar cvf WordCount.jar *
这个时候WordCount下会出现一个WordCount.jar包
4、在hadoop下执行jar包
然后就可以用来执行了,这里往HDFS文件系统中传东西什么的就不在这儿写了
这里特别注意的是在WordCount中的命名空间,也就是package那一行的东西外加主类要放到jar包后面,
这里是org.apache.hadoop.example.WordCount
[root@centos WordCount]# hadoop dfs -rmr /wc/output
Deleted hdfs://centos:9000/wc/output
[root@centos WordCount]# hadoop jar WordCount.jar org.apache.hadoop.examples.WordCount /wc/input /wc/output
at org.apache.hadoop.util.RunJar.main(RunJar.java:153)的更多相关文章
- java.lang.NullPointerException at java.lang.ProcessBuilder.start(Unknown Source) at org.apache.hadoop.util.Shell.runCommand(Shell.java:482)
1:问题出现的原因,部署好的hadoop-2.6.4进行window10操作hadoop api出现的错误,具体错误是我向hdfs上传文件,还好点,之前解决过,这里不叙述,这里说一下从hdfs下载文件 ...
- ERROR [org.apache.hadoop.util.Shell] - Failed to locate the winutils binary in the hadoop binary path
错误日志如下: -- ::, DEBUG [org.apache.hadoop.metrics2.lib.MutableMetricsFactory] - field org.apache.hadoo ...
- Hadoop org.apache.hadoop.util.DiskChecker$DiskErrorException问题等价解决linux磁盘不足解决问题排查
org.apache.hadoop.util.DiskChecker$DiskErrorException问题等价解决linux磁盘不足解决问题排查 解决"/dev/mapper/cento ...
- 【解决】org.apache.hadoop.util.Shell$ExitCodeException: /bin/bash: line 0: fg: no job control
[环境信息] Hadoop版本:2.4.0 客户端OS:Windows Server 2008 R2 服务器端OS:CentOS 6.4 [问题现象] 在通过Windows客户端向Linux服务器提交 ...
- java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V
环境: Spark2.1.0 .Hadoop-2.7.5 代码运行系统:Win 7在运行Spark程序写出文件(savaAsTextFile)的时候,我遇到了这个错误: // :: ERROR U ...
- 执行Hive时出现org.apache.hadoop.util.RunJar.main(RunJar.java:136) Caused by: java.lang.NumberFormatException: For input string: "1s"错误的解决办法(图文详解)
不多说,直接上干货 问题详情 [kfk@bigdata-pro01 apache-hive--bin]$ bin/hive Logging initialized -bin/conf/hive-log ...
- Exceptionin thread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjav
在eclipse上运行hadoop报错:Exceptionin thread "main" java.lang.UnsatisfiedLinkError:org.apache.ha ...
- org.apache.hadoop.util.Shell demo/例子
package cn.shell; import java.io.IOException; import org.apache.hadoop.util.Shell; public class Shel ...
- hadoop错误org.apache.hadoop.util.DiskChecker$DiskErrorException Could not find any valid local directory for
错误: org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find any valid local directory ...
随机推荐
- 【微信小程序】用户首次进入小程序拒绝授权,如何再次调用授权页面,获取用户信息userInfo
前言:微信小程序的app.js里面,最少有2个接口,一个wx.login:一个是wx.getUserInfo: 前者得到腾讯给我们的微信用户唯一的code,通过code获取openid,这个不需要用户 ...
- [转载]安装archlinux 以后没有 ifconfig,route ,nslo
原文地址:安装archlinux 以后没有 ifconfig,route ,nslookup 等命令作者:十阿哥 ifconfig, route在net-tools中, nslookup, dig在d ...
- CoInitialize和CoInitializeEx
1.CoInitialize和CoInitializeEx的功能 CoInitialize是在当前线程初始化Com组件的函数,并且初始化为STA模式(单线程模式),一般新的程序建议使用CoInitia ...
- leetcode48:矩阵旋转
题目链接 输入一个N×N的方阵,要求不开辟新空间,实现矩阵旋转. 将点(x,y)绕原点顺时针旋转90度,变为(y,-x).原来的(-y,x)变为(x,y) class Solution(object) ...
- Android开发学习之浅谈显示Intent和隐式Intent
Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的. 隐式Intent:通过Intent ...
- C 应用
前言 1)操作符两端必须加空格,(每行第一个赋值语句对齐). 2)变量名必须是英文(不能是拼音):英文.数字.下划线和美元符号. 3)等于号 == 反过来写(0 == i%4)防止少些赋值号的错误. ...
- 【jQuery】将form表单通过ajax实现无刷新提交
//将form转换为AJAX提交 function ajaxSubmit(url,frm,fn){ var dataPara=getFormJson(frm); $.ajax({ url:url, t ...
- Ubuntu16.04 安装RabbitMQ
转载https://www.cnblogs.com/hongdada/p/7203589.html 安装RabbitMQ 由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要 ...
- Fragment中获取Activity的Context
Fragment中获取Activity的Context时只需要this.getActivity()即可.
- Linux内核同步 - sleepable RCU的实现
一.前言 由于曾经在Linux2.6.23上工作了多年,我对这个版本还是非常有感情的(抛开感情因素,本来应该选择longterm的2.6.32版本来分析的,^_^),本文主要就是描述Linux2.6. ...