小编Pra*_*rma的帖子

HDFS中的最佳块大小 - 大块大小会受到影响

我理解HDFS中小文件和小块大小的缺点.我试图理解默认的64/128 MB块大小背后的基本原理.是否存在大块大小(例如2GB)的任何缺点.我读到比这更大的值导致问题,我尚未挖掘的细节).

我看到的块大小太大的问题(请纠正我,可能是部分或全部这些问题并不存在) -

  1. 可能在数据节点出现故障时复制1 Gig文件可能会出现问题 - 这需要群集传输整个文件.当我们考虑单个文件时,这似乎是一个问题 - 但如果我们有更小的块大小说128 MB(我认为涉及更多的开销),我们可能不得不转移很多较小的文件

  2. 可能麻烦mappers.大块可能最终会与每个映射器结束,从而减少可能的映射器数量.但如果我们使用较小的分割尺寸,这应该不是问题?

  3. 当我发现这可能是一个问题时,这听起来很愚蠢但是我想我会把它扔进去 - 因为namenode事先不知道文件的大小,所以它可能会考虑数据节点而不是可用,因为它没有足够的磁盘空间用于新块(考虑到大块大小可能是1-2 Gigs).但可能只是通过减少特定块的块大小来巧妙地解决这个问题(这可能是一个糟糕的解决方案).

块大小可能取决于用例.我基本上想找到问题的答案 - 是否存在大块大小设置可能会造成伤害的情况/用例?

任何帮助表示赞赏.提前致谢.

hadoop hdfs

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

Java Thread.sleep()实现

有人可以帮我理解Thread.sleep()函数是如何实现的吗?当指定的时间过去或某些其他线程中断时,线程将恢复/唤醒.我有兴趣了解这项工作背后的设计模式.

据说睡眠对CPU消耗没有影响.当前线程是否已添加到侦听器列表中?什么时候会检查中断标志?调度程序是否继续检查每个"x"时间内正在休眠的每个线程的中断状态(基于操作系统支持的内容)?线程如何在不影响CPU的情况下获得控制权.

我搜索过这个.对不起,如果我错过了任何容易找到的链接.

java concurrency multithreading thread-sleep

5
推荐指数
1
解决办法
1024
查看次数

标签 统计

concurrency ×1

hadoop ×1

hdfs ×1

java ×1

multithreading ×1

thread-sleep ×1