HBase体系、HDFS API基本操作

本文探讨了HBase的体系结构,重点介绍了主从结构的单点故障问题。随后转向HDFS,讲解了如何通过Web Console和命令行进行操作,并详细阐述了如何在Java环境下使用API创建文件夹,包括设置环境变量、修改文件权限以及关闭HDFS权限检查等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HBase的体系结构

1、主从结构:
            主节点:HMaster
            从节点:RegionServer

2、基于HDFS上的NOSQL数据库
       HBase             HDFS
       表    -------->   目录
       数据  --------->  文件

HBase体系

主从结构的单点故障问题

1、小结:主从结构

            主节点             从节点
HDFS       NameNode           DataNode
Yarn       ResourceManager    NodeManager
HBase      HMaster            RegionServer
Storm      Nimbus             Supervisor
Spark      Master             Worker

单点故障 2、主从结构的单点故障问题

HDFS

1、Web Console:网页 端口 50070
2、命令行
(1) 操作命令: hdfs dfs ***** 命令

-mkdir:  创建目录  -p 先创建父目录

-ls      查看某个HDFS的目录
-ls -R   查看某个HDFS的目录,包括子目录
-lsr     查看某个HDFS的目录,包括子目录


-put              上传文件
-copyFromLocal    上传文件

-moveFromLocal    上传文件 相当于剪切
					
-copyToLocal       下载文件
-get               下载文件

-rm                 删除目录
-rmr     举例:hdfs dfs -rmr /output

        日志:
		17/09/10 21:27:53 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
		Deleted /output

-getmerge:将某个HDFS下的文件,先合并,再下载

-cp      拷贝
-mv      移动

-count    hdfs dfs -count /students
-du
-text、-cat

balancer: 平衡操作

(2) 管理命令: hdfs dfsadmin *****

-report
-safemode
	[root@tanzhou111 ~]# hdfs dfsadmin -safemode
	Usage: hdfs dfsadmin [-safemode enter | leave | get | wait]
	[root@tanzhou111 ~]# hdfs dfsadmin -safemode get
	Safe mode is OFF
	[root@tanzhou111 ~]# hdfs dfsadmin -safemode enter
	Safe mode is ON
	[root@tanzhou111 ~]# hdfs dfs -mkdir /aaaa
	mkdir: Cannot create directory /aaaa. Name node is in safe mode.
	[root@tanzhou111 ~]# hdfs dfsadmin -safemode leave

Java API程序

Java Eclipse的安装和基本工程的建立配置,在xxx中记载
本次 的测试只在Junit下进行测试

例1:利用java api 创建文件夹

(1) 依赖的jar包

/root/training/hadoop-2.7.3/share/hadoop/common
/root/training/hadoop-2.7.3/share/hadoop/common/lib

/root/training/hadoop-2.7.3/share/hadoop/hdfs
/root/training/hadoop-2.7.3/share/hadoop/hdfs/lib

(2)方法

1).在java中修改环境变量
2).-D参数: 要求:获取命令行的参数
3).chmod将文件权限改为777
4).修改hadoop权限为false

1).在java中修改环境变量
使用System.setProPerty("HADOOP_USER_NAME","root") ,告诉HDFS我是root用户

public class TestDemo{
    @Test
    public void createf1() throws Exception{
        System.setProPerty("HADOOP_USER_NAME","root");
        //1.配置HDFS的主节点:NameNode
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS","hdfs://192.168.142.111:9000");
        //2获取客户端
        FileSystem fs = FileSystem(conf);
        //3.建立目录
        fs.mkdir(new Path("/folder1"));
    }
}

2).-D参数: 要求:获取命令行的参数
相当于使用-D参数在命令行输入时,充当全局变量,在任何函数都可以调用
1.编写TestD

public class TestD{
    public static void main(String[],args){
        
        method1();
    }
    public static method1(){
        String name = System.getProPerty("user");
        String age = System.getProPerty("age");
        System.out.println(name+"  "+age);
    }
    
}

2.在命令行执行javac TestD.java编译
3.在命令行执行 java -Duser=Lion -Dage=23 TestD.java 执行结果为

Lion  23

3).chmod将文件权限改为777
环境:linux
原理:将文件的权限改为777,所有用户都可读,可写,可执行
方法:

hdfs dfs -chmod 777 /folder1

环境:Windows Eclipse Java
原理:Java Api
方法:

public class TestDemo{
    @Test
    public void createf1() throws Exception{
        //1.配置HDFS的主节点:NameNode
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS","hdfs://192.168.142.111:9000");
        //2获取客户端
        FileSystem fs = FileSystem(conf);
        //3.建立目录
        fs.mkdir(new Path("/folder1"));
    }
}

4).修改hadoop权限为false(最彻底)

原理:关闭HDFS的权限检查,HDFS不进行权限诊断
环境:Linux
方法:修改HDFS的配置文件/root/training/hadoop-2.7.3/etc/hadoop/hdfs-site.xml

#关闭HDFS的权限检查
<property>
   <name>dfs.permissions</name>
   <value>false</value>
</property>

环境:Windows Eclipse Java
原理:Java Api
方法:

public class TestDemo{
    @Test
    public void createf1() throws Exception{
        //1.配置HDFS的主节点:NameNode
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS","hdfs://192.168.142.111:9000");
        //2获取客户端
        FileSystem fs = FileSystem(conf);
        //3.建立目录
        fs.mkdir(new Path("/folder1"));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值