1、NoSQL 非关系型数据库
2、hbase是面向列存储结构,即类似于hash map
3、hbase是以hdfs作为基础存储
5、hbase的逻辑结构是由行与列族构成的,其中的行是由rowkey(行键唯一确定),列族是由多个列构成的
6、hbase中的数据都是以字节的形式存储
7、伪分布式安装Hbase:
(1)将hbase-1.2.0-cdh5.14.2.tar.gz上传到/opt/software
(2)解压:tar -zxf hbase-1.2.0-cdh5.14.2.tar.gz -C /opt/install
(3)创建软连接:ln -s /opt/install/hbase-1.2.0-cdh5.14.2 /opt/install/hbase
(4)修改/etc/profile:
export HBASE_HOME=/opt/install/hbase
export PATH=HBASE_HOME/bin:PATH
(5)生效/etc/profile:source /etc/profile
(6)修改conf/hbase-env.sh:【可注释第46,47行从而不再看到warning】
export JAVA_HOME=/opt/install/jdk 大概在第27行
export HBASE_MANAGES_ZK=false 大概在第129行
(7)修改hbase-site.xml:
<!--设置hbase的工作目录-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop101:9000/hbase/data</value>
</property>
<!--开启hbase的集群工作模式-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--设置zookeeper节点-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop101</value>
</property>
<!--设置zookeeper的工作目录-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/install/zookeeper/zkData</value>
</property>
(8)修改 regionservers 文件:
hadoop101
(9)启动zookeeper:zkServer.sh start
(10)启动namenode和datanode:
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
(11)启动master:hbase-daemon.sh start master
(12)启动regionserver:hbase-daemon.sh start regionserver
(13)启动成功后,访问HBase管理页面:http://hadoop101:60010
(14)停止regionserver:hbase-daemon.sh stop regionserver
(15)停止master:hbase-daemon.sh stop master
(16)停止namenode和datanode:
hadoop-daemon.sh stop namenode
datanode:hadoop-daemon.sh stop datanode
(17)停止zookeeper:zkServer.sh stop
(18)停机做快照
完全分布式安装Hbase【注意:时间同步】:
(1)-(6)步同上
(7)修改hbase-site.xml:
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop102:9000/hbase/data</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop102:2181,hadoop103:2181,hadoop104:2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/install/zookeeper/zkData</value>
</property>
(8)修改 regionservers 文件:
hadoop102
hadoop103
hadoop104
(9)从102机器上复制hbase目录到103,104机器上
scp -r /opt/install/hbase hadoop103:/opt/install
scp -r /opt/install/hbase hadoop104:/opt/install
(10)从102机器上复制/etc/profile文件复制103,104机器上并生效:source /etc/profile
(11)启动102,103,104机器上的zookeeper:zkServer.sh start
(12)从102机器启动hdfs集群:start-dfs.sh
(13)从102机器启动hbase集群:start-hbase.sh并通过jps检查
(14)启动成功后,访问HBase管理页面:http://hadoop102:60010
(15)从102机器停止hbase集群:stop-hbase.sh
(16)停止hadoop和zookeeper集群服务
(17)停机做快照
在HBASE客户端操作的命令
0、删除字符时要按住ctrl键和backspace键,del键
1、打开客户端:hbase shell
2、退出客户端:exit
3、查看帮助:help
4、查看命令组帮助:help '命令组名称'
5、查看命令帮助:help '命令'
6、查看hbase版本:version
7、查看当前登录用户:whoami
8、查看命名空间:list_namespace
9、创建命名空间:create_namespace 'myschool'
10、创建表:create 'myschool:info','student','course'
11、查看所有表名:list
12、查看表结构:describe 'myschool:info'
13、插入数据:
put 'myschool:info','1001','student:name','tom'
put 'myschool:info','1001','student:sex','male'
put 'myschool:info','1001','student:age','22'
put 'myschool:info','1001','course:chinese','99'
put 'myschool:info','1001','course:math','88'
14、查看指定行数据:get 'myschool:info','1001'
15、查看表数据:scan 'myschool:info'
16、删除数据:delete 'myschool:info','1001','course:chinese'
17、禁用表:disable 'myschool:info',再删除表:drop 'myschool:info'
18、删除命名空间:drop_namespace 'myschool'(命名空间必须是没有表的,否则需要先删除表)
19、导入文件数据到hbase
(1)建命名空间:create_namespace 'retail'
(2)建表:create 'retail:customer','order'
(3)上传数据文件到/root/data,若此目录不存要则需mkdir /root/data
(4)启动yarn:yarn-daemon.sh start resourcemanager;yarn-daemon.sh start nodemanager
(5)导入数据:【注意在linux中执行】
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \
-Dimporttsv.separator="," \
-Dimporttsv.columns="HBASE_ROW_KEY,order:numb,order:date" \
"retail:customer" "file:///root/data/hbase_import_data.csv"
(6)查看数据:scan 'retail:customer'