Apache HBase 入门
介绍
Quickstart 将使您运行一个单节点,独立的 HBase 实例。
快速开始 —— 独立的 HBase
这一节描述了单节点独立 HBase 的设置。独立的 实例具有所有的 HBase 守护进程 —— Master,RegionServers,和 ZooKeeper —— 运行于一个单独的JVM 持久化到本地文件系统。它是我们的大多数基本部署配置文件。我们将向你展示如何使用 hbase shell CLI 在 HBase 中创建一个表,向表中插入行,对表执行 put 和 scan 操作,启用或禁用表,以及启动和停止 HBase。
除了下载 HBase,这个过程应该耗费不超过 10 分钟。
在 0.94.x 之前,HBase 期望环回 IP 地址是 127.0.0.1。Ubuntu 和 其它一些发行版默认为127.0.1.1,而这将导致一些问题。参考 HBase 为什么关心 /etc/hosts ? 一文来了解更多信息。
在 Ubuntu 上,对于 0.94.x 和之前的版本,下面的 /etc/hosts 可以工作。如果遇到了问题,可以使用这个作为模板。
12
127.0.0.1 localhost127.0.0.1 ubuntu.ubuntu-domain ubuntu
这个问题已经在 hbase-0.96.0 及之后的版本中修复了。
JDK 版本要求
HBase 要求安装 JDK。参考 Java 来了解关于支持的 JDK 版本的信息。
HBase 入门
过程:下载,配置,以独立模式启动 HBase
在 Apache下载镜像 的列表中选择一个下载站点。点击顶部的建议链接。这将带你到一个 HBase Release 镜像。点击名为 stable 的目录,然后下载以 .tar.gz 结尾的二进制文件到你的本地文件系统。目前先不要下载以 src.tar.gz 结尾的文件。
解压缩下载的文件,然后进入新创键的文件夹。
12
$ tar xzvf hbase-1.2.4-bin.tar.gz$ cd hbase-1.2.4
你需要在启动 HBase 之前设置 JAVA_HOME 环境变量。你可以通过你的操作系统的常用机制设置环境变量,但是 HBase 提供了一个中心机制,conf/hbase-env.sh。编辑这个文件,取消注释以JAVA_HOME 开头的行,并将它设置为你的操作系统的适当位置。 JAVA_HOME 环境变量应该被设置为包含可执行文件 bin/java 的文件夹。大多数现代 Linux 操作系统提供了某种机制,比如 RHEL 或 CentOS 上的 /usr/bin/alternatives,来透明地在 Java 这样的可执行文件的不同版本间进行切换。在这种情况下,你可以将 JAVA_HOME 设置为包含到 bin/java 的符号链接的目录,通常是/usr。
1
JAVA_HOME=/usr
编辑 conf/hbase-site.xml,它是主 HBase 配置文件。此时,你只需要指定本地文件系统中 HBase 和 ZooKeeper 写数据的文件夹。默认情况下,将在 /tmp 下创建一个新的文件夹。许多服务器被配置为在重启之后删除 tmp 下的内容,因而你应该将数据存储在其它地方。下面的配置将把 HBase 的数据存储在 hbase 目录下,在名为 testuser 的用户的主目录下。粘贴
示例1. 独立 HBase 的 hbase-site.xml 示例
12345678910
你无需创建 HBase 数据文件夹。HBase 将为你做这些。如果你创建了目录,HBase 将尝试执行迁移,这不是你想要的。
上面例子中的 hbase.rootdir 指向 本地文件系统 中的目录。’file:/‘ 前缀是我们如何表示本地文件系统的方式。要将 HBase 放置于已有 HDFS 实例上,则设置 hbase.rootdir 指向你的实例上的目录:比如,hdfs://namenode.example.org:8020/hbase。更多关于这一变体的信息,参考下面关于 基于 HDFS 的独立 HBase 的小节。
HBase 提供了一种方便的方式,即 bin/start-hbase.sh 脚本来启动HBase。发出命令,如果一切正常,将有一条消息打印到标准输出显示 HBase 启动成功。你可以使用 jps 命令来验证你有一个称为HMaster 的运行进程。在独立模式 HBase 在这个单独的 JVM 内运行所有的守护进程,比如,HMaster,一个单独的 HRegionServer,和 ZooKeeper 守护进程。进入 http://localhost:16010 来查看 HBase Web UI。12345
$ bin/start-hbase.sh starting master, logging to /media/data/dev_tools/hbase-1.2.4/bin/../logs/hbase-hanpfei0306-master-ThundeRobot.outOpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0Could not start ZK at requested port of 2181. ZK was started at port: 2182. Aborting as clients (e.g. shell) will not be able to find this ZK quorum.
需要安装 Java 且其处于可用状态。如果你遇到了一个错误,指示 Java 没有安装,但它已经在你的系统中了,则可能位于非标准位置,编辑 conf/hbase-env.sh 文件并修改 JAVA_HOME 设置,使其指向包含了你的系统的 bin/java 的目录。
过程:首次使用 HBase
连接 HBase
使用 hbase shell 命令连接运行中的 HBase 实例,它位于你的 HBase 安装的 bin/ 目录下。在本示例中,省略了一些启动 HBase Shell 时打印的用法和版本信息。HBase Shell 提示以一个 > 字符结尾。
12
$ bin/hbase shellhbase(main):001:0>
显示 HBase Shell 帮助文本
键入 help 并按回车,来显示一些 HBase Shell 基本的用法信息,以及一些命令示例。注意所有的表名,行,列必须用单引号字符引起来。
创建表
使用 create 命令创建一个新表。你必须指定表名和 ColumnFamily 名。
1234
hbase(main):002:0> create 'test', 'cf'0 row(s) in 1.3540 seconds=> Hbase::Table - test
列出关于表的信息
使用 list 命令来做到这一点:
1234567
=> Hbase::Table - testhbase(main):003:0> listTABLE test 1 row(s) in 0.0150 seconds=> ["test"]
向表中放入数据
要向表中放入数据,使用 put 命令。
12345678
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'0 row(s) in 0.0990 secondshbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'0 row(s) in 0.0080 secondshbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'0 row(s) in 0.0050 seconds
这里,我们插入了三个值,每次一个。第一次插入在 row1,列 cf:a,值为 value1。HBase中的列由列族前缀,本示例中是 cf,后跟一个逗号,及列限定符后缀,本示例中是 a 组成。
一次扫描表的所有数据
从 HBase 获取数据的一种方式是扫描。使用 scan 命令扫描表的数据。你可以限定你的扫描,但现在,获取所有数据。
123456
hbase(main):008:0> scan 'test'ROW COLUMN+CELL row1 column=cf:a, timestamp=1488785612445, value=value1 row2 column=cf:b, timestamp=1488785622781, value=value2 row3 column=cf:c, timestamp=1488785633890, value=value33 row(s) in 0.0220 seconds
获得单行数据
要一次获得单行数据,使用 get 命令。
1234
hbase(main):009:0> get 'test', 'row1'COLUMN CELL cf:a timestamp=1488785612445, value=value11 row(s) in 0.0160 seconds
禁用表
如果你想要删除表或修改它的设置,以及一些其它情形,你需要先禁用表,使用 disable 命令。你可以使用 enable 命令重新启用它。
12345
hbase(main):010:0> disable 'test'0 row(s) in 2.2380 secondshbase(main):011:0> enable 'test'0 row(s) in 1.2260 seconds
如果你测试上面的 enable 命令则再次禁用表:
12
hbase(main):012:0> disable 'test'0 row(s) in 2.2200 seconds
丢弃表
要丢弃(删除)表,则使用 drop 命令。
12
hbase(main):013:0> drop 'test'0 row(s) in 1.2280 seconds
退出 HBase Shell
要退出 HBase Shell 并从你的集群断开,使用 quit 命令。HBase 依然在后台运行。
过程:停止 HBase
与提供 bin/start-hbase.sh 脚本来方便地启动 所有 HBase 守护进程的方式相同,bin/stop-hbase.sh 脚本用来停止它们。
123
$ ./bin/stop-hbase.shstopping hbase................$
发起了这个命令之后,它可能花费几分钟来执行关闭。使用 jps 来确保 HMaster 和 HRegionServer 进程的关闭。
上文已经向你展示了如何启动和停止一个独立的 HBase 实例。下一节我们给出 hbase 部署的其它模式的快速概述。
伪分布式本地安装
在学习了快速启动独立模式的工作后,你可以重新配置 HBase 以伪分布式模式运行。伪分布式模式意味着 HBase 依然完全运行于单独的主机上,但每个 HBase 守护进程(HMaster,HRegionServer,和 ZooKeeper )运行于分开的进程中:在独立模式下所有的守护进程运行于一个 jvm 进程/实例中。默认情况下,除非像 快速开始 一节所述那样配置了 hbase.rootdir 属性,你的数据依然存储于 /tmp 下面。在本文的稍后部分,我们将把你的数据存储于 HDFS 上,假设你有 HDFS 可用。你可以跳过 HDFS 配置来继续将数据存储在本地文件系统。
Hadoop配置
这个过程假设你已经在你的本地系统和/或远程系统中,配置好了 Hadoop 和 HDFS,它们正在运行且可访问。它还假设你在使用 Hadoop 2.Hadoop 文档中关于 设置单节点集群 的指南是一个很好的起点。
如果正在运行的话就停止 HBase
如果你已经学完了 快速开始 且 HBase 依然处于运行状态,则停止它。本过程将创建一个全新的 HBase 存储数据目录,因此你之前创建的任何数据库都会丢失。
配置 HBase
编辑 hbase-site.xml 配置。首先,添加下面的属性,它指导 HBase 运行于分布式模式,每个守护进程一个 JVM 实例。
1234
接下来,将 hbase.rootdir 从本地文件系统修改为你的 HDFS 实例,使

时间:2018-10-09 22:54 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
- [数据挖掘]Apache Hudi 0.8.0 版本发布,Flink 集成有重大提升以
- [数据挖掘]大数据凉凉了?Apache将一众大数据开源项目束之
- [数据挖掘]盘点2020年晋升为Apache TLP的大数据相关项目
- [数据挖掘]HBase数据迁移到Kafka?这种逆向操作你懵逼了吗?
- [数据挖掘]深入分析 Flink SQL 工作机制
- [数据挖掘]Apache Spark 3.0.0 正式版终于发布了,重要特性全面
- [数据挖掘]一篇文章带你逆袭 Kafka
- [数据挖掘]Apache Doris在美团外卖数仓中的应用实践
- [数据挖掘]5000 字带你快速入门 Apache Kylin
- [数据挖掘]最新消息!Cloudera 全球发行版正式集成 Apache Fl
相关推荐:
网友评论: