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

             

         }

     

}

 

 

 

 

 

目录
相关文章
|
7月前
|
Java API Maven
HDFS的API操作
HDFS的API操作
67 0
|
4月前
|
存储 机器学习/深度学习 分布式计算
HDFS NameNode元数据管理
HDFS NameNode元数据管理
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
50 4
|
2月前
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
80 5
|
2月前
|
资源调度 数据可视化 大数据
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
37 4
|
2月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
41 2
|
4月前
|
分布式计算 安全 Hadoop
HDFS NAMENODE 安全模式
HDFS NAMENODE 安全模式
|
6月前
|
Java 大数据 API
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
155 0
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
|
7月前
|
存储 分布式计算 Hadoop
Hadoop节点HDFS元数据与数据块的关系
【5月更文挑战第19天】
119 4
|
7月前
|
存储 分布式计算 Hadoop
Hadoop节点HDFS数据块的作用
【5月更文挑战第19天】
80 3