hadoop工具(二):hbase也是分布式,可扩展的大数据存储,HBase与HDFS的区别在于它是个数据库,数据库是基于文件系统(HDFS)提供的一种结构化数据的查询管理的一个系统
应用场景:
对数据进行随机的,实时的进行读写
相对于处理复杂的表与表之间的关系,以及关联查询的关系型数据库而言.HBASE是没有表与表的关联,是属于NoSql的范围
HBASE表结构:
- 建表时,不需要限定表中的字段,只需要指定若干个列族
- 插入数据时,一条数据中可以存储任意多个列(K-V,列名&列值),不在乎是否冗余,只要查询方便
- 一个Value可以有多个版本,通过版本号来区分(时间戳),要查询某一个具体字段的值,需要指定的坐标:表名–行键–列族(ColumnFamily)–列名(Qualifier)(sql中的字段)–版本
- 行键是唯一的
SQL记录的信息,只能是表中已经定义好的字段,而不能插入没有定义的字段,除非改变整个表结构
HBase是一很大很的表(big table),不可能是单机存储,是分布式管理和存储的
只要数据达到一定量之后,若干行就会切分成一个Region,Region会放在Region Server中
安装运行hbase,建立在集群之上
在cluster3中安装hbase
scp ./hbase-1.2.6-bin.tar.gz root@cluster3:/root
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| cd /root tar -zxvf hbase-1.2.6-bin.tar.gz cd hbase-1.2.6 rm -rf docs cd conf vim hbase-env.sh export HBASE_MANAGES_ZK=false vim hbase-site.xml <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://ns1/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>zookeeper1:2181,zookeeper2:2181,zookeeper3:2181</value> </property> <property> <name>hbase.master.info.port</name> <value>60010</value> </property> </configuration> vim regionservers zookeeper1 zookeeper2 zookeeper3 cp ~/hadoop-2.8.1/etc/hadoop/{core-site.xml,hdfs-site.xml} ./ cd mv hbase-1.2.6 hbase mv hbase hadoop-2.8.1/ scp -r hadoop-2.8.1/hbase zookeeper1:/root/hadoop-2.8.1 scp -r hadoop-2.8.1/hbase zookeeper2:/root/hadoop-2.8.1 scp -r hadoop-2.8.1/hbase zookeeper3:/root/hadoop-2.8.1 scp -r hadoop-2.8.1/hbase cluster4:/root/hadoop-2.8.1 zkServer.sh start hadoop-daemon.sh start journalnode start-dfs.sh cd /root/hadoop-2.8.1/hbase/bin ./start-hbase.sh cd /root/hadoop-2.8.1/hbase/bin/ ./hbase-daemon.sh start master ./hbase shell version
|