zoukankan      html  css  js  c++  java
  • hadoop HDFS 写入吞吐量

        最近一个项目 在大把大把的使用hadoop-HDFS,关于HDFS 的优势网上都快说烂了,这里不再说了,免得被。。 呵呵

    废话少说,开整

    1、场景描述:

        服务器A 监听 服务器B分发任务socket。当B 服务器发送指令上传数据,服务器A 便启动HDFSClient 开始

    从服务器D(FTP服务器)获取数据上传至HADOOP(这里的数据总量大小一般10-100G,单个文件4-15M)2、

    2、环境:

      网络:千兆局域网

      hadoop版本:1.2.1

      硬件环境:略(正规服务器,不扯了)

    3、问题

    至于这种数据量大,文件碎小。单线程程序绝对打不满网络(IO 这里绝对不是问题,服务器插着多块磁盘)此处已写程序测试。

    4、解决方法

    4.1、hadoop优化配置

    -------------------------------------------------------------------------------------------------------------

    集群整体心跳 将默认3秒 修改为0.25秒
    <!--hadoop 源代码 心跳 解释:conf.getLong("dfs.heartbeat.interval", HEARTBEAT_INTERVAL) * 1000L;//代码中读取心跳 为毫秒 --->
        <property>
           <name>dfs.heartbeat.interval</name>
           <value>0.25</value>
        </property>
    ------------------------------------------------------------------------------------------------------------------------
    集群  SequenceFiles在读写中可以使用的缓存大小 默认 为4KB  ,这里扩容至 1MB 今后根据实际物理机器调优
    直接影响 hdfs 读写能力
    <property>
             <name>io.file.buffer.size</name>
             <value>1048576</value>
        </property>
     
    注意:看你hadoop 集群的配置,普通pc 或者虚拟机请勿模仿。
    -------------------------------------------------------------------------------------------------------------------------
    启动 hadoop 做磁盘存储均衡
    hadoop balancer -Threshold 5 ------- 每个磁盘利用率偏差 在5% 之内
    -------------------------------------------------------------------------------------------------------------------------
     
    4.2 程序优化
    1、将程序改为多线程(我的集群目前35线程可以将网络基本打满)
    2、将HDFS 操作类改成单例(注意,线程安全的哦),这只主要第一步初始化的是
     
    (1) Configuration config = new Configuration();
    (2)FileSystem hdfs = FileSystem.get(URI.create(URL),config);
    //FileSystem 初始化相对比较耗时。
    ----------------------------------------------------------------------
    好了,开启你的线程池 开始测试吧
    我这里网络基本可以打满,个人还是比较满意的
    (亲们,千兆局域网  一般说的是都是小b,你传输数据的时候 理想速度应该是125M)。
     
     
     
     
     
  • 相关阅读:
    android模拟器上网设置
    20150916自动化测试之Appinum For Android(环境搭建之下载更新安装AndroidSDK包)
    测试部门目标
    grade 错误
    质量保证
    emma覆盖率
    python学习(二)--数据类型
    python学习(一)--python解释器
    fidder从基础到熟练
    这几天帮一个朋友解决了一点小问题(RF的有些小问题及解决过程)
  • 原文地址:https://www.cnblogs.com/elwiny/p/3438160.html
Copyright © 2011-2022 走看看