p { margin-bottom: 0.08in; }
在 hadoop 集群上执行程序:
这里只是简单的实现文件的读取工作:
1. 开启 hadoop:
start.all.sh
注意在开启 hadoop 后并不能马上进行下面的操作, hadoop 会处于安全模式状态下一段时间,大概半分钟到一分钟。
2. 将自己写的程序打包:
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class FileSystemCat {
public static void main(String[] args) {
String uri = args[0];
Configuration conf = new Configuration();
InputStream in = null;
try {
FileSystem fs = FileSystem.get(URI.create(uri), conf);
in = fs.open(new Path(uri));
IOUtils.copyBytes(in, System.out, conf);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
IOUtils.closeStream(in);
}
}
}
3. 将自己的文件上传到 hadoop 的 HDFS 上:
hadoop fs -put input input01
4. 查看是否上传成功:
hadoop fs -ls
5. 执行程序:
hadoop jar /home/hadoop/Desktop/generate-lib/FileSystemCat.jar com.hadoop.FileSystemCat hdfs://localhost:9000/user/hadoop/input01/testlog.log
在控制台下就能看到结果了