1)运行一个新项目要先run on hadoop
在合并hadoop的文件为一个时,一直不出结果,调试时在查看listStutus出现:
org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException: Type has not been loaded occurred while retrieving component type of array.
一直就不行,显示文件数为0;
改写成测试版本为:
import java.io.IOException;
import java.net.URI;
import javax.print.DocFlavor.URL;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class MergeHexFpAndmolIndex {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
//FileSystem hdfs = FileSystem.get(URI.create(arg0) conf);
String outHexFpName = "target/";
Path outHexFpPath = new Path(outHexFpName);
FileSystem fs = FileSystem.get(conf);
FileStatus[] stats = fs.listStatus(new Path(outHexFpName));
for(int i = 0; i < stats.length; ++i) {
if (stats[i].isDir()){
// regular file
System.out.println(stats[i].getPath().toString()+"dir");
}
else {
System.out.println(stats[i].getPath().toString()+"haha-file");
}
}
fs.close();
}
}
运行结果为:file:/home/mjiang/java/eclipse/target-hadoop/mergeHexFpMolIndex/target/hexFpdir
在eclispe选择:
run on hadoop 后
结果为hdfs://localhost:9000/user/mjiang/target/sdfdir
hdfs://localhost:9000/user/mjiang/target/tmpdir