|
qy01 |
qy02 |
qy03 |
HDFS |
NameNode DataNode |
DataNode |
DataNode |
YARN |
ResourceManager NodeManager |
NodeManager |
NodeManager |
Zookeeper |
Zookeeper |
Zookeeper |
Zookeeper |
Kafka |
Kafka |
Kafka |
Kafka |
Flume |
Flume |
Flume |
Flume |
Spark |
Spark |
|
|
Hive |
Hive |
|
|
Mysql |
Mysql |
|
(1)解压文件到用户根目录,命令:
sudo tar -zxvf hbase-0.98.6-cdh5.3.6.tar.gz -C /opt/modules/
解压后根目录会出现hbase-0.98.6-cdh5.3.6这个文件夹
(2)修改 hbase-0.98.6-cdh5.3.6 为 hbase-0.98.6
mv hbase-0.98.6-cdh5.3.6 hbase-0.98.6
4.修改hbase-0.98.6文件的权限,是当前用户能对其进行操作
命令:sudo chown -R 用户名 文件路径
我的当前操作的用户名是:qy0102 所以命令是:
#sudo chown -R kfk:kfk /opt/modules/hbase-0.98.6
使用notepad++连接虚拟机:
5.配置环境变量
(1)配置环境变量,命令:
#hbase
export HBASE_HOME=/opt/modules/hbase-0.98.6
export PATH=$PATH:${HBASE_HOME}/bin
6.修改配置文件
官网配置参考:https://hbase.apache.org/book.html#quickstart
使用notepad++连接虚拟机:
(1)修改 hbase-env.sh
在29行 添加 jdk 路径.
在124行禁用hbase自带的zookeeper
(2). 修改 hbase-site.xml
hbase.rootdir: namenode主机名 hadoop01 注意端口号要和namenode的端口号保持一致(core-site.xml的配置要一致)
hbase.cluster.distributed: 是否分布式
hbase.zookeeper.quorum: zookeeper节点主机名
hbase.rootdir
hdfs://hadoop01:9000/hbase
hbase.cluster.distributed
true
hbase.zookeeper.quorum
hadoop01,hadoop02,hadoop03
(3)配置 regionservers 添加regionservers节点
hadoop01
hadoop02
hadoop03
7.启动集群
(1) 启动zookeeper
1)各个节点使用如下命令启动Zookeeper服务
bin/zkServer.sh start
2)查看各个节点服务状态
bin/zkServer.sh status
(2)启动namenode
sbin/hadoop-daemon.sh start namenode
(3)在三台主机启动 datanode
sbin/hadoop-daemon.sh start datanode
(4)启动 master
./bin/hbase-daemon.sh start master
(5)在三台主机启动 regionserver
sbin/hbase-daemon.sh start regionserver
可以合并4、 5步直接使用命令:
./bin/start-hbase.sh
8.web页面查看 端口 60010
http://ip:60010
9.hbase基本操作
使用hbase shell
命令来连接正在运行的Hbase实例,该命令位于HBase安装包下的bin/目录。HBase Shell提示符以>符号结束。
$ ./bin/hbase shell
hbase(main):001:0>
输入help
并按Enter键,可以显示HBase Shell的基本使用信息,和我们接下来会列举的一些命令类似。需要注意的是,表名,行,列都必须包含在引号内。
使用quit
命令,退出HBase Shell 并且断开和集群的连接,但此时HBase仍然在后台运行。
hbase(main):024:0>status
3 servers, 0 dead,1.0000 average load
和bin/start-hbase.sh开启所有的HBase进程相同,bin/stop-hbase.sh用于关闭所有的HBase进程。
$ ./bin/stop-hbase.sh
stopping hbase....................
$
使用create
命令来创建一个新的表。在创建的时候,必须指定表名和列族名。
hbase(main):001:0> create 'test', 'cf'0 row(s) in 0.4170 seconds
=> Hbase::Table - test
使用list
命令:
hbase(main):002:0> list 'test'
TABLE
test
1 row(s) in 0.0180 seconds
=> ["test"]
使用describe
命令:
hbase(main):003:0> describe 't'
DESCRIPTION ENABLED
't', {NAME => 'f', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_ true
SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2
147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false
', BLOCKCACHE => 'true'}
1 row(s) in 1.4430 seconds
使用drop
命令实现删除表的功能:
hbase(main):011:0> drop 'test'0 row(s) in 0.1370 seconds
hbase(main):021:0>exists 'member'
Table member doesexist
0 row(s) in 0.1610seconds
使用put
命令,将数据插入表中:
hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'0 row(s) in 0.0850 seconds
hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'0 row(s) in 0.0110 seconds
hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'0 row(s) in 0.0100 seconds
可以看到,在本例中,一共插入了三条数据,一次一条。第一次插入到row1行,cf/:列,插入值为value1。所有列在HBase中有一个列族前缀。本例中的cf,后面跟着一个冒号还有一个列限定后缀,本例中是a。
一种获取HBase数据的方法是扫描,使用scan
命令来扫描表的数据。可以限制限制扫描的范围,在本例中,获取的是所有的数据。
hbase(main):006:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1421762485768, value=value1
row2 column=cf:b, timestamp=1421762491785, value=value2
row3 column=cf:c, timestamp=1421762496210, value=value3
3 row(s) in 0.0230 seconds
使用get
命令来获得某一行的数据:
hbase(main):007:0> get 'test', 'row1'
COLUMN CELL
cf:a timestamp=1421762485768, value=value1
1 row(s) in 0.0350 seconds
使用put
命令,本例中,将shiyanlou地址改为E
hbase(main):004:0>put 'company','shiyanlou','info:address' ,'E'0 row(s) in 0.0210seconds
hbase(main):005:0>get 'company','shiyanlou','info:address'
COLUMN CELL
info:address timestamp=1321586571843, value=E
1 row(s) in 0.0180seconds
如果你想要删除一个表或是修改它的设置,或者是其它的情况,都需要首先禁用该表。使用disable
命令禁用表,enable
命令重新启用表。
hbase(main):008:0> disable 'test'0 row(s) in 1.1820 seconds
hbase(main):009:0> enable 'test'0 row(s) in 0.1770 seconds