最近一个项目 在大把大把的使用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)。
 
 
 
 
 

hadoop HDFS 写入吞吐量的更多相关文章

  1. Hadoop HDFS分布式文件系统设计要点与架构

      Hadoop HDFS分布式文件系统设计要点与架构     Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群 ...

  2. 从 RAID 到 Hadoop Hdfs 『大数据存储的进化史』

    我们都知道现在大数据存储用的基本都是 Hadoop Hdfs ,但在 Hadoop 诞生之前,我们都是如何存储大量数据的呢?这次我们不聊技术架构什么的,而是从技术演化的角度来看看 Hadoop Hdf ...

  3. 我理解中的Hadoop HDFS分布式文件系统

    一,什么是分布式文件系统,分布式文件系统能干什么 在学习一个文件系统时,首先我先想到的是,学习它能为我们提供什么样的服务,它的价值在哪里,为什么要去学它.以这样的方式去理解它之后在日后的深入学习中才能 ...

  4. Hadoop HDFS负载均衡

    Hadoop HDFS负载均衡 转载请注明出处:http://www.cnblogs.com/BYRans/ Hadoop HDFS Hadoop 分布式文件系统(Hadoop Distributed ...

  5. HADOOP HDFS的设计

    Hadoop提供的对其HDFS上的数据的处理方式,有以下几种, 1 批处理,mapreduce 2 实时处理:apache storm, spark streaming , ibm streams 3 ...

  6. [转]hadoop hdfs常用命令

    FROM : http://www.2cto.com/database/201303/198460.html hadoop hdfs常用命令   hadoop常用命令:  hadoop fs  查看H ...

  7. Hadoop HDFS文件常用操作及注意事项

    Hadoop HDFS文件常用操作及注意事项 1.Copy a file from the local file system to HDFS The srcFile variable needs t ...

  8. Hadoop HDFS文件常用操作及注意事项(更新)

    1.Copy a file from the local file system to HDFS The srcFile variable needs to contain the full name ...

  9. Hadoop HDFS (3) JAVA訪问HDFS

    如今我们来深入了解一下Hadoop的FileSystem类. 这个类是用来跟Hadoop的文件系统进行交互的.尽管我们这里主要是针对HDFS.可是我们还是应该让我们的代码仅仅使用抽象类FileSyst ...

随机推荐

  1. Could not connect to SMTP host: smtp.***.com, port: 465, response: -1

    背景 在使用javamail进行邮件发送的时候,报错: Could not connect to SMTP host: smtp.***.com, port: 465, response: -1 原因 ...

  2. 最受欢迎的ASP.NET的CMS下载

    1. Umbraco 项目地址 下载 Umbraco是一个开放源码的CMS内容管理系统,基于asp.net建立,使用mssql进行存储数据.使用Umbraco,设计师能创造出有效的XHTML标记模板和 ...

  3. C/c++输入输出函数

    最全输入函数 c/c++一:c=getchar();功能:读入一个字符说明:调用此函数时要求在程序的第一行有预编译命令:#include<stdio>,不过在做c++时 有#include ...

  4. mac下装Ruby

    https://ruby-china.org/wiki/install_ruby_guide

  5. C# 控件双缓冲控制 ControlStyles 枚举详解

    ControlStyles 枚举 .NET Framework 4    指定控件的样式和行为. 此枚举有一个 FlagsAttribute 特性,通过该特性可使其成员值按位组合. 命名空间:  Sy ...

  6. Java面向对象详解

    Java面向对象详解 前言:接触项目开发也有很长一段时间了,最近开始萌发出想回过头来写写以前学 过的基础知识的想法.一是原来刚开始学习接触编程,一个人跌跌撞撞摸索着往前走,初学的时候很多东西理解的也懵 ...

  7. openVPN使用

    http://www.williamlong.info/archives/3814.html http://openvpn.ustc.edu.cn/ http://www.williamlong.in ...

  8. hdu 4972 A simple dynamic programming problem (转化 乱搞 思维题) 2014多校10

    题目链接 题意:给定一个数组记录两队之间分差,只记分差,不记谁高谁低,问最终有多少种比分的可能性 分析: 类似cf的题目,比赛的时候都没想出来,简直笨到极点..... 最后的差确定,只需要计算和的种类 ...

  9. Java Web编程的主要组件技术——Struts的高级功能

    参考书籍:<J2EE开源编程精要15讲> Struts对国际化的支持 "国际化"(I18N)指一个应用程序在运行时能根据客户端请求所来的国家/地区.语言的不同显示不同的 ...

  10. buildroot linux filesystem 初探

    /****************************************************************************** * buildroot linux fi ...