【问题标题】:Is it possible to use Hadoop on a single node to get a higher speed?是否可以在单个节点上使用 Hadoop 以获得更高的速度?
【发布时间】:2014-03-01 00:22:31
【问题描述】:

我想处理一些大文件,比如字数统计。

我只有一个 8 核和 128GB 内存的工作站。

在 Hadoop 上使用独立的伪分布式模式更好还是不使用 Hadoop 但研究并发性更好?

如果使用Hadoop更好,是否有任何规则来决定单个工作站上的配置包括mapper、reducer等的数量?

2014-03-02

以下是我的硬盘信息:

名称 MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdc 8:32 0 2.7T 0 磁盘
├─sdc1 8:33 0 255M 0 部分
├─sdc2 8:34 0 8G 0 部分
├─sdc3 8:35 0 8G 0部分
├─sdc4 8:36 0 16G 0 部分
│ └─md3 9:3 0 15.3G 0 raid1 / ├─sdc5 8:37 0 32G 0 部分
│ └─md127 9:127 0 64G 0 raid5 │ └─vg01-scratch (dm-0) 252:0 0 63.9G 0 lvm /local/scratch ├─sdc6 8:38 0 64G 0 部分
├─sdc7 8:39 0 128G 0 部分
├─sdc8 8:40 0 256G 0 部分
├─sdc9 8:41 0 1T 0 部分
│ └─md125 9:125 0 2T 0 raid5 │ └─vg03-data (dm-1) 252:1 0 4T 0 lvm /local/cargobay └─sdc10 8:42 0 1T 0 部分
└─md126 9:126 0 2T 0 raid5 └─vg03-data (dm-1) 252:1 0 4T 0 lvm /local/cargobay sda 8:0 0 2.7T 0 磁盘
├─sda1 8:1 0 255M 0 部分
├─sda2 8:2 0 8G 0 部分
├─sda3 8:3 0 8G 0部分
├─sda4 8:4 0 16G 0 部分
│ └─md3 9:3 0 15.3G 0 raid1 / ├─sda5 8:5 0 32G 0 部分
│ └─md127 9:127 0 64G 0 raid5 │ └─vg01-scratch (dm-0) 252:0 0 63.9G 0 lvm /local/scratch ├─sda6 8:6 0 64G 0 部分
├─sda7 8:7 0 128G 0 部分
├─sda8 8:8 0 256G 0 部分
├─sda9 8:9 0 1T 0 部分
│ └─md125 9:125 0 2T 0 raid5 │ └─vg03-data (dm-1) 252:1 0 4T 0 lvm /local/cargobay └─sda10 8:10 0 1T 0 部分
└─md126 9:126 0 2T 0 raid5 └─vg03-data (dm-1) 252:1 0 4T 0 lvm /local/cargobay sdb 8:16 0 2.7T 0 磁盘
├─sdb1 8:17 0 255M 0 部分
├─sdb2 8:18 0 8G 0 部分
├─sdb3 8:19 0 8G 0 部分
├─sdb4 8:20 0 16G 0 部分
│ └─md3 9:3 0 15.3G 0 raid1 / ├─sdb5 8:21 0 32G 0 部分
│ └─md127 9:127 0 64G 0 raid5 │ └─vg01-scratch (dm-0) 252:0 0 63.9G 0 lvm /local/scratch ├─sdb6 8:22 0 64G 0 部分
├─sdb7 8:23 0 128G 0 部分
├─sdb8 8:24 0 256G 0 部分
├─sdb9 8:25 0 1T 0 部分
│ └─md125 9:125 0 2T 0 raid5 │ └─vg03-data (dm-1) 252:1 0 4T 0 lvm /local/cargobay └─sdb10 8:26 0 1T 0 部分
└─md126 9:126 0 2T 0 raid5 └─vg03-data (dm-1) 252:1 0 4T 0 lvm /local/cargobay sr0 11:0 1 1024M 0 只读存储器

非常感谢

【问题讨论】:

    标签: hadoop


    【解决方案1】:

    Hadoop 可能会为您节省一些开发时间,因为您可以使用诸如 PIG 或 SQL (Hive) 之类的脚本来进行处理。但这绝对不是获得单节点并行化的最有效方法 - 从运行 hadoop 进程的所有开销开始,hadoop 并行化是基于多进程而不是多线程的事实,大多数 Hadoop 技术(不是全部)都是面向磁盘而不是内存等。

    Hadoop 旨在解决大数据问题,而不是本地单机问题

    【讨论】:

    • 非常感谢。因此,在单个节点上使用 Hadoop 的优势是节省了开发时间。在某些情况下它是有效的,但不是最好的。如果我不使用 Hadoop 或在单节点上使用 Hadoop,有什么建议吗?
    • 一般而言,在单个节点上使用 Hadoop 的唯一原因是,如果您这样做是出于开发/测试目的,并且您的真正目标是大型机器集群
    【解决方案2】:

    除非您在这台机器上为 HDFS 使用至少 8 个硬盘,否则 Hadoop 不会给您带来任何好处。

    【讨论】:

    • 所以关系是一个核心至少需要一个硬盘?
    • 这取决于您解决的任务,但基本上 Hadoop 的开发考虑了密集的磁盘访问。如果你不这样做,那么你在硬件上使用 Hadoop 就是浪费你的钱。在我看来,Hadoop 集群的最佳通用配置之一是每个 CPU 核心 1 个 HDD,每个 CPU 核心 2GB RAM。
    【解决方案3】:

    单节点集群上的 Hadoop 不会提供真正的 hadoop 的功能,因为您需要一个至少 2 - 3 个系统的小网格才能获得 hadoop 的真正功能。单节点hadoop集群仅用于学习目的,但实时至少有2个-3系统的网格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      相关资源
      最近更新 更多