hadoop程序运行
来源:互联网 发布:善存 多维 佳维 知乎 编辑:程序博客网 时间:2024/06/10 18:19
hadoop命令的使用:
Usage: hadoop [--config confdir] COMMAND
这里COMMAND为下列其中一个:
<span style="font-size:16px;">namenode -format 格式化DFS文件系统
secondarynamenode 运行DFS的第二个namenode
namenode 运行DFS的namenode
datanode 运行一个DFS的datanode
dfsadmin 运行一个DFS的admin 客户端
fsck 运行一个DFS文件系统的检查工具
fs 运行一个普通的文件系统用户客户端
balancer 运行一个集群负载均衡工具
jobtracker 运行MapReduce的jobTracker节点
pipes 运行一个Pipes作业
tasktracker 运行一个MapReduce的taskTracker节点
job 处理MapReduce作业
version 打印版本
jar <jar> 运行一个jar文件
distcp <srcurl> <desturl> 递归地复制文件或者目录 (采用分布式复制方法,一般用于两个HDFS集群中)
archive -archiveName NAME <src>* <dest> 生成一个Hadoop档案 (将har当作一个新的文件系统,《权威指南3.8节》)
daemonlog 获取或设置每个daemon的log级别
或CLASSNAME 运行名为CLASSNAME的类大多数命令会在使用w/o参数
时打出帮助信息。</span>
- 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进行分析排序。
- hadoop程序运行
- hadoop运行WordCount程序
- 运行hadoop程序、java
- hadoop程序运行
- Hadoop 运行 Wordcount程序
- 运行第一个hadoop程序
- hadoop上运行java程序
- hadoop运行MR程序笔记
- hadoop平台运行WordCount程序
- hadoop 上运行java程序
- Hadoop集群运行JNI程序
- 使用hadoop运行wordcount程序
- hadoop 程序打包,运行命令
- hadoop运行程序详解-helloworld
- 运行Hadoop示例程序WordCount
- hadoop上运行Java程序
- Hadoop+eclipse运行MapReduce程序
- 用Eclipse运行Hadoop程序
- 如何在windows中安装和设置mysql解压缩版
- sscanf引发的Heap corruption detected error问题——有待完美解决
- eclipse安装hadoop插件及配置
- 实习复习的一些知识
- python pip的安装
- hadoop程序运行
- .Net GridView异步刷新
- [leetcode][list][two pointers] Remove Nth Node From End of List
- Django的是如何工作的
- 实习面试问到的一些知识
- LCP1549之SCT_PWM 输出功能分析
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- POJ 1474 || Video Surveillance(半平面交
- Particle Filter Tutorial 粒子滤波:从推导到应用(一)