分享

请教:Java客户端并发访问HDFS的问题。

nada_forever 发表于 2013-10-16 13:41:55 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 6655
测试环境描述:HDFS由一个NameNode(一台物理机)和两个DataNode(两台物理机)组成,客户端在区域网内的另一台机器;
测试过程描述:
首先,HDFS上已经存在了一个大约12M的文件;
然后,客户端启动多根线程,每根线程都去分别获取文件;
测试结果是:
当客户端为1根线程时,客户端获取到文件的处理时间为672ms:
当客户端为5根线程时,客户端每根线程获取到文件的平均处理时间为1800ms:
当客户端为10根线程时,客户端每根线程获取到文件的平均处理时间为3500ms:
下面是我的测试代码:
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)人评论

跳转到指定楼层
nada_forever 发表于 2013-10-16 13:42:42

            自己顶一下,请各位麻烦帮一帮忙,呵呵。
        
回复

使用道具 举报

nada_forever 发表于 2013-10-16 13:43:18

            自己顶。。。。
        
回复

使用道具 举报

nada_forever 发表于 2013-10-16 13:44:00

            高手都在哪呢?
        
回复

使用道具 举报

sxdgundam 发表于 2013-10-16 13:44:40

            路过帮顶!
        
回复

使用道具 举报

uncle_bacon 发表于 2013-10-16 13:45:12

            路过帮顶!
        
回复

使用道具 举报

nada_forever 发表于 2013-10-16 13:45:52

            后来测试,似乎确实与网络带宽有关,但我的客户端机器的千兆网卡的使用率最高只能达到60%,有点奇怪啊。
        
回复

使用道具 举报

lingling1989r 发表于 2013-10-16 13:46:41

            可能是文件大小的问题,增加到一定程度之后,你分多个线程能显现出他的优点,是不是大部分时间用于分开合并,所以才耗时增加。。。
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条