.HBase 安装步骤
1 下载
Apache 版本:http://archive.apache.org/dist/hbase/
CDH 版本:http://archive-primary.cloudera.com/cdh5/cdh/5/
这里选择下载 hbase-1.2.0-cdh5.10.0.tar.gz 版本的安装包,上传至主节点 app 目录。
2 解压
使用如下命令解压 HBase 安装包:
tar -zxvf hbase-1.2.0-cdh5.10.0.tar.gz
并重命名 mv hbase-1.2.0-cdh5.10.0 hbase
3 修改配置文件
1 修改 hbase-site.xml
在 Hadoop 中,如果用户需要增加 HDFS 的特定配置就要添加到 hdfs-site.xml 文件中。同样在HBase 中,用户需要增加配置信息,就需要将配置添加到 conf/hbase-site.xml 文件中。
进程启动后,服务器会先读取 hbase-default.xml 文件,然后读取 hbase-site.xml 文件,hbase-site.xml 的内容会覆盖 hbase-default.xml 中的内容。每次修改配置文件需要重启进程才能得到最新的配置。
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop01:2181</value>
<!--指定Zookeeper集群节点-->
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/data/zookeeper/zkdata</value>
<!--指定Zookeeper数据存储目录-->
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop01:8020/hbase</value>
<!--指定HBase在HDFS上的根目录-->
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<!--指定true为分布式集群部署-->
</property>
</configuration>
2 修改 hbase-en.sh
HBase 环境变量等信息需要在这个文件中配置,例如 HBase 守护进程的 JVM 启动参数。还可以设置 HBase 配置文件的目录、日志目录、进程 pid 文件的目录等。
主要配置这四点:
export JAVA_HOME=/home/hadoop/app/jdk
export HBASE_LOG_DIR=/home/hadoop/data/hbase/logs
export HBASE_PID_DIR=/home/hadoop/data/hbase/pids
export HBASE_MANAGES_ZK=false
4 修改 RegionServer
这个文件罗列了所有 region 服务器的主机名,它是纯文本文件,文件中的每一行都是主机名。HBase 的运维脚本会依次迭代访问每一行来启动所有 region 服务器进程。
5 添加 hdfs 配置文件
因为 HBase 启动依赖 hdfs 配置信息,需要将 hdfs 配置文件拷贝到主节点 hbase 的 conf 目录
下
cp core-site.xml /home/hadoop/app/hbase-1.2.0-hadoop5.10.0/conf/
cp hdfs-site.xml /home/hadoop/app/hbase-1.2.0-hadoop5.10.0/conf/
6HBase 启动测试
1 启动 Zookeeper
集群依赖 Zookeeper 集群,所以需要先启动 Zookeeper
/bin/zkServer.sh start
2 启动 hdfs
Hbase 数据都存储在 hdfs 上,它依赖与 hdfs 集群,所以先启动 hdfs。
sbin/start-dfs.sh
3 启动 hbase
通过如下命令启动 hbase。
bin/start-hbase.sh
备注:也可以换一个节点启动 HBase,在哪个节点启动 HBase,哪个节点就是 master 角色。
4 关闭 hbase
运行以下命令可以停止 HBase 集群,一旦启动了这个脚本,我们将会看到一条描述集群正在停止的信息,该信息会周期性地打印”. ”字符。(这仅仅表明脚本正在运行,并不是进度的反馈或者隐藏有用的信息)
$bin/stop-hbase.sh
stopping hbase.......
关闭脚本大概需要几分钟完成,如果集群机器比较多,需要执行更长的时间。如果用户运行
的是分布式集群,在关闭 hadoop 集群之前一定要确认 hbase 已经被正常关闭。
5 web 查看 hbase
访问地址:http:/hadoop01:60010 查看 hbase 相关信息。
6.shell 测试运行 HBase 数据库
HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBaseShell”。
HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建、删除及修改表, 还可以向表中添加数据、列出表中的相关信息等。
bin/hbase shell
#查看命令组
hbase>help
7 General 操作
#查询 HBase 服务器状态
hbase>status
#查看 HBase 版本
hbase>version
8 DDl 操作
DDl 操作(Data Definition Language)数据定义语言
#创建一个表
hbase(main):002:0> create 'myhbase','cf'
#查看 HBase 所有表
hbase(main):003:0> list
#描述表结构
hbase(main):004:0> describe 'myhbase'
#删除表
hbase(main):005:0> disable 'myhbase'
hbase(main):006:0> drop 'myhbase'
hbase(main):007:0> list
9DMl 操作
DMl 操作(Data Manipulation Language)是数据操纵语言
#创建一个表
hbase(main):002:0> create ‘user','cf'
#插入数据
put 'user', '1', 'cf:name', 'xiaoli'
put 'user', '1', 'cf:age', '24'
put 'user', '1', 'cf:birthday', '1987-06-17'
put 'user', '1', 'cf:company', 'alibaba'
put 'user', '1', 'cf:contry', 'china'
put 'user', '1', 'cf:province', 'zhejiang'
put 'user', '1', 'cf:city', 'hangzhou'
#扫描表所有数据
hbase(main):011:0> scan 'user'
#根据 rowkey 获取数据
hbase(main):012:0> get 'user','1'
#根据 rowkey 更新一条数据
hbase(main):013:0>put 'user', '1', 'cf:age', '28'
hbase(main):014:0> get 'user','1'
#查询表中总记录数据
hbase(main):015:0> count 'user'
#删除某一列数据
hbase(main):016:0> delete 'user', '1', 'cf:age'
hbase(main):017:0> get 'user','1'
#清空 hbase 表数据
hbase(main):018:0> truncate 'user'
hbase(main):019:0> scan 'user