Experience with Hadoop?你们有没有尝试过Hadoop? 在无共享体系结构中,可以在没有随附的分布式文件系统的情况下使用它吗? 那有道理吗? 我也对您获得的任何性能结果感兴趣... 是的,您可以在各个地方使用文件URI而不是hdfs URI在本地文件系统上使用Hadoop。我认为Hadoop随附的许多示例都可以做到这一点。 如果您只是想学习Hadoop的工作原理和基本的map-reduce范式,那可能就很好了,但是您将需要多台机器和一个分布式文件系统来获得架构固有的可伸缩性的真正好处。 Hadoop MapReduce可以在任何数量的文件系统甚至是更多抽象数据源(例如数据库)上运行。实际上,有两个内置类可支持非HDFS文件系统,例如S3和FTP。您还可以通过扩展基本的InputFormat类来轻松构建自己的输入格式。 但是,使用HDFS具有某些优势。最有力的好处是,MapReduce作业调度程序将尝试执行映射,并减少存储需要处理的记录的物理计算机上的映射。这可以提高性能,因为可以直接从本地磁盘加载数据,而不必通过网络传输数据,这取决于连接速度可能会慢几个数量级。 围绕Hadoop的最好方法是下载它并开始探索包含示例。使用Linux box / VM,您的设置将比Mac或Windows容易得多。一旦您对示例和概念感到满意,然后开始查看问题空间如何映射到框架中。 您可能会发现一些有用的资源,它们对Hadoop的更多信息有用: Hadoop峰会视频和演示 Hadoop:权威指南:精简版-这是目前Hadoop上仅有的几本(仅?)书籍之一。我想说,即使在这一点上,电子下载选项的价格也是值得的(本书已完成约40%)。
如Joe所说,您确实可以在没有HDFS的情况下使用Hadoop。但是,吞吐量取决于群集在存储数据的位置附近进行计算的能力。使用HDFS有两个主要好处:恕我直言1)计算在整个群集中分布更均匀(减少了节点间的通信量),2)整个群集更能抵抗由于数据不可用而导致的故障。 如果您的数据已经分区或微不足道地分区,则可能需要考虑为map-reduce任务提供自己的分区功能。 上面有很好的理论答案。 要将您的hadoop文件系统更改为本地,可以在" core-site.xml"配置文件中对其进行更改,如下所示,适用于hadoop版本2.x.x。
对于hadoop版本1.x.x。
是的,您可以在指定输入文件等的同时使用file://使用本地文件系统,这也适用于较小的数据集。但是hadoop的实际功能基于分布式和共享机制。 但是Hadoop用于处理大量数据。单个本地计算机无法处理大量数据,即使这样做也将花费大量时间来完成工作。由于输入文件位于共享位置(HDFS) ),多个映射器可以同时读取它,从而减少了完成工作的时间。 简而言之,您可以将其与本地文件系统一起使用,但要满足业务需求,应将其与共享文件系统一起使用。 如果您只是弄湿了脚,请先下载CDH4并运行它。您可以轻松地安装到本地虚拟机中并在"伪分布式模式"下运行,该模式与虚拟集群在实际集群中的运行方式非常相似。 是的,没有HDFS,hadoop可以很好地使用。 HDFS只是Hadoop的默认存储。您可以将HDFS替换为任何其他存储(如数据库)。 HadoopDB是对hadoop的增强,它使用数据库而不是HDFS作为数据源。 Google,您将轻松获得它。 并行/分布式计算= SPEED << Hadoop使这真的非常容易和便宜,因为您只能使用大量商用机器!!! 多年来,磁盘存储容量已大大增加,但是读取数据的速度却没有跟上。一个磁盘上的数据越多,查找速度就越慢。
Hadoop是解决问题的"分而治之"方法的巧妙变体。 要了解hadoop的优势,您应该在同一机架上拥有一个集群,该集群至少包含4到8台商用计算机(取决于数据的大小)。 您不再需要成为超级天才并行系统工程师即可利用分布式计算。只知道与Hive的合作伙伴关系以及您的利益。 |