我有一个关于文件写入和HDFS读取的基本问题.
例如,如果我使用默认配置编写文件,Hadoop内部必须将每个块写入3个数据节点.我的理解是,对于每个块,首先客户端将块写入管道中的第一个数据节点,然后通知第二个,依此类推.一旦第三个数据节点成功接收到块,它就会向数据节点2提供确认,最后通过数据节点1向客户端提供确认.只有在收到块的确认后,才认为写入成功,客户端继续写入下一个街区.
如果是这种情况,那么编写每个块所花费的时间不会超过传统的文件写入,因为 -
如果我的理解错了,请纠正我.另外,以下问题如下:
我正在尝试使用创建目录File.mkdirs().但是,它似乎表现得很奇怪:有时它会创建目录,但有时候,它会默默地忽略目录的创建.
早些时候我正在使用mkdir(),但在其中一篇文章中,我读到使用mkdirs()可以解决问题.但是,似乎没有.有帮助吗?
此代码在Windows计算机上运行.
码:
File myDir = new File(dirPath);
try{
myDir.mkdirs();
}
catch(Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud) 只是想知道如何-D在Java 中的命令行参数中传递一个字符串数组.
本质上我想传递3/4本地路径作为可以在程序中使用的命令行参数.但是,我想知道处理这个问题的最佳方法是什么,而不是将每个路径作为-D参数传递.
提前致谢.