萌新篇 —从零开始搭建自己的大数据环境
文章目录
前言
我事先创建好了opt文件,该文件里包含data,modules,software,tools,一般我把安装包存放在sofeware解压生成在modules。可以按照我这个方式去做,后期以便文件好找。java环境自行先安装建议使用1.8版本的,这里我就不示范了。过程使用的软件Notepad++(在这里修改配置文件比较方便)MobaXterm_Personal_20.2(远程登录linux)FlashFPX(把文件发送到linux上)
一、Hbase简介
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
Hbase详细简介,点击
二、Hbase特点
1、HBase单表可以有百亿行、百万列,数据矩阵横向和纵向容量大,两个纬度所支持的数据量级都非常具有弹性。
2、面向列:HBase是面向列的存储和权限控制,并支持独立检索。列式存储,其数据在表中是按照某列存储的,这样在查询只需要少数几个字段的时候,能大大减少读取的数据量。
3、稀疏性:为空的列并不占用存储空间,表可以设计的非常稀疏。
4、扩展性:底层依赖于HDFS。
5、高可靠性:WAL机制保证了数据写入时不会因集群异常而导致写入数据丢失: Replication机制保证了在集群出现严重的问题时,数据不会发生丢失或损坏。而且HBase底层使用HDFS HDFS本身也有备份。
6、高性能:底层的LSM 数据结构和Rowkey有序排列等架构上的独特设计,使得Hbase具有非常高的写入性能。region切分、主键索引和缓存机制使得 HBase在海量数据下具备一定的随机读取性能,该性能针对Rowkey的查询能够到达毫秒级别。
三、Hbase数据模型
1、表(Table): HBase会将数据组织进一张张的表里面,但是需要注意的是表名必须是能用在文件路径里的合法名字,因为HBase的表是映射成hdfs上面的文件。
2、行(Row): 在表里面,每一行代表着一个数据对象,每一行都是以一个行键(Row Key)来进行唯一标识的,行键并没有什么特定的数据类型,以二进制的字节来存储。
3、 列族(Column Family): 在定义HBase表的时候需要提前设置好列族, 表中所有的列都需要组织在列族里面,列族一旦确定后,就不能轻易修改,因为它会影响到HBase真实的物理存储结构,但是列族中的列标识(Column Qualifier)以及其对应的值可以动态增删。表中的每一行都有相同的列族,但是不需要每一行的列族里都有一致的列标识(Column Qualifier)和值,所以说是一种稀疏的表结构,这样可以一定程度上避免数据的冗余。
4、列标识(Column Qualifier): 列族中的数据通过列标识来进行映射,其实这里大家可以不用拘泥于“列”这个概念,也可以理解为一个键值对,Column Qualifier就是Key。列标识也没有特定的数据类型,以二进制字节来存储。
5、单元(Cell): 每一个 行键,列族和列标识共同组成一个单元,存储在单元里的数据称为单元数据,单元和单元数据也没有特定的数据类型,以二进制字节来存储。
6、时间戳(Timestamp):单元值有时间版本,时间版本用时间戳标识,是一个long。默认情况下,时间戳表示的是当数据写入时RegionSever的时间点,但你也可以在写入数据时指定一个不同的时间戳。
详细介绍,点击
四、HBase分布式集群的相关配置
1.下载地址
https://archive.apache.org/dist/hbase/
2.hbase-env.sh配置
export JAVA_HOME=/opt/modules/jdk1.8.0_11
export HBASE_MANAGES_ZK=false
注意去掉前面的“#”,如图:
3.hbase-site.xml配置
<property>
<name>hbase.rootdir</name>
<value>hdfs://panda-pro01.xiong.com:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>panda-pro01.xiong.com,panda-pro02xiong.com,panda-pro03.xiong.com</value>
</property>
注意更改自己主机名
4.regionservers配置
panda-pro01.xiong.com
panda-pro02.xiong.com
panda-pro03.xiong.com
注意一台机器就填一个主机名,多台机器根据情况填写
5.Master-Backup配置(多台机器可以配置)
进入conf文件创建backup-masters,填入主机名,
touch backup-masters
vi backup-masters
填入主机名,这里我选择第二台主机。
分发到其他机器,我这里共有三台机器
scp -r backup-masters xiong@10.34.102.251:/opt/modules/hbase-0.98.6-hadoop2/conf/
scp -r backup-masters xiong@10.34.102.252:/opt/modules/hbase-0.98.6-hadoop2/conf/
配置这个文件是为了防止主机的master挂掉后,导致一些问题,当主机挂掉后,第二台机器会担任master对regionserver继续管理。
6.启动服务
启动hbase之前一定要先启动hadoop的namenode,datanode结点,还有zookeeper的zkServer,之后再启动hbase
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver
启动完成进入web界面看一看,如图:
地址
主机名+60010 例如:panda-pro01.xiong.com:60010
ip+60010 例如:10.34.102.250:60010
6.基本命令
首先进入hbase shell
bin/hbase shell
关于命令使用参考基本命令
总结
关于hbase基本配置就到这里了,萌新一位,若有不足之处,还请指正。😎😎