hadoop笔记3
来源:互联网 发布:caffe softmax 源码 编辑:程序博客网 时间:2024/06/14 00:45
hadoop 文件系统牺牲了一些POSIX要求,即写入的内容不能立即可见。
Expected: is <7L>
got: <0L>
这是内存和数据节点没有同步的结果,把out.sync()换成out.close()能得到正确的结果,非常奇怪,有明白的朋友欢迎留言给我~
import static org.junit.Assert.*;import static org.hamcrest.Matchers.*;import java.io.IOException;import java.io.OutputStream;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;public class CoheModel {public static void main(String[] args) throws IOException {Configuration conf=new Configuration();FileSystem fs=FileSystem.get(conf);try {OutputStream out=fs.create(new Path(args[0]));out.write("contend".getBytes("UTF-8"));out.flush();assertThat(fs.getFileStatus(new Path(args[0])).getLen(), is(0l));} catch (Exception e) {e.printStackTrace();}}}
这里使用到了两个额外的包,junit禾hamcrest,运行hadoop命令之前要把hamcrest包放到hadoop根目录lib目录下,lib本身带有junit4.5的包,所以在编写这个程序之前的eclipse最好也是使用这个版本的junit包。因为assertThat和is都是静态的方法,所以在导入包的时使用了static,运行结果没有出现AssertException,说明这时的reader无法看见正在写入的块。
在out.flush 之后加上out.sync,或者out.close可以实现数据的同步。
做以下尝试:
import static org.junit.Assert.*;import static org.hamcrest.Matchers.*;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataOutputStream;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;public class CoheModel {public static void main(String[] args) throws IOException {Configuration conf=new Configuration();FileSystem fs=FileSystem.get(conf);try {FSDataOutputStream out=fs.create(new Path(args[0]));out.write("contend".getBytes("UTF-8"));out.flush();out.sync();assertThat(fs.getFileStatus(new Path(args[0])).getLen(), is(7l));out.close();} catch (Exception e) {e.printStackTrace();}}}出现了断言异常:Exception in thread "main" java.lang.AssertionError:
Expected: is <7L>
got: <0L>
这是内存和数据节点没有同步的结果,把out.sync()换成out.close()能得到正确的结果,非常奇怪,有明白的朋友欢迎留言给我~
0 0
- Hadoop 笔记3 Mapreduce
- hadoop笔记3
- Hadoop学习笔记(3)
- Hadoop学习笔记 3
- hadoop学习笔记(3) 初识Hadoop
- hadoop学习笔记(3) 初识Hadoop
- hadoop学习笔记(3) 初识Hadoop
- hadoop随手笔记(3)
- Hadoop 笔记
- Hadoop笔记
- hadoop笔记
- hadoop笔记
- hadoop笔记
- hadoop笔记
- hadoop笔记
- hadoop 笔记
- hadoop笔记
- Hadoop笔记
- Shark 在windows 下的编译
- Hadoop命令
- android 下拉刷新上拉下载实现
- java 程序猿10个必备网站
- vmalloc size分析
- hadoop笔记3
- 输入一组按降序排列的整数数组,再输入一个整数(sum),返回数组中和为sum的两个元素
- H264VideoRTPSink类继承结构及相关的类
- xCode升级5.0后没有了gcc
- CSS中使用大于号[>]的含义
- 机器学习前沿热点——Deep Learning
- 如何做好职业生涯规划
- 轻松学Visual C++
- 压缩 MongoDB 的数据文件