搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云-梭伦科技
»
专题
›
交流区
›
技术交流
›
HDFS
›
请教:Java客户端并发访问HDFS的问题。
0
7
0
分享
请教:Java客户端并发访问HDFS的问题。
goldtimes
发表于 2013-10-25 10:43:24
[显示全部楼层]
阅读模式
关闭右栏
7
8337
刚刚开始看HDFS,对客户端访问HDFS做了一个简单的并发测试,对测试结果比较疑惑,请各位帮忙看看;
测试环境描述:
HDFS由一个NameNode(一台物理机)和两个DataNode(两台物理机)组成,客户端在区域网内的另一台机器;
测试过程描述:
首先,HDFS上已经存在了一个大约12M的文件;
然后,客户端启动多根线程,每根线程都去分别获取文件;
测试结果是:
当客户端为1根线程时,客户端获取到文件的处理时间为672ms:
当客户端为5根线程时,客户端每根线程获取到文件的平均处理时间为1800ms:
当客户端为10根线程时,客户端每根线程获取到文件的平均处理时间为3500ms:
下面是我的测试代码:
[ol]
package hdfs;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URI;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class TestProblem {
public static void main(String[] args) throws FileNotFoundException, IOException {
final String dst = "hdfs://172.16.4.14:9000/user/hdfs/apk/20.apk";
final Configuration conf = new Configuration();
final FileSystem fs = FileSystem.get(URI.create(dst), conf);
//客户端请求线程数
int count = 10;
ExecutorService es = Executors.newCachedThreadPool();
for (int i = 0; i 复制代码
非常奇怪,随着客户端处理线程的增加,处理时间很急剧上升,是我的代码有吗?瓶颈在哪儿吗?
日志看起来似乎都是正常的;
请各位帮忙看看,谢谢。
补充说明:
我只通过bin/start-dfs.sh脚本启动服务,并没有开启hadoop的其他功能。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
已有(7)人评论
电梯直达
正序浏览
JavaShoote
发表于 2013-10-25 10:43:24
怎么没人呢。。。。
回复
使用道具
举报
显身卡
mexiang
发表于 2013-10-25 10:43:24
请各位帮帮忙看看哦,呵呵。
回复
使用道具
举报
显身卡
sq331335144
发表于 2013-10-25 10:43:24
都到编码阶段了,我还没开始编码,方便的话留个联系方式交流下,我的邮箱
fly542@163.com
回复
使用道具
举报
显身卡
mituan2008
发表于 2013-10-25 10:43:24
扣扣:4五40六047九,欢迎交流啊。
回复
使用道具
举报
显身卡
fylanyu
发表于 2013-10-25 10:43:24
怎么的都没人的呢吗?吗?
回复
使用道具
举报
显身卡
mituan2008
发表于 2013-10-25 10:43:24
随着客户端处理线程的增加,你的namnode就是这个,要处理的数据多了,当然时间会长,namenode的rpc服务器是采用nio,本质是一个队列处理的,当然要一个一个请求排队
回复
使用道具
举报
显身卡
JavaShoote
发表于 2013-10-25 10:43:24
随着客户端处理线程的增加,你的namnode就是这个,要处理的数据多了,当然时间会长,namenode的rpc服务器是 ...
sunshine 发表于 2011-9-29 16:47
ipc.server.read.threadpool.size 默认1
dfs.namenode.handler.count 默认3
以上设置 增加数目试试
回复
使用道具
举报
显身卡
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
发表新帖
goldtimes
中级会员
关注
74
主题
254
帖子
6
粉丝
TA的主题
Linux装逼神器--快捷键总结
2016-5-11
Spark + ansj 对大数据量中文进行分词
2016-1-12
Azure机器学习入门
2015-12-30
高级统计方法在市场研究中的应用手册
2015-12-30
机器学习实践中文版
2015-12-30
24小时热文
像高手一样发言:七种常见工作场景的说话之
幕后产品:打造突破式产品思维
副业警钟,新型法律碰瓷发财方式:批量诉讼
Spark机器学习
Spark机器学习算法、源码及实战详解
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈