Hadoop副本数配置
一个文件,上传到hdfs上时指定的是几个副本就是几个。修改了副本数(dfs.replications),对已经上传了的文件也不会起作用。
当然可以在上传文件的同时指定创建的副本数
hadoop dfs -D dfs.replication=2 -put abc.txt /tmp
可以通过命令来更改已经上传的文件的副本数:
hadoop fs -setrep -R 2 /
查看当前hdfs的副本数
hadoop fsck -locations
某个文件的副本数,可以通过ls中的文件描述符看到
hadoop dfs -ls
如果你只有3个datanode,但是你却指定副本数为4,是不会生效的,因为每个datanode上只能存放一个副本
当一个文件上传时,client并不立刻联系namenode,而是先在本地缓存数据,当 HDFS block size时, 联系namenode, namenode将文件名插入到文件系统结构中,并为期分配一个数据块。
namenode以datanode主机名和数据块的位置来相应client的请求。客户端从本地临时文件中将数据刷新到指定的datanode。
当file关闭时,未刷新的临时文件将传输到datanode,client通知namenode 文件关闭。 此时,namenode将文件创建操作提交到永久存储。
如果namenode在file closes之前die,则文件丢失。
创建副本
当client写文件到hdfs时,像前面提到的,先写文件到本地临时文件,假设设定hdfs的副本系数为3.当缓存的文件达到hdfs block size时,client从namenode检索一个datanode的列表。该列表包含将host该副本的datanode列表。
client刷新数据到列表中的第一个datanode。
第一个datanode以4kb为单位接收数据,将数据写到本地并传输到列表中的第二个datanode,第二个datanode也做同样操作。
一个datanode可以从上一个数据管道获取数据,并同时将数据发送到下一个数据管道。
配置参数可以不止一次被指定
最高优先级值优先
优先顺序(从低到高):
- *-site.xml on the slave node
- *-site.xml on the client machine
- Values set explicitly in the JobConf object for a MapReduce job
如果在配置文件中的值标记为final,它覆盖所有其他
<property>
<name>some.property.name</name>
<value>somevalue</value>
<final>ture</final>
</property>
对于类似副本数、data.dir,fs相关的参数建议在datanode节点配成final=true的
问:预处理主机的dfs.replication设置的是几?
答:预处理设置dfs.replication参数的hdfs-site.xml配置文件,修改后重新重启预处理服务,副本数问题搞定。
block的备份数是由写入数据的client端配置决定的,所以该类问题一般是由client的配置引起。
【参考】http://blog.sina.com.cn/s/blog_edd9ac0e0101it34.html
Hadoop副本数配置的更多相关文章
- 【大数据系列】使用api修改hadoop的副本数和块大小
package com.slp.hdfs; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.h ...
- hadoop(hbase)副本数修改
一.需求场景 随着业务数据的快速增长,物理磁盘剩余空间告警,需要将数据备份从3份修改为1份,从而快速腾出可用磁盘容量. 二.解决方案 1. 修改hdfs的副本数 Hbase 的数据是存储在 hdfs ...
- hadoop修改MR的提交的代码程序的副本数
hadoop修改MR的提交的代码程序的副本数 Under-Replicated Blocks的数量很多,有7万多个.hadoop fsck -blocks 检查发现有很多replica missing ...
- 初识Hadoop一,配置及启动服务
一.Hadoop简介: Hadoop是由Apache基金会所开发的分布式系统基础架构,实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS:Hadoo ...
- HDFS 上文件块的副本数设置
一.使用 setrep 命令来设置 # 设置 /javafx-src.zip 的文件块只存三份 hadoop fs -setrep /javafx-src.zip 二.文件块在磁盘上的路径 # 设置的 ...
- Hadoop详细安装配置过程
步骤一:基础环境搭建 1.下载并安装ubuntukylin-15.10-desktop-amd64.iso 2.安装ssh sudo apt-get install openssh-server op ...
- 一、hadoop安装与配置
准备环境: 系统:centos6.5 64位 192.168.211.129 master 192.168.211.131 slave1 在两台服务器上都要配置ssh免密码登录 在192. ...
- spark学习(2)--hadoop安装、配置
环境: 三台机器 ubuntu14.04 hadoop2.7.5 jdk-8u161-linux-x64.tar.gz (jdk1.8) 架构: machine101 :名称节点.数据节点.Secon ...
- Hadoop(一)阿里云hadoop集群配置
集群配置 三台ECS云服务器 配置步骤 1.准备工作 1.1 创建/bigdata目录 mkdir /bigdatacd /bigdatamkdir /app 1.2修改主机名为node01.node ...
随机推荐
- maven 配置 Java Servlet API
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency> ...
- 解决a标签IE下点击后出现轮廓框
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- opencv-3.0.0-beta和opencv2版本号的差别
我的机器:64位系统 第一步: opencv官网下载opencv3.0.0-beta版本号.解压到自己的目录,我的目录是E:\,解压后在E盘出现名为opencv的目录.该目录下有两个子目录 第二步:配 ...
- 小白心目中的Java抽象类(abstract class)
在java开发中,我们有时会定义了一个父类,这个父类只有对方法的描述,但却没有在父类中写出对方法的实现,这种被定义的方法称为抽象方法.那么理所当然,含有抽象方法的类就称为抽象类.用关键字abstrac ...
- 如何显示Firefox插件(Plugins)的完整路径并删除
在Firefox里面,插件firefox只提供禁用选项,无法直接卸载. 要卸载插件,可以按照下面的步骤: 1.在地址栏内,输入 about:config,回车:在过滤器那一栏输入 plugin.exp ...
- Java虚拟机学习 - 对象引用强度 ( 8 )
无论是通过计数算法判断对象的引用数量,还是通过根搜索算法判断对象引用链是否可达,判定对象是否存活都与“引用”相关. 引用主要分为 :强引用(Strong Reference).软引用(Soft Ref ...
- Linux Pin Control 子系统
Pin Control Subsystem是Linux内核抽象出的一套用于控制硬件引脚的一套子系统. 1.源文件列表 源码位于linux/drivers/pinctrl目录下,源文件列表如下: 文件名 ...
- python学习笔记——进程间通信方式对比
通信方式对比 管道 消息队列 共享内存 信号 开辟空间 内存 内存 内存 不开辟额外空间 读写方式 双向/单向(信息流) 先进先出(消息体) 操作内存(数值数组) 发送处理信号 效率 一般 一般 ...
- python练习笔记——丑数的计算
只包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数,另外1也不是丑数.——摘自百度百科 get_num = int(input("请您输入丑数的 ...
- 转 如何使用Windows Media Load Simulator进行Windows Media服务器性能测试和监控
Windows Media Load Simulator(WMLS)有两个主要的用途:作为极值或者压力测试工具和在线监视器. 1 极值和压力压力测试:你能够在达到期望的极值压力条件下测试离线的 ...