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();

             

         }

     

}

 

 

 

 

 

目录
相关文章
|
28天前
|
Java API Maven
HDFS的API操作
HDFS的API操作
25 0
|
5月前
CDH5.6下线Hdfs的DataNode
CDH5.6下线Hdfs的DataNode
87 0
|
4月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
161 0
|
6月前
|
IDE 大数据 Java
大数据问题排查系列 - HDFS FileSystem API 的正确打开方式,你 GET 了吗?
大数据问题排查系列 - HDFS FileSystem API 的正确打开方式,你 GET 了吗?
|
6月前
|
存储 分布式计算 固态存储
我们一起学习Hdfs的异构存储
我们一起学习Hdfs的异构存储
|
5月前
|
API
HDFS基本命令及上传文件API
HDFS基本命令及上传文件API
|
3月前
|
存储 分布式计算 Hadoop
NameNode和DataNode在HDFS中的作用是什么?
NameNode和DataNode在HDFS中的作用是什么?
112 0
|
3月前
|
存储 分布式计算 Hadoop
Hadoop的Secondary NameNode在HDFS中的作用是什么?
Hadoop的Secondary NameNode在HDFS中的作用是什么?
36 0
|
3月前
|
存储 分布式计算 Hadoop
HDFS中的NameNode和DataNode的作用是什么?它们之间的通信方式是什么?
HDFS中的NameNode和DataNode的作用是什么?它们之间的通信方式是什么?
93 0
|
4月前
|
分布式计算 Hadoop Java
[hadoop3.x系列]HDFS REST HTTP API的使用(二)HttpFS
[hadoop3.x系列]HDFS REST HTTP API的使用(二)HttpFS
54 1

热门文章

最新文章