首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop多个-put命令减速

Hadoop多个-put命令减速
EN

Stack Overflow用户
提问于 2016-12-07 20:54:25
回答 1查看 643关注 0票数 0

我正在尝试将大量数据(几千个文件加到19 to )复制到Hadoop集群中。我在文件的子集上运行bash循环,运行的循环越多,所有复制的东西就越慢

代码语言:javascript
复制
for filename in /path/to/my/data/*.csv; 
    do cat $filename | ssh user@hadoop "hadoop fs -put - /path/to/new/data/$filename"; 
done

当我在集群上移动数据时,也会出现同样的问题,所以我不认为是通过网络复制造成问题的。

问: Hadoop能处理多个同时进行的put命令吗?这就是我所期待的吗?

编辑:集群规范:9个服务器,每个服务器4个磁盘,每个节点可用24 on。大约有六条命令。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-08 05:28:28

HDFS的写入速度取决于以下几个因素

1)网络速度

2)磁盘I/O速度

3)数据节点数

4)复制因子

5)文件类型-无论是大量小文件还是大文件

6) Namenode和Datanode Java堆大小。

7) namenode和datanode服务器的性能。

HDFS可以处理多个读写请求。编写大量的小文件会为每个文件向namenode发送写请求。写入操作只有在复制到n个节点数之后才能完成,其中n是复制因子,因此复制因子越高,写入时间就越长。

如果网络、磁盘等是完美的,那么在增加namenode和datanode的堆大小之后,比较它们的性能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41027188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档