Hadoop集群中添加硬盘

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/

时间: 2024-10-26 23:31:10

Hadoop集群中添加硬盘的相关文章

Hadoop集群hdfs添加磁盘操作

Hadoop集群hdfs添加磁盘操作 目前的环境是cdh.服务器部署在Azure:一个cdhmaster(一个namenode,一个datanode),四个cdhslave节点(各一个datanode). hdfs现状: 首先是在Azure控制台对每台服务器添加一块磁盘(我这添加的是4T) 在到服务器中对每台服务器进行添加磁盘操作: 因为在Linux中,常用2种分区表: MBR分区表(即主引导记录) 所支持的最大分区:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区 [fdisk

浪潮服务器向集群中添加esxi主机

软件环境:esxi6.0  vcenter6.0 硬件:浪潮服务器 hba卡 浪潮存储 博科san 要求:向目前集群中添加一台esxi主机 步骤:安装esxi6.0,配置bmc和网卡,光纤连接hba卡,注意:光纤方向,hba中发光的接到san不发光的口. 配置san交换机 配置浪潮存储 esxi中识别存储添加OK!

Oracle 学习之RAC(八) 向集群中添加节点

我们前面安装了两个节点的RAC. 我们现在将第三个节点11grac3,添加到我们集群中.第三个节点一定要按照集群环境准备一文描述,准备环境.请参考 http://lqding.blog.51cto.com/9123978/1684159 安装前检查 11grac1-> pwd /u01/app/11.2.0/grid/bin 11grac1-> ./cluvfy stage -pre nodeadd -n 11grac3 -fixup -verbose 检查结果 Performing pre-

在集群中添加资源

在上一节里已经创建了集群cluster1,在这节实验里开始在集群里添加资源. 先了解一下什么是资源(resource).举例来说,我们通过某个IP访问httpd服务,如果IP不通或者httpd没有启动我们都不能正常访问web服务,所以这二者是一个整体,我们称之为"服务组".在集群中,组成服务组的一个个元素比如IP,httpd叫做"资源". 一. 首先设置集群属性 因为现在环境里还没有fence,所以必须要一些设置集群才可以正常工作.点击"CLUSTER P

hadoop集群中namenode没有启动

最近,我在学习搭建hadoop集群,可是搭建完成后当使用start-all.sh启动hadoop的时候,会发现用jps测试的时候一切均显示正常,但通过Hadoop指令向hdfs上传输文件的时候,会报错表示datanode没有正常启动, 在网上找了一些博客讲述是可能防火墙没关,还有就是删除hadoop目录下的tmp文件夹和logs文件夹,可是都不凑效,我经过反复查询发现是因为datanode的clusterID不匹配! 打开hdfs-site.xml里配置的datanode和namenode对应的

hadoop集群 动态添加或删除节点

在运行中的ambari hadoop集中中动态添加或删除节点 1. 下线hdfs节点 1) 下线datanode namenode节点上dfs.exclude文件,看配置文件怎么配置的,里每行添加一个服务器名,如我要下线server7,server8,server9,则如下: server7 server8 备注: 如果hdfs-site.xml没有找到dfs.hosts.exclude,那么就手动把下面内容加入到hdfs-site.xml中,然后把需要Decommission的机器写到文件/e

Hadoop集群中Hbase的介绍、安装、使用

导读 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. 一.Hbase简介 HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统:Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce

向CDH5集群中添加新的主机节点

步骤一:首先得在新的主机环境中安装JDK,关闭防火墙.修改selinux.NTP时钟与主机同步.修改hosts.与主机配置ssh免密码登录.保证安装好了perl和python. 步骤二:上传cloudera-manager文件到/opt目录,修改agent配置文件:       vi /opt/cm-5.0.0/etc/cloudera-scm-agent/config.ini  server_host = Master 步骤三:在该代理节点创建cloudera-scm用户  useradd -

Hadoop集群中使用Hive查询报错

今天在使用Hive查询某分析数据最大值的时候,出现了一定的问题,hive中现象如下: Caused by: java.io.FileNotFoundException://http://slave1:50060/tasklog?attemptid=attempt_201501050454_0006_m_00001_1 然后查看一下jobtracker的日志: 2015-01-05 21:43:23,724 INFO org.apache.hadoop.mapred.JobInProgress: