7.1--Monday--Hbase的架构、存储和集成

重载和覆写


重载覆写
方法名相同方法名相同
返回值类型可以不相同返回值类型相同
参数列表必须不相同参数列表相同
  • 返回值类型小于等于父类被重写方法
  • 访问权限大于等于父类被重写方法
  • 声明为stati和final的方法不能被重写,构造方法不能被重写(构造方法属于static的)

重载

public class MyClass{

    public void write(string str){}
    
    public void write(string str,string target){}
    
    public int write(id int,number int){}

}

覆写

JDK1.8之后,抽象类的权限默认是default

抽象类和接口的区别左上角搜索

public calss BaseClass{
    
    public abstract void write(string str){}
}

public class SubClass{
    
    public override void write(string str){}
}

Lamda表达式

博客园Java回调机制

Lamda表达式

  • 括号内用逗号分隔的形参,是函数式接口内方法的参数
  • 箭头符号:->
  • 方法体:可以是表达式和代码块
  • Runnable是一个函数式接口,其内部只有一个run()方法
  • 因为run()方法没有参数,所以 -> 前面的 () 不需要声明形参
  • run()方法的返回值类型是void,所以不需要return
  • -> 后面的代码就是run()方法内的代码。
public class Demo {
    public static void main(String[] args) {

        runTreadByLamda();
    }

    public static void runTreadByLamda(){

        Runnable runnable = () -> System.out.println("lamda up");

        new Thread(runnable).start();
    }
}

正则表达式

优快云


[重点]HBASE架构,存储流程

1.1 宏观架构
  • Hmaster:HBase的主节点,负责整个集群的状态感知,负载分配,用户表的元数据管理。Region的分割合并。
  • Region:HBase将一个表的所有数据按照RowKey的不同范围进行切分的逻辑单元,每个Region负责一定范围内数据的读写访问。
  • RegionServer:HBase中真正负责管理Region的服务器,也就是为客户端进行表数据读写的服务器。负责Region的拆分,和底层HDFS的交互,StoreFile的合并。
  • Zookeeper:负责整个HBase中的主从节点协调,主节点的选举,元数据的入口,集群节点之间的上下线感知。
  • HDFS:HDFS作为数据的载体与HBase交互,存储HBase的系统文件,表的Region文件。
1.2 RegionServer的内部组件
  • WAL:预写日志,Write-Ahead Log 作用:操作的日志预先写入到该日志中。
  • Region负责一定范围内数据的读写访问,每个Region由多个Store组成,Store对应Table中的ColumnFamily的存储,即一个Store管理一个Region上的一个列簇。
  • Store是HBase的存储核心,由MEMStore和StoreFile组成。每个Store有一个MEMStore和0-n个StoreFile。
  • MEMStore是一个有序的内存缓冲区,用户写入数据首先放入MEMStore,MEMStore满了之后生成一个StoreFile,StoreFile数量达到一定阈值后,除法compact将多个StoreFile合并成一个。

[重点]HBase与MapReduce的集成

  • MapReduce和HBase一起使用,HBase数据库只负责存储和读取。Hbase作为map的输入,输出任意指定(HDFS,Mysql,本地磁盘);从Hbase读取数据再写入另一个Hbase(输入输出都是Hbase)。
2.1 HBase Import TSV

import tsv 就是一个导入固定格式的工具, tsv的格式就是’/t’分割的文件

  • 创建一张表,用于接收导入的TSV格式的文件
create 'importtsv','info','f1'
  • 准备导入的数据
1       sunwen  zhoukoudian     9800
2       yangyang        shandong        1200
  • 查看实例程序,提示如何进行导入
hadoop jar /opt/app/hbase-1.3.1/lib/hbase-server-1.3.1.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY,info:name,f1:location,f1:age importtsv /import.tsv

HBASE_ROW_KEY :代表rowkey ,要导入的数据必须上传到HDFS上

2.2 Import CSV导入

csv就是按照逗号来分割的文件

  • 创建一张表,接收用于导入csv格式的文件
create 'importcsv','info','f1'
  • 准备测试数据
1,sunwen,zhoukoudian,92
2,yangyang,hebian,89

  • 把数据上传到HDFS上
hdfs dfs -put /data/import.csv /
  • 导入
hadoop jar /opt/app/hbase-1.3.1/lib/hbase-server-1.3.1.jar importtsv -Dimporttsv.separator=, -Dimporttsv.columns=HBASE_ROW_KEY,info:name,f1:location,f1:age importcsv /import.csv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值