开发者社区> 涂作权> 正文

hdfs haadmin使用,DataNode动态上下线,NameNode状态切换管理,数据块的balance,HA下hdfs-api变化(来自学习资料)

简介: 1.2.4集群运维测试 HA集群中两个namenode状态的管理命令 [root@mini2 hadoop-2.6.4]# bin/hdfs haadmin Usage: DFSHAAdmin [-ns <nameserviceId>]     [-transitionToActive <serviceId> [--forceactive]]     [-
+关注继续查看

1.2.4集群运维测试

HA集群中两个namenode状态的管理命令

[root@mini2 hadoop-2.6.4]# bin/hdfs haadmin

Usage: DFSHAAdmin [-ns <nameserviceId>]

    [-transitionToActive <serviceId> [--forceactive]]

    [-transitionToStandby <serviceId>]

    [-failover [--forcefence] [--forceactive] <serviceId> <serviceId>]

    [-getServiceState <serviceId>]

    [-checkHealth <serviceId>]

    [-help <command>]

 

示例: 切换nn2为active

bin/hdfs haadmin -transitionToActive nn2--forcemanual

1、Datanode动态上下线

Datanode动态上下线很简单,步骤如下:

a)   准备一台服务器,设置好环境

b)   部署hadoop的安装包,并同步集群配置

c)   联网上线,新datanode会自动加入集群

d)   如果是一次增加大批datanode,还应该做集群负载重均衡

(start-balancer.sh -threshold 8  ##指定磁盘利用率,详情见下节 3)

 

2、Namenode状态切换管理

使用的命令上hdfs  haadmin

可用 hdfs  haadmin –help查看所有帮助信息

 

可以看到,状态操作的命令示例:

查看namenode工作状态  

hdfs haadmin -getServiceState nn1

 

将standby状态namenode切换到active

hdfs haadmin –transitionToActive nn1

 

将active状态namenode切换到standby

hdfs haadmin –transitionToStandby nn2

 

 

3、数据块的balance

启动balancer的命令:

start-balancer.sh -threshold 8

运行之后,会有Balancer进程出现:

上述命令设置了Threshold为8%,那么执行balancer命令的时候,首先统计所有DataNode的磁盘利用率的均值,然后判断如果某一个DataNode的磁盘利用率超过这个均值Threshold,那么将会把这个DataNode的block转移到磁盘利用率低的DataNode,这对于新节点的加入来说十分有用。Threshold的值为1到100之间,不显示的进行参数设置的话,默认是10。

 

1.2.5 HA下hdfs-api变化

客户端需要nameservice的配置信息,其他不变

/**

 * 如果访问的是一个ha机制的集群

 * 则一定要把core-site.xml和hdfs-site.xml配置文件放在客户端程序的classpath下

 * 以让客户端能够理解hdfs://ns1/中  “ns1”是一个ha机制中的namenode对——nameservice

 * 以及知道ns1下具体的namenode通信地址

 * @author

 *

 */

public class UploadFile {

        

         public static void main(String[] args) throws Exception  {

                 

                  Configuration conf = new Configuration();

                  conf.set("fs.defaultFS", "hdfs://ns1/");

                 

                  FileSystem fs = FileSystem.get(new URI("hdfs://ns1/"),conf,"hadoop");

                 

                  fs.copyFromLocalFile(new Path("g:/eclipse-jee-luna-SR1-linux-gtk.tar.gz"), new Path("hdfs://ns1/"));

                 

                  fs.close();

             

         }

     

}

 

 

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Hadoop运行模式(三)、群起集群、配置workers、启动集群、启动HDFS、拼接、Web端查看HDFS的NameNode、Web端查看YARN的ResourceManager
Hadoop运行模式(三)、群起集群、配置workers、启动集群、启动HDFS、拼接、Web端查看HDFS的NameNode、Web端查看YARN的ResourceManager
431 0
hdfs集群安装(单namenode和HA模式)
本文介绍hdfs集群安装(单namenode和HA模式)指南
75 0
hdfs 故障服务namenode 报错GC pool 'ConcurrentMarkSweep' had collection(s): count=1 time=
hdfs生产故障 GC pool 'ConcurrentMarkSweep' had collection(s): count=1 time=
1276 0
Hadoop学习(2)-java客户端操作hdfs及secondarynode作用
Hadoop学习(2)-java客户端操作hdfs及secondarynode作用首先要在windows下解压一个windows版本的hadoop 然后在配置他的环境变量,同时要把hadoop的share目录下的hadoop下的相关jar包拷贝到esclipe 然后Build Path 下面上代码 复制代码import java.
918 0
大数据||HDFS||NameNode启动过程详解
NameNode数据存放的地方有2个 1、内存 2、本地磁盘。镜像文件(fsimages)和日志文件(edits) 说明:格式化namenode目的是生成 fsimages文件。
998 0
一脸懵逼学习HBase---基于HDFS实现的。(Hadoop的数据库,分布式的,大数据量的,随机的,实时的,非关系型数据库)
1:HBase官网网址:http://hbase.apache.org/ 2:HBase表结构:建表时,不需要指定表中的字段,只需要指定若干个列族,插入数据时,列族中可以存储任意多个列(即KEY-VALUE,列名称-列值);一个value可以有多个版本,通过版本号来区分(时间戳) 3:要查询某一...
1321 0
+关注
涂作权
java,架构,编程语言相关专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
海量数据分布式存储——Apache HDFS之最新进展
立即下载
HBase2.0重新定义小对象实时存取
立即下载
Hadoop存储与计算分离实践
立即下载