Hbase知识点总结:
hbase表中为什么列族的数量不能太多?
因为当一个列族数据溢写的时候,其他列族也会发生数据溢写,但是其他列族中数据的数量还没有达到溢写的阈值,就会导致产生的小文件数量增多.而hbase有小文件合并操作,小文件数量增多就会导致合并次数增多,从而使io资源消耗量增多。
hbase表结构的创建:通过增加表的数量,实现对表中字段复杂关系的解耦
google protocol buffer:是google公司内部的混合语言数据标准,用于rpc系统和持续数据存储系统。
protocol buffers:是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化,很适合做数据存储或者RPC数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。
安装protocol : 对于安装的节点没有具体环境要求
1、解压安装 tar -zxvf protocol-2.5.0.tar.gz
2、编译安装: 安装之前需要先安装环境 yum grouplist (grouplist安装一个软件组)
3、yum groupinfo “development tools”(中间有空格加双引号)
4、yum groupinstall "development tools"
5、安装configure文件 ./configure (生成makefile文件)
6、make && make install (生成可执行文件)
7、指定规则文件 以.proto结尾的文件
定义proto规则文件的要求:
package lm; (包名称)
message helloword (class类名称)
{
required int32 id = 1; (必须的属性)
required string str =2;
optional int32 opt = 3 ;(可选的属性)
}
package com.wcg.hbase (包名--与项目中的包名保持一致)
message PhoneDetail (class文件的名称)
{
required string dnum = 1;
required string type = 2;
required string length = 3;
required string date = 4; //后面的这个值是一个序列号,无所谓大小,前提是不能重复
}
8、在根目录中新建一个文件 phone.proto
9、编译 proto文件
10、查找生成的可执行文件 whereis protoc
11、查看protoc文件如何使用
./protoc --help
12、/usr/local/bin/protoc phone.proto --java_out=/root/ (/root/ --proto文件执行后生成java文件的路径)
13、在java中插入数据的时候可以直接调用生成的该java文件的方法 (里面的接口都是google封装好的)
--实现将100条数据放置到一个rowkey中
package com.wcg.hbase (包名--与项目中的包名保持一致)
message PhoneDetail (class文件的名称)
{
required string dnum = 1;
required string type = 2;
required string length = 3;
required string date = 4; //后面的这个值是一个序列号,无所谓大小,前提是不能重复
}
message dayPhoneDetail
{
repeated PhoneDetail dayofPhone = 1;
}
--HBASE和mr的整合以及用本地环境模拟mr yarn进行数据计算
1、将hadoop的安装包的本地路径配置到windows/hadoop Map/Reduce 中
2、在windows环境变量中配置hadoop的相关路径 ,在path路径中配置hadoop_home/bin和hadoop_home/sbin
3、将eclipse中自带的jdk换成安装的jdk
4、将hadoop源码导入项目中
5、导入hadoop jar包
hbase的优化:
转载于:https://www.cnblogs.com/wcgstudy/p/10542849.html