Hadoop-2.7.0 HDFS DataXceiverServer两个参数的疑问

1、TcpPeerServer的数据接收缓冲区大小

        Hadoop-2.7.0的DataXceiverServer中,在DataNode中对其初始化时,会构造一个TcpPeerServer,并设置数据接收缓冲区大小如下:

tcpPeerServer.setReceiveBufferSize(HdfsConstants.DEFAULT_DATA_SOCKET_SIZE);

        这个HdfsConstants.DEFAULT_DATA_SOCKET_SIZE是个常量,大小为128KB,如下:

  // TODO should be conf injected?
  public static final int DEFAULT_DATA_SOCKET_SIZE = 128 * 1024;

        这个TcpPeerServer的数据接收缓冲区大小固定为128KB,是否经过大量测试?是否符合大多数集群?是否有必要做成参数?

2、DataXceiverServer线程监听读写事件内存繁忙时等待时间大小

        DataXceiverServer线程在监听读写事件时,如果发生OutOfMemoryError错误,说明集群读写繁忙,内存紧张,此时DataXceiverServer线程会等待30s,然后继续run中的循环,监听读写事件,如下:

      } catch (OutOfMemoryError ie) {
        IOUtils.cleanup(null, peer);
        // DataNode can run out of memory if there is too many transfers.
        // Log the event, Sleep for 30 seconds, other transfers may complete by
        // then.
        LOG.error("DataNode is out of memory. Will retry in 30 seconds.", ie);
        try {
          Thread.sleep(30 * 1000);
        } catch (InterruptedException e) {
          // ignore
        }

        这个30s是否合理?是否应该做成参数。

        TODO:

        有时间时专门测试下,看看是否有优化可能。

时间: 2024-11-09 00:16:28

Hadoop-2.7.0 HDFS DataXceiverServer两个参数的疑问的相关文章

日志-求救啊!Hadoop 2.2.0 搭建集群 启动hdfs时候 namenode 启动后报空指针

问题描述 求救啊!Hadoop 2.2.0 搭建集群 启动hdfs时候 namenode 启动后报空指针 日志如下: 2015-02-07 01:01:46,610 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Error encountered requiring NN shutdown. Shutting down immediately. java.lang.NullPointerException at org.apache

独家 | 一文读懂Hadoop(二)HDFS(下)

5.1 用户命令 hadoop集群用户的常用命令. 5.1.1 classpath 打印获取Hadoop jar和所需库所需的类路径.如果无参数调用,则打印由命令脚本设置的类路径,可以在类路径条目中包含通配符.其他选项在通配符扩展后打印类路径或将类路径写入jar文件的清单.后者在不能使用通配符且扩展的类路径超过支持的最大命令行长度的环境中非常有用. 5.1.2 dfs HDFS允许以文件和目录的形式组织用户数据.它提供了一个称为FS shell的命令行界面,允许用户与HDFS中的数据交互.此命令

独家 | 一文读懂Hadoop(二)HDFS(上)

随着全球经济的不断发展,大数据时代早已悄悄到来,而Hadoop又是大数据环境的基础,想入门大数据行业首先需要了解Hadoop的知识.2017年年初apache发行了Hadoop3.0,也意味着一直有一群人在对Hadoop不断的做优化,不仅如此,各个Hadoop的商业版本也有好多公司正在使用,这也印证了它的商业价值. 读者可以通过阅读"一文读懂Hadoop"系列文章,对Hadoop技术有个全面的了解,它涵盖了Hadoop官网的所有知识点,并且通俗易懂,英文不好的读者完全可以通过阅读此篇文

Hadoop 2.4.0和YARN的安装过程

Hadoop 2.x新特性     将Mapreduce框架升级到Apache YARN,YARN将Map reduce工作区分为两个:JobTracker组件:实现资源管理和任务JOB:计划/监视组件:划分到单独应用中. 使用MapReduce的2.0,开发人员现在可以直接Hadoop内部基于构建应用程序.Hadoop2.2也已经在微软widnows上支持. YARN带来了什么     1.HDFS的高可靠性     2.HDFS snapshots快照     3.支持HDFS中的 NFSv

eclipse/intellij idea 远程调试hadoop 2.6.0

很多hadoop初学者估计都我一样,由于没有足够的机器资源,只能在虚拟机里弄一个linux安装hadoop的伪分布,然后在host机上win7里使用eclipse或Intellj idea来写代码测试,那么问题来了,win7下的eclipse或intellij idea如何远程提交map/reduce任务到远程hadoop,并断点调试? 一.准备工作 1.1 在win7中,找一个目录,解压hadoop-2.6.0,本文中是D:\yangjm\Code\study\hadoop\hadoop-2.

hadoop详解(六) HDFS数据完整性

数据完整性 IO操作过程中难免会出现数据丢失或脏数据,数据传输得量越大出错得几率越高.校验 错误最常用得办法就是传输前计算一个校验和,传输后计算一个校验和,两个校验和如果不相同就说明数据存 在错误,比较常用得错误校验码是CRC32. hdfs数据完整性 hdfs写入的时候计算出校验和, 然后每次读的时候再计算校验和.要注意的一点是,hdfs每固定长度就会计算一次校验和,这个值由 io.bytes.per.checksum指定,默认是512字节.因为CRC32是32位即4个字节,这样校验和占用的空

将Spark部署到Hadoop 2.2.0上

本文介绍的是如何将http://www.aliyun.com/zixun/aggregation/14417.html">Apache Spark部署到Hadoop 2.2.0上,如果你们的Hadoop是其他版本,比如CDH4,可直接参考官方说明操作. 需要注意两点:(1)使用的Hadoop必须是2.0系列,比如0.23.x,2.0.x,2.x.x或CDH4.CDH5等,将Spark运行在 Hadoop上,本质上是将Spark运行在Hadoop YARN上,因为Spark自身只提供了作业管

Hadoop 2.4.0新特性介绍

在http://www.aliyun.com/zixun/aggregation/33721.html">2014年4月7日,Apache发布了Hadoop 2.4.0 .相比于hadoop 2.3.0,这个版本有了一定的改进,突出的变化可以总结为下列几点(官方文档说明): 1 支持HDFS访问控制列表(ACL,Access Control Lists) 这个特性解决了在一定情况下,文件权限访问的权限问题.其机制是基于Linux文件访问权限的特征,如果你熟悉Linux的文件访问机制,你就不

发布Apache Hadoop 2.6.0——异构存储,长时间运行的服务与滚动升级支持

发布Apache Hadoop 2.6.0--异构存储,长时间运行的服务与滚动升级支持 我很高兴地宣布,在Apache的Hadoop社区已经发布的Apache Hadoop的2.6.0:http://markmail.org/message/gv75qf3orlimn6kt! 特别是,我们很高兴在此版本中相关的三个主要片:异构存储在HDFS使用SSD和内存层,支持长时间运行在YARN服务和滚动升级,将升级您的集群软件,然后重新启动升级的节点而无需关闭群集或丢失正在进行的工作.YARN作为其架构中