小编Vij*_*ddy的帖子

Hadoop:HDFS文件写入和读取

我有一个关于文件写入和HDFS读取的基本问题.

例如,如果我使用默认配置编写文件,Hadoop内部必须将每个块写入3个数据节点.我的理解是,对于每个块,首先客户端将块写入管道中的第一个数据节点,然后通知第二个,依此类推.一旦第三个数据节点成功接收到块,它就会向数据节点2提供确认,最后通过数据节点1向客户端提供确认.只有在收到块的确认后,才认为写入成功,客户端继续写入下一个街区.

如果是这种情况,那么编写每个块所花费的时间不会超过传统的文件写入,因为 -

  1. 复制因子(默认为3)和
  2. 写入过程在块之后顺序发生.

如果我的理解错了,请纠正我.另外,以下问题如下:

  1. 我的理解是Hadoop中的文件读/写没有任何并行性,它可以执行的最好是与传统的文件读取或写入相同(即,如果复制设置为1)+分布式通信机制中涉及的一些开销.
  2. 并行性仅在数据处理阶段通过Map Reduce提供,但在客户端的文件读/写期间不提供.

hadoop hdfs

6
推荐指数
1
解决办法
5653
查看次数

File.mkdirs()不能一直工作

我正在尝试使用创建目录File.mkdirs().但是,它似乎表现得很奇怪:有时它会创建目录,但有时候,它会默默地忽略目录的创建.

早些时候我正在使用mkdir(),但在其中一篇文章中,我读到使用mkdirs()可以解决问题.但是,似乎没有.有帮助吗?

此代码在Windows计算机上运行.

码:

File myDir = new File(dirPath);

try{
      myDir.mkdirs();
   } 
   catch(Exception e) {
        e.printStackTrace();
   }
Run Code Online (Sandbox Code Playgroud)

java

3
推荐指数
1
解决办法
2631
查看次数

在Java命令行参数中传递String数组

只是想知道如何-D在Java 中的命令行参数中传递一个字符串数组.

本质上我想传递3/4本地路径作为可以在程序中使用的命令行参数.但是,我想知道处理这个问题的最佳方法是什么,而不是将每个路径作为-D参数传递.

提前致谢.

java arrays string

2
推荐指数
1
解决办法
4755
查看次数

标签 统计

java ×2

arrays ×1

hadoop ×1

hdfs ×1

string ×1