jjzjj

hadoop - Hadoop FS 的意图是保留在 RAM 还是磁盘中?

coder 2024-01-09 原文

我们正在考虑在我的公司使用 Hadoop。通过查看 Internet 上的文档,我得到的印象是 HDFS 的想法是将其保存在 RAM 中以加快速度。现在我们的架构师说 HDFS 的主要思想是可伸缩性。我没意见。但随后他还声称主要想法是将其保存在硬盘上。 HDFS 基本上是一个可扩展的硬盘。我的意见是由硬盘支持 HDFS 是一种选择。然而,主要思想是将其保存在 RAM 中。现在是谁?我现在真的很困惑,我想说,这一点对于理解 Hadoop 至关重要。

谢谢,奥利弗

最佳答案

Oliver,您的建筑师是对的。 水平可扩展性 是 HDFS(通常是 Hadoop)的最大优势之一。当您说 Hadoop 时,它意味着您正在处理非常大量的数据,对吗?你打算如何将这么多数据放入内存?(我假设 HDFS 的想法是将其保存在 RAM 中以加快速度,你的意思是将存储在 HDFS 中的数据保存在内存)。

但是,HDFS 的元数据保存在内存中,以便您可以快速访问存储在 HDFS 中的数据。请记住,HDFS 不是物理的。它更像是一个位于本地文件系统之上的虚拟文件系统。因此,当您说要将数据存储到 HDFS 中时,它最终会存储在计算机磁盘上的 native /本地文件系统中,而不是 RAM。

话虽如此,HDFS 和 native FS 的行为方式存在某些重大差异。就像与本地 FS block 大小相比非常大的 block 大小。同样,数据存储在 HDFS 中的复制方式(想想 RAID,但在软件级别)。

那么 HDFS 如何让事情变得更快?

Hadoop 是一个分布式平台,而 HDFS 是一个分布式存储。当您将文件放入 HDFS 时,它会被分成 n 个小块(默认大小为 64MB,但可配置)。然后所有的 block 文件的一部分存储在 Hadoop 集群的所有机器上。这使我们能够并行读取所有 block ,从而减少总读取时间。

我建议您浏览此链接以正确理解 HDFS : http://hadoop.apache.org/docs/stable/hdfs_design.html

HTH

关于hadoop - Hadoop FS 的意图是保留在 RAM 还是磁盘中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993915/

有关hadoop - Hadoop FS 的意图是保留在 RAM 还是磁盘中?的更多相关文章

  1. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  2. ruby-on-rails - Ruby 流量控制 : throw an exception, 返回 nil 还是让它失败? - 2

    我在思考流量控制的最佳实践。我应该走哪条路?1)不要检查任何东西并让程序失败(更清晰的代码,自然的错误消息):defself.fetch(feed_id)feed=Feed.find(feed_id)feed.fetchend2)通过返回nil静默失败(但是,“CleanCode”说,你永远不应该返回null):defself.fetch(feed_id)returnunlessfeed_idfeed=Feed.find(feed_id)returnunlessfeedfeed.fetchend3)抛出异常(因为不按id查找feed是异常的):defself.fetch(feed_id

  3. ruby - 使用哪个,eruby 还是 erb? - 2

    eruby和erb有什么区别?哪些考虑因素会促使我选择其中之一?我的应用程序正在为网络设备(路由器、负载平衡器、防火墙等)生成配置文件。我的计划是对配置文件进行模板化,在源文件中使用嵌入式ruby​​(通过eruby或erb)来执行诸如迭代生成路由器的所有接口(interface)配置block之类的操作(这些block都非常相似,仅在标签上有所不同和IP地址)。例如,我可能有这样一个配置模板文件:hostnamesample-routerlogging10.5.16.26当通过嵌入式ruby​​解释器(erb或eruby)运行时,会产生以下输出:hostnamesample-rout

  4. ruby-on-rails - Ruby on Rails - 参数是方法还是散列? - 2

    所以,我正在尝试RubyonRails指南的入门部分here.我不明白line在本教程中。引用它:Theparamsmethodistheobjectwhichrepresentstheparameters(orfields)cominginfromtheform.我以前确实有一些Rails方面的经验,而且我一直假设params是一个散列。但这里他们称之为方法,它是一个对象。params是方法还是哈希?还有,在ruby中,方法也是对象吗? 最佳答案 params是一个返回ActionController::Parameters对象的

  5. 适用于Web开发的Python还是Ruby? - 2

    Asitcurrentlystands,thisquestionisnotagoodfitforourQ&Aformat.Weexpectanswerstobesupportedbyfacts,references,orexpertise,butthisquestionwilllikelysolicitdebate,arguments,polling,orextendeddiscussion.Ifyoufeelthatthisquestioncanbeimprovedandpossiblyreopened,visitthehelpcenter提供指导。11年前关闭。我是一位精通HTML

  6. ruby - 交集完成后,顺序是否保留在数组中? - 2

    当我对两个数组进行交集时,是否可以保证生成的顺序基于第一个数组的顺序?例如,如果我有a=[1,2,3]b=[3,2,1]可以a&b返回[3,2,1],而不是[1,2,3](这是什么我希望)?我在RDoc或Pickaxe的Array文档中找不到任何直接解决这个问题的内容。RubySpec有一个规范,它createsanarraywithelementsinordertheyarefirstencountered,但我是否应该假设YARVRuby会遵守该规范? 最佳答案 看起来这是一项有保证的功能。他们在revision39415中升级

  7. Ruby 命名空间与类还是模块? - 2

    考虑Ruby类Foo::Bar。惯例是将“Foo”命名空间作为一个模块,但它也可以很容易地作为一个类:moduleFoo;classBar;end;end对比:classFoo;classBar;end;end在第二种情况下,Bar不是Foo的内部类,它只是在Foo的单例上定义的另一个常量。在这两种情况下,父类(superclass)都是Object并且它们只包含Kernel模块。它们的祖先链是相同的。因此,除了您可以根据其类使用Foo进行的操作(如果是类则实例化,如果是模块则扩展/包含),命名空间的性质是否对有任何影响酒吧?是否有令人信服的理由选择其中一个名称间距而不是另一个?我看到

  8. ruby-on-rails - 在 Rails 4 中组织外部 API 调用 - 模块还是类? - 2

    我正在创建一个Rails应用程序,它将使用相当多的外部API,例如SalesForce、FolderGrid(如Dropbox)等,它们都会同步到我的数据库。我从来没有使用过外部api调用,所以我创建了一些基本的Ruby脚本和分散的方法来测试对这些资源的调用。现在我想用我的完整Rails应用程序来实现它们。到目前为止,我首先在我的/lib文件夹中创建一个目录来保存api调用模块/类。/lib/apis/foldergrid.rb现在我不确定组织代码的最佳方法是什么。在我的独立Ruby脚本中,我有用于身份验证、创建文件夹、审核文件、下载文件等的方法。模块中应该包含什么?我什至需要一个模块

  9. 大数据之Hadoop数据仓库Hive - 2

    目录:一、简介二、HQL的执行流程三、索引四、索引案例五、Hive常用DDL操作六、Hive常用DML操作七、查询结果插入到表八、更新和删除操作九、查询结果写出到文件系统十、HiveCLI和Beeline命令行的基本使用十一、Hive配置一、简介Hive是一个构建在Hadoop之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类SQL查询功能,用于查询的SQL语句会被转化为MapReduce作业,然后提交到Hadoop上运行。特点:简单、容易上手(提供了类似sql的查询语言hql),使得精通sql但是不了解Java编程的人也能很好地进行大数据分析;灵活性高,可以自定义用户函数(UDF)和

  10. ruby - 停留在 EdgeCase Ruby Koans 上的 about_methods.rb - 2

    我正在通过EdgeCaseRubyKoans(www.rubykoans.com)进行黑客攻击,并且卡在about_methods.rbhere中从第35行开始的方法上。.运行rake可预见地失败并告诉我查看第36行。我有理由确定我的assert_match是正确的(“0代表2”),但我不知道是什么失败了。assert_raise(___)行很可能应该在括号之间包含一些内容,但我不知道那应该是什么。任何提示或轻推?非常感谢。编辑:这是有问题的代码的一小段:defmy_global_method(a,b)a+bend-剪辑-deftest_calling_global_methods_w

随机推荐