分享

hdfs写入速度问题

wdx_827 发表于 2017-8-2 16:28:41 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 16 26010
部署情况是6个机器,1个namendoe,1个secondnamenode,4个datanode。每个datanode节点有五个sata盘,然后在hdfs.xml中的dfs.datanode.data.dir中分别配置这五个盘对应的目录。最后通过TestDFSIO 测试,结果是average io rate mb/sec:133.316,速度太慢了,如何提升写入速度啊。补充一下网络是10Gb另外,另外,我自己写的程序上传数据到hdfs,10个线程每个线程上传1G文件,大概45秒左右上传完成,速率大概200MB/s多一点。感觉就是sata硬盘的最高写入速度。请问是sata盘速度导致写入速率慢吗?dfs.datanode.data.dir中分配配置五个独立的单盘,速度不是单盘写入速度的5陪吗?

已有(16)人评论

跳转到指定楼层
sstutu 发表于 2017-8-2 16:58:33
至于写入速度,分为硬件和软件。硬件只接购买即可。比如使用可高速读写的磁盘。
dfs.datanode.data.dir应该是配置的可以存储文件的磁盘。可能物理上只有一个,逻辑上有多个而已。
回复

使用道具 举报

wdx_827 发表于 2017-8-2 17:01:49
sstutu 发表于 2017-8-2 16:58
至于写入速度,分为硬件和软件。硬件只接购买即可。比如使用可高速读写的磁盘。
dfs.datanode.data.dir应 ...

我想问一下,我目前的硬盘情况,是否可以有办法提示写入速度?
回复

使用道具 举报

sstutu 发表于 2017-8-2 17:19:54
wdx_827 发表于 2017-8-2 17:01
我想问一下,我目前的硬盘情况,是否可以有办法提示写入速度?

需要看你具体的业务。比如hbase,一条条插入肯定慢,如果直接使用bulkload加载,速度则快很多。
回复

使用道具 举报

wdx_827 发表于 2017-8-2 17:21:02
sstutu 发表于 2017-8-2 17:19
需要看你具体的业务。比如hbase,一条条插入肯定慢,如果直接使用bulkload加载,速度则快很多。

我是直接写入到hdfs上啊
回复

使用道具 举报

wdx_827 发表于 2017-8-2 17:23:01
本帖最后由 wdx_827 于 2017-8-2 18:11 编辑
sstutu 发表于 2017-8-2 17:19
需要看你具体的业务。比如hbase,一条条插入肯定慢,如果直接使用bulkload加载,速度则快很多。

客户端直接写入到hdfs上,请问有办法提高写入hdfs的IO速度吗??
回复

使用道具 举报

arsenduan 发表于 2017-8-2 17:52:29
wdx_827 发表于 2017-8-2 17:23
客户端直接写入到hdfs上,请问有办法提示写入hdfs的IO速度吗??

Linux有提供的监控io的命令iostatiostat主要用于监控系统设备的IO负载情况,下面例子仅供参考。
[mw_shl_code=bash,true]iostat -d -k 2
[/mw_shl_code]
参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。
更多可以搜下

回复

使用道具 举报

hasqjh7 发表于 2017-8-2 18:37:24
用什么工具写的?
回复

使用道具 举报

wdx_827 发表于 2017-8-2 18:42:31
hasqjh7 发表于 2017-8-2 18:37
用什么工具写的?

hdfs 提供的api做的,自己写的程序做的写入。
回复

使用道具 举报

hasqjh7 发表于 2017-8-3 09:56:35
wdx_827 发表于 2017-8-2 18:42
hdfs 提供的api做的,自己写的程序做的写入。

嗯呢,不知道 你的需求是啥,如果走计算的话,就走Mapreduce多线程地去写了,或者是别的计算框架,如果是做etl,可以 用Flume或别的。
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条