hadoop程序运行
2015-05-09 20:42
92 查看
hadoop命令的使用:
Usage: hadoop [--config confdir] COMMAND
这里COMMAND为下列其中一个:
hadoop程序的编译:(我是用的hadoop版本为hadoop-0.20.203.0)
1.注意的是要将hadoop的core包加入到classpath中,命令如下:
javac -classpath ~/hadoop-0.20.203.0/hadoop-core-0.20.203.0.jar FileSystemDoubleCat.java
(这里还有一个疑问:我用通配符添加jar包时一直失败(使用 *.jar),提示找不到类??????)
运行hadoop程序的方法如下:
1.直接使用hadoop CLASSNAME 【args】 运行,
( 注意此时需设置环境变量 HADOOP_CLASSPATH中包含当前类。其中当前目录中应该包含.class文件,这个可以通过在eclipse中的bin文件下取得,或用上面的方法进行编译)
如:hadoop FileSystemDoubleCat hdfs://localhost:9000/user/kqiao/uploadFile
2.将程序打包成jar包,然后使用hadoop jar命令运行。
这只相当于将上面中的.class文件打包,然后运行该jar文件。(注意,如果以集群模式下运行hadoop,则只能使用这种方法,因为需要在各网络节点上分发jar包)并且主程序中要有:
job.setJarByClass(MaxTemperature.class)这句,用于设定jar类
命令如下:jar -cvf FileSystemDoubleCat.jar FileSystemDoubleCat.class
hadoop jar FileSystemDoubleCat.jar FileSystemDoubleCat hdfs://localhost:9000/user/kqiao/uploadFile
3.安装eclipse的hadoop插件,直接在eclipse中编辑程序,然后运行
这应该算是最简单的运行方法了吧。。。。
在run configuration下完成配置,然后 run on hadoop即可。
-----------------------------------------------------------------------------------------------------------------------------------
以后记录我在运行中遇到的问题~
(1)-D mapred.reduce.tasks=2 或 job.setNumReduceTasks(2) 设置reducer的数量
(换了一个hadoop版本,不知道为什么,使用-D 选项设置reducer数量失败了,没有报错,但是reducer保持为1,只能使用job.set来设置?未解决。。)
(2)如果已经确定有某类的存在,却一直提示找不到该类,一般是因为class_path的设置问题。
(3)如果自定义的mapper类是主类的内部类时,一定记得将其定义为static。
(4)hadoop程序,如果有运行错误,主要通过查看job或task的日志解决:看看抛出了什么样的异常,在哪个阶段,哪个任务抛出了异常。
如果是运行结果与预期不符,则通过查看计数器判断那部分出错,另一方面可以在程序中加入输出语句,System.out.println("****");然后在web页面中的job下查看各个job的task日志,看看 stdout log, stderr log进行分析排序。
Usage: hadoop [--config confdir] COMMAND
这里COMMAND为下列其中一个:
1.注意的是要将hadoop的core包加入到classpath中,命令如下:
javac -classpath ~/hadoop-0.20.203.0/hadoop-core-0.20.203.0.jar FileSystemDoubleCat.java
(这里还有一个疑问:我用通配符添加jar包时一直失败(使用 *.jar),提示找不到类??????)
运行hadoop程序的方法如下:
1.直接使用hadoop CLASSNAME 【args】 运行,
( 注意此时需设置环境变量 HADOOP_CLASSPATH中包含当前类。其中当前目录中应该包含.class文件,这个可以通过在eclipse中的bin文件下取得,或用上面的方法进行编译)
如:hadoop FileSystemDoubleCat hdfs://localhost:9000/user/kqiao/uploadFile
2.将程序打包成jar包,然后使用hadoop jar命令运行。
这只相当于将上面中的.class文件打包,然后运行该jar文件。(注意,如果以集群模式下运行hadoop,则只能使用这种方法,因为需要在各网络节点上分发jar包)并且主程序中要有:
job.setJarByClass(MaxTemperature.class)这句,用于设定jar类
命令如下:jar -cvf FileSystemDoubleCat.jar FileSystemDoubleCat.class
hadoop jar FileSystemDoubleCat.jar FileSystemDoubleCat hdfs://localhost:9000/user/kqiao/uploadFile
3.安装eclipse的hadoop插件,直接在eclipse中编辑程序,然后运行
这应该算是最简单的运行方法了吧。。。。
在run configuration下完成配置,然后 run on hadoop即可。
-----------------------------------------------------------------------------------------------------------------------------------
以后记录我在运行中遇到的问题~
(1)-D mapred.reduce.tasks=2 或 job.setNumReduceTasks(2) 设置reducer的数量
(换了一个hadoop版本,不知道为什么,使用-D 选项设置reducer数量失败了,没有报错,但是reducer保持为1,只能使用job.set来设置?未解决。。)
(2)如果已经确定有某类的存在,却一直提示找不到该类,一般是因为class_path的设置问题。
(3)如果自定义的mapper类是主类的内部类时,一定记得将其定义为static。
(4)hadoop程序,如果有运行错误,主要通过查看job或task的日志解决:看看抛出了什么样的异常,在哪个阶段,哪个任务抛出了异常。
如果是运行结果与预期不符,则通过查看计数器判断那部分出错,另一方面可以在程序中加入输出语句,System.out.println("****");然后在web页面中的job下查看各个job的task日志,看看 stdout log, stderr log进行分析排序。
相关文章推荐
- hadoop2.2.0运行权威指南URLCat.java程序的步骤和结论
- WIN7下运行hadoop程序报:Failed to locate the winutils binary in the hadoop binary path
- 08_运行hadoop提供的示例程序
- 运行hadoop程序时,有时候会报以下错误: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. N
- 运行Hadoop的示例程序WordCount-Running Hadoop Example
- 解Windows系统下运行hadoop、spark程序出错Could not locate executablenull\bin\winutils.exe in the Hadoop binaries
- hadoop实例WordCount程序一步一步运行
- windows下不需要插件使用MyEclipse运行hadoop2.6.0 MapReduce程序。
- Windows下 haoop下运行程序时出现错误:Hadoop HDFS Wrong FS: hdfs:/ expected file:///
- wordcount示例程序运行全过程(Hadoop-1.0.0)
- 用hadoop运行一个简单程序WordCount
- C访问hadoop程序终端显示运行正确,因为连接参数错误,使得通过网页查看就是没有成功原因分析和解决方案
- 使用Eclipse编译运行MapReduce程序_Hadoop2.6.0_Ubuntu/CentOS
- Hadoop首字母统计程序的编译运行
- Win7下面安装hadoop2.x插件及Win7/Linux运行MapReduce程序
- HadoopCV(2)—— hadoop平台上运行javaCV程序
- 使用ToolRunner运行Hadoop程序基本原理分析
- Win系统下用Eclipse中运行远程hadoop MapReduce程序出现Permission denied错误
- 创建MapReduce程序,并在hadoop集群中运行
- 在hadoop上运行java程序