hadoop-1.0.0的hadoop-streaming-1.0.0.jar还是按照以前的类编写的
mjiang@venus ~/hadoop-1.0.0 $ vi src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamJob.java
import org.apache.hadoop.mapred.FileAlreadyExistsException;
import org.apache.hadoop.mapred.FileInputFormat;
...
以至于我用1.0.0的api编写的输入类SdfTextInputFormat不能加入hadoop-streaming-1.0.0.jar
即通过:
mjiang@venus ~/java/eclipse/target-hadoop/SdfInputFormat-old $ jar uf jar-streaming/hadoop-streaming-1.0.0.jar -C classes-streaming/ .
运行出现错误如下:
mjiang@venus ~/java/eclipse/target-hadoop/SdfInputFormat-streaming $ hadoop jar jar-streaming/hadoop-streaming-1.0.0.jar -input "/Com*" -output "o2" -mapper 'babel -isdf -ofpt -xh -xf FP4' -inputformat SdfTextInputFormat -numReduceTasks 0
Exception in thread "main" java.lang.RuntimeException: class org.apache.hadoop.streaming.SdfTextInputFormat not org.apache.hadoop.mapred.InputFormat
想到可能是版本的问题,只好再用旧的api重新写了一下,OK
~~~~~~~~~~~~~~~
添加到原来的jar文件步骤:
class中的包与jar中的一样。
javac 编译 ,不用和原来的jar中的class一起
jar uf