hadoop 2.2.0的datanode中存储block的多个文件夹的负载均衡问题
hadoop的分布式文件系统HDFS的存储方式是,将数据分成block,分布式存储在整个hadoop集群的datanode中,每个block默认的大小是64M,这些block文件的具体存储位置是在hadoop的配置文件中定义的,进入/home/hadoop2/hadoop2/etc/hadoop的配置文件目录(hadoop版本为社区版2.2.0):
vi /home/hadoop2/hadoop2/etc/hadoop/hdfs-site.xml <configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:</value>
</property> <property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop2/dfs/name</value>
</property> <property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop2/dfs/data</value>
</property> <property>
<name>dfs.replication</name>
<value></value>
</property> <property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property> </configuration>
其中,标黄色的属性dfs.datanode.data.dir为block存储路径的设置选项。
正常情况下,我们如上图中的设置自己设定的路径就可以了;但是,随着hdfs中的数据量越来越大,会出现datanode上block存储路径所在的挂载点空间不足的情况,本文中的情况就是 /home 挂载点的剩余空间即将不足了,但是在该datanode主机上,/ 挂载点还有非常多的剩余空间,我们希望将数据存储到 / 挂载点的目录下,防止 /home 挂载点被塞满。
这样我们首先需要切换到root管理员用户下,因为 / 挂载点的拥有者是root,我们的hadoop2用户对该目录没有足够的权限。接着我们在该目录下创建一个存储block的文件目录:
su -mkdir /hdfs/data
这样还不能直接设置路径,由于我们是用root用户创建的目录,该目录的拥有者和组群都是root,hadoop2用户没有足够权限,如果设置为datanode的block存储路径,将会抛出异常,导致datanode进程关闭,hadoop集群无法正常启动。我们需要更改/hdfs目录及其子目录的拥有者和组群为hadoop2,如下:
cd / chown hadoop2:hadoop2 -R /hdfs
chown命令用于修改所有者,其中,hadoop2:hadoop2为拥有者和组群,-R为迭代修改所有子目录和文件。
这样我们就可以修改hdfs-site.xml文件的datanode的属性为多个路径:
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/hadoop2/dfs/data,/hdfs/data</value>
</property>
路径之间只需用逗号 “ , ”分隔就可以了。
这样设置后,重新启动集群的dfs,bin/start-dfs.sh,通过jps命令查看集群的相关进程是否都正常启动:
jps HQuorumPeer
SecondaryNameNode
NodeManager
ResourceManager
Bootstrap
NameNode
DataNode
HRegionServer
HMaster
Jps
标黄色的为启动dfs后必须存在的进程,其他的进程为Hbase相关进程。这样设置启动以后,再往HDFS中写入数据时,产生的block数据块就会分别写入两个不同的目录中,均匀分布,不会出现一个路径的挂载空间不足的情况,如果再次占满,可以再次挂载新的磁盘,继续添加路径。
另外,不同的datanode中,block的路径属性可以设置为不相同,不影响集群的正常运行。
转载请注明出处:http://www.cnblogs.com/bxljoy/p/3863539.html
hadoop 2.2.0的datanode中存储block的多个文件夹的负载均衡问题的更多相关文章
- 工具:从一个文件夹中复制jar到另一个文件夹中
工具类:从一个文件夹中复制jar到另一个文件夹中 需要的小伙伴可以试一试,很爽哦,有时候真的很需要! 需求:当我们拿到一个maven项目时,而maven项目的jar包都是通过pom.xml文件管理的, ...
- python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件
python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...
- Windows7系统中nginx与IIS服务器搭建集群实现负载均衡
10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡 分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑 ...
- 【转载】C#代码开发过程中如何快速比较两个文件夹中的文件的异同
在日常的使用电脑的过程中,有时候我们需要比较两个文件夹,查找出两个文件夹中不同的文件以及文件中不同的内容信息,进行内容的校对以及合并等操作.其实使用Beyond Compare软件即可轻松比较,Bey ...
- 在Win7中IIS配置Asp.Net虚拟文件夹的方法及错误总结!
在Win7中IIS配置Asp.Net虚拟文件夹的方法总结! 一.右键[站点].点击[加入虚拟文件夹]或[虚拟应用程序],笔者建议最好建立虚拟应用程序,由于这就跟一个站点差点儿相同.不用考虑路径问题. ...
- 【转】如何打开注册表编辑器中存储用户信息的SAM文件?
sam文件怎么打开 (Security Accounts Manager安全帐户管理器)负责SAM数据库的控制和维护.SAM数据库位于注册表HKLM\SAM\SAM下,受到ACL保护,可以使用rege ...
- 根据Excel文件中的内容,修改指定文件夹下的文件名称
问题:根据Excel文件中内容,把文件名称由第2列,改为第1列.比如:把文件“123.jpg”修改为“1.jpg”.
- 10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡
分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑心中会激动一番(或许这是判断是否是一个标准阿猿的标准吧)! 首先自己从宏观把控一下,通过上网科普自 ...
- sublime text3中sass编译后保存到指定文件夹
第一步: tools->builde system->new build system 第二步: 粘贴如下代码到新建文档中: { "cmd": ["sass& ...
随机推荐
- 解决iOS设备屏幕切换时页面造成的问题
环境:IOS6~7 Safari 问题:iOS设备屏幕切换时可能会造成屏幕变大,出现左右间距等问题 解决方法: 头部加入<meta name = "viewport" con ...
- AngularJS(15)-依赖注入
AngularJS 依赖注入 什么是依赖注入 wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或 ...
- 演出排期JavaScript
<script language="JavaScript" type="text/javascript"> var diarydays=" ...
- 笔记 php.ini配置文件中magic_quotes_gpc, magic_quotes_runtime的作用是什么?应该开启还是关闭?
默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET.POST 和 COOKIE 数据自动运行 addslashes().不要对已经被 magic_quotes_gp ...
- Delphi 中的全局快捷键+给指定窗体发送按键
[背景] 公司做视频影像采集,平时采集图像的时候都需要打开采集窗口,然后需要开着采集窗口来进行图像采集.同事问我能不能做一个全局快捷键,哪怕我没有操作也可以采集图像.说干就干,一直想做全局快捷键了,网 ...
- Error NO.2013 Lost connection to Mysql server during query
系统:[root@hank-yoon ~]# cat /etc/redhat-release CentOS release 6.3 (Final) DB版本:mysql> select @@ve ...
- 【Timers】win服务 定时器
win服务: using System.ServiceProcess; 继承 ServiceBase 即可 定时器: private System.Timers.Timer PushOrderTime ...
- 一些 PHP 管理系统程序中的后门
一些php网站管理程序的,一些后门,其实官方也没有恶意,主要是大家为了自己的安全. 我倒不怎么关心提示框,SABLOG怎么知道我的版本有漏洞呢,程序肯定有后门.每次登陆后台自动检测官方版本跟当前版本对 ...
- PHP中::、->、self、$this操作符的区别
在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,反之如果被引用的变量或者方法没有被声明成const或者 ...
- Entity Framework(序)
ADO.NET Entity Framework 是一个对象-关系的映射结构,它提供了ADO.NET的一个抽象,可基于引用的数据库获取对象模型.可以通过Entity Framework 使用不同的变成 ...