Hadoop工作节点扩展硬盘空间

接到老板任务,Hadoop集群中硬盘空间不够用,要求加一台机器到Hadoop集群,并且每台机器在原有基础上加一块2T硬盘,老板给力啊,哈哈。

这些我把完成这项任务的步骤和我遇到的问题和解决方法总结一下,分享给大家。

1.    首先,介绍一下用到的基本命令和配置,如果本文的网友时间比较紧,可以直接跳过部分内容,直接看“2.   如何加载新硬盘”部分。

(1)命令fdisk

语法:

fdisk [-b sectorsize] device

fdisk -l [-u] [device...]

fdisk -s partition...

fdisk –v

说明:

-b <sectorsize>   指定每个分区的大小。也可以执行fdisk device(如:fdisk /dev/sdb)后,在系统提示时指定。

-l   列出指定的外围设备的分区表状况。如果仅执行 fdisk -l,系统会列出已知的分区。

-u   搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址。

-s <parttion>       将指定的分区的大小输出到标准输出上,单位为区块。

-v   显示fdisk的版本信息。

(2)命令mkfs

语法:mkfs [-V][-t fstype] [fs-options] filesys

说明:

-V   显示简要的使用方法。

-t <fstype>   指定要建立何种文件系统,如:ext3, ext4。

fs   指定建立文件系统时的参数。

-v   显示版本信息与详细的使用方法。

(3)命令mount

语法:

mount [-afFnrsvw] [-t vfstype] [-Llabel]  [-o options] device dir

mount [-lhv]

说明:

-a   加载文件/etc/fstab中设置的所有设备。

-f    不实际加载设备。可与-v等参数同时使用以查看mount的执行过程。

-F   需与-a参数同时使用。所有在/etc/fstab中设置的设备会被同时加载,可加快执行速度。

-t vfstype  指定加载的文件系统类型,如:ext3,ext4。

-L label      给挂载点指定一个标签名称。

-l    显示分区的label。

-h   显示帮助信息。

-v   显示mount的版本信息。

device 要挂载的分区或文件。如果device是一个文件,挂载时须加上-o loop参数。

dir   分区的挂载点。

(4)fstab配置说明

/etc/fstab 中一共有6列:

file system:指定要挂载的文件系统的设备名称(如:/dev/sdb)。也可以采用UUID,UUID可以通过使用blkid命令来查看(如:blkid  /dev/sdb)指定设备的UUID号。

mount point:挂载点。就是自己手动创建一个目录,然后把分区挂载到这个目录下。

type:用来指定文件系统的类型。如:ext3, ext4, ntfs等。

option dump:0表示不备份;1表示要将整个<file system>中的内容备份。此处建议设置为0。

pass:用来指定fsck如何来检查硬盘。0表示不检查;挂载点为分区/(根分区)必须设置为1,其他的挂载点不能设置为1;如果有挂载ass设置成大于1的值,则在检查完根分区后,然后按pass的值从小到大依次检查,相同数值的同时检查。如:/home 和 /boot 的pass 设置成2,/devdata的pass 设置成3,则系统在检查完根分区,接着同时检查/boot和/home,再检查/devdata。

2.        如何加载新硬盘(想详细了解为什么会这样操作,请看第三部分“详解步骤”部分)

(1)      通过命令fdisk –lu,显示“Disk /dev/sdb doesn't contain a valid partition table”说明sdb就是新添加的硬盘,下面主要针对它进行操作。如图1所示。

图1

(2)      下面对sdb进行分区,命令:fdisk/dev/sdb,如下图2所示,按提示操作。

图2

根据提示,输入n,想新硬盘添加一个分区。出现Commandaction时,输入e,指定分区为扩展分区(extended)。出现Partition number(1-4)时,输入1表示只分一个区。

续指定起启柱面(cylinder)号完成分区。如图3所示。

图3

(3)      最后输入p,打印出新硬盘分区表,图4所示。

图4

(4)      在Command (m for help)提示符后面输入w,保存分区表。系统提示:Thepartition table has been altered! 如图5所示。

图5

(5)      此时,用命令fdisk –lu分区情况,如图6所示

图6

(6)      对新分区进行格式化:sudo mkfs -t ext4 /dev/sdb,(推荐ext4,时间比较快,具体了解看第三部分“详细步骤”)如图7所示。

图7

(7)      挂载硬盘sudo mount -t ext4 /dev/sdb /devdata(这里devdata是自己制定的目录,你可以指定任意目录,我加载的目录是dfs.data.dir指定的目录),到此时已经完成了所有步骤,下面就是修补。此时就可以用命令sudo df –h查看了,如图8所示。

图8

(8)      如果想每次手动加载,使用命令mount –a。如果想让系统自动加载,需要配置/etc/fstab,如下图9所示。

图9

到此加载过程完成。

如果是Hadoop集群,此时需要将每个工作节点dfs.data.dir目录重新修改权限,使用命令:chown –R dm:dm/usr/local/hadoop/data/(这是dfs.data.dir指向的目录),然后将namenode格式化即可,这里笔者就是忘了更改dfs.data.dir指向目录的权限,导致datanode启动不起来,汗啊。

3.    详解步骤

(1)对于2中(1)的名称sdb,其实Linux对设备的命名有它自己的一套规则,根据接口类型来区分存储设备,按存储设备占用的系统接口编号为其分配标识符。对于IDE存储设备(并口设备)标识符为hd,按设备使用接口的不同,分别命名为had,hdb,hdc等;对于SCSI接口,SATA接口设备(串口)和串行总线接口使用sd作为标识,仍按照使用接口编号不同,以sda,sdb等为其命名。

(2)对2中的(2)分区。在使用硬盘存储数据时,还需要对硬盘进行分区,按分区的使用方法可以将硬盘分区分为3种:主分区、扩展分区和逻辑分区。其中主分区是最基本的分区类型,它可以直接挂载并存储数据,一个硬盘最多只能有4个主分区。Linux系统中对这4个主分区使用1、2、3、4作为标识符。例如硬盘sda上的第1个主分区的标识为sda1,同理其他三个标识分别为sda2,sda3, sda4;扩展分区是一种特殊的主分区,如果要使用扩展分区存储数据,必须先将扩展分区划分为逻辑分区(即逻辑分区加你在扩展分区基础之上),如果要在一个硬盘上创建4个以上的分区,就必须使用扩展分区。由于扩展分区也是一种主分区,因此扩展分区也占用一个主分区号;在扩展分区分区基础之上,可以创建多个逻辑分区,逻辑分区可以直接挂载并存储数据。逻辑分区的标识数字从5开始,例如sda5,sda6。Linux系统中的硬盘分区使用以上标识符命名并保存在/dev中,要使用分区存储数据时,需要将对应的块设备文件挂载到一个目录下。挂载设备的过程可以描述成:为用户使用该分区存放和读取数据提供一个接口和途径。这里为什么创建扩展分区,而不是创建主分区,笔者的理由是主分区包含启动的一些附加信息,而这些信息是用来引导系统启动的,这里的磁盘只是为了扩充原有磁盘的容量来存储数据,如果扩展分区直接分成逻辑分区,不需要这些附加信息,从而可以更加充分地利用新硬盘的空间,这个解释不保证正确,如果有误,请智者指正。

(3)2中(6)提到了文件系统ext4,可以参考http://baike.baidu.com/view/266589.htm#7

(4)2中(8)的fstab设置可参考http://baike.baidu.com/view/5499388.htm。

引用网址:http://aofengblog.blog.163.com/blog/static/6317021201101502540117/

Hadoop集群中添加硬盘相关推荐

  1. HADOOP实践101:在Hadoop集群中添加机器和删除机器

    无论是在Hadoop集群中添加机器和删除机器,都无需停机,整个服务不中断. 本次操作之前,Hadoop的集群情况如下: HDFS的机器情况如下: MR的机器情况如下: 添加机器 在集群的Master机 ...

  2. Hadoop集群中添加Snappy解压缩库

    Snappy是用C++开发的压缩和解压缩开发包,旨在提供高速压缩速度和合理的压缩率.Snappy比zlib更快,但文件相对要大20%到100%.在64位模式的Core i7处理器上,可达每秒250~5 ...

  3. 《Hadoop集群与安全》一2.1 在Hadoop集群中配置操作系统

    本节书摘来自华章出版社<Hadoop集群与安全>一书中的第2章,第2.1节,作者 (美)Danil Zburivsky Sudheesh Narayanan,更多章节内容可以访问云栖社区& ...

  4. Hadoop集群中运行MapReduce程序错误记录

    Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for ...

  5. CentOS6上Hadoop集群中服务器cpu sys态异常的定位与解决

    问题现象 在zabbix系统中,对Hadoop集群的历史监控数据分析时,发现在执行大Job任务时,某些服务节点的cpu sys态很高: 具体以hadoop_A服务节点为例,在10:15-10:40这个 ...

  6. 大数据Hadoop集群中常用的任务调度框架

    在大数据的集群环境中,经常用到的任务调度框架有如下几个,根据公司的业务的需要选择适合自己的业务调度的框架, 调度框架anzkaban,crontab(Linux自带).zeus(Alibaba).Oo ...

  7. Hadoop集群中HDFS的API测试案例以及MapReduce的多种提交Job方式案例

    这两个案例默认是hadoop集群环境已经搭建好以及IDEA环境也已经配置好 1.HDFS客户端测试案例 1.1.pom依赖 <?xml version="1.0" encod ...

  8. 从Hadoop集群中移除一块磁盘的操作

    2019独角兽企业重金招聘Python工程师标准>>> 背景 由于历史原因,CDH的hadoop的每个DataNode节点下挂载了多个磁盘,后要对一些配置差的磁盘要用配置较好的新磁盘 ...

  9. 虚拟机Centos系统下hadoop集群中静态IP配置

    为了学习大数据,然后想在自己的电脑的虚拟机上搭建hadoop集群,搭建了一段时间,我才发现CentOS系统的静态IP设置是十分有必要的.我的hadoop集群只有两个节点,一个master,另一个是sl ...

最新文章

  1. Java项目:花店商城系统(java+Springboot+Maven+mybatis+Vue+Mysql)
  2. 缓存核心知识小抄,面试必备,赶紧收藏!
  3. java设计模式-建造者模式
  4. Celery分布式任务队列的认识和基本操作
  5. html如何控制弹窗位置,控制弹窗展示顺序
  6. Go Concurrency Patterns: Context
  7. 【科普】半监督学习的概述与思考,及其在联邦学习场景下的应用
  8. 如何计算机操作维护培训,电脑基本操作培训教材.ppt
  9. Kai - Golang实现的目标检测云服务
  10. 利用ping/ipconfig/nslookup/dig/whois简单工具测试DNS
  11. JSR 168 and Portlet
  12. OS X 使用技巧——在Finder窗口标题栏上显示路径
  13. tinyxml读xml
  14. Win32软件开发: 按键精灵 鼠标模拟器(VibraClick)
  15. 一测振系统包括微型计算机,实验六 拍振实验
  16. 基于springboot的ShardingSphere5.2.1的分库分表的解决方案之数据加密之RSA的解决方案(九)
  17. swoole开发多人在线游戏新手教程
  18. 达梦数据库更换key文件的方法
  19. html初学者对相对地址,绝对地址的理解
  20. 智能家居网络安全攻与防

热门文章

  1. rmi of spring
  2. WebForm编辑器的相关资源
  3. ubuntu 配置minicom 进行串口开发
  4. 继承性和层叠性 权重 盒模型 padding(内边距) border(边框) margin 标准文档流 块级元素和行内元素...
  5. cobbler 配置(转载)
  6. Http报头Accept与Content-Type的差别
  7. CapsLock魔改大法——变废为宝实现高效编辑
  8. 关于Java中try-catch-finally-return语句的思考
  9. WCF HelpPage 和自动根据头返回JSON XML
  10. 做网站用UTF-8还是GB2312?