mac构建大数据伪分布式学习环境(六)-部署HBase

  1. 选择一个[Apache 下载镜像](https://www.apache.org/dyn/closer.lua/hbase/)。 建议点击顶部链接,进入 HBase Releases 点击 stable 的文件夹,然后下载将以 tar.gz 结尾的二进制文件到本地。暂时不要下载以 src.tar.gz 结尾的文件。

  1. 解压缩,然后进入到那个要解压的目录.

$ tar xzvf hbase-3.0.0-SNAPSHOT-bin.tar.gz
$ cd hbase-3.0.0-SNAPSHOT/
  1. 在启动 HBase 之前,您需要设置JAVA_HOME环境变量。您可以通过操作系统的常用设置来设置变量,HBase 也提供了一个中心机制 conf/hbase-env.sh。编辑此文件,取消注释以JAVA_HOME开头的行,并将其设置为适合您的操作系统的路径。应将JAVA_HOME变量设置为包含可执行文件 bin/java 的目录。如今,大多数 Linux 操作系统都提供了一种机制,例如 RHEL 或 CentOS 上的/usr/bin/alternatives,可以方便切换环境。在这种情况下,您可以将JAVA_HOME设置为包含 bin/java 的符号链接的目录,通常为 /usr

JAVA_HOME=/usr
  1. 编辑 HBase 主配置文件 conf/hbase-site.xml.此时,您需要在本地文件系统上指定 HBase 和 ZooKeeper 数据存储目录,并知晓一些风险。默认情况下,HBase 会在/tmp 下创建一个新目录,但是许多服务为在重新启动时会删除 /tmp 的内容,因此您需要将数据存储在其他位置。以下配置文件处在 hbase,名为testuser的用户的主目录中。首次安装 HBase 为空,可以将<property>标记粘贴在<configuration>内。

示例 1. hbase-site.xml Standalone HBase 配置

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///home/testuser/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/testuser/zookeeper</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
    <description>
      Controls whether HBase will check for stream capabilities (hflush/hsync).

      Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
      with the 'file://' scheme, but be mindful of the NOTE below.

      WARNING: Setting this to false blinds you to potential data loss and
      inconsistent system state in the event of process and/or node failures. If
      HBase is complaining of an inability to use hsync or hflush it's most
      likely not a false positive.
    </description>
  </property>
</configuration>

您不需要创建 HBase 数据目录。 HBase 会自动创建。如果您想要自定义创建目录,HBase 将尝试进行迁移 。

上例中的 hbase.rootdir 指向 local filesystem 中的目录。 'file://'前缀是表示本地文件系。您应该将配置示例中的警告牢记在心。在 Standalone 模式下,HBase 利用 Apache Hadoopd 的本地文件存储。但是这种方式并不能保证 HBase 运行的持久性。这只是适用于于本地开发和测试用例,可以很好的控制集群故障的成本。它不适合生产部署,否则你会丢失数据。

为在 HDFS 上部署 HBase, 可以将 hbase.rootdir 指向如: hdfs://namenode.example.org:8020/hbase. 有关此变量的更多用法,可查看章节基于 HDFS 部署 Standalone HBase.

  1. 脚本 bin/start-hbase.sh 为启动 HBase 提供了方便的途径。执行命令,在标准输出的日志里可以看到 HBase 启动成功的消息。你可以使用 jps 命令来确认你有一个正在运行的进行 HMaster。在 HBase 的 Standalone 模式中,所有的服务都运行在同一 JVM 中,如 HMaster,单例的 HRegionServer 和 ZooKeeper 的守护进程。可以前往 Web UI_http://localhost:16010_ 查看 HBase.

Java 必须安装且可用. 如果你收到错误提示,Java 未安装,可能 java 位于非标准位置,你可以编辑 conf/hbase-env.sh ,修改 JAVA_HOME 路径,并确保包含 bin/java.
过程: 首次使用 HBase
  1. 连接 HBase

在 HBase 安装目录 bin/ 目录下使用hbase shell命令连接正在运行的 HBase 实例。 在下面这个例子中,当你启动 HBase Shell 并忽略一些用法和版本信息后,HBase Shell 是以字符> 结尾。

$ ./bin/hbase shell
hbase(main):001:0>
  1. 预览 HBase Shell 的帮助文本

输入help并回车, 可以看到 HBase Shell 的基本信息和一些示例命令.请注意,表名,行,列都必须用引号字符括起来。

  1. 创建表

使用 create创建一个表,你必须执行一个表名和列族名。

hbase(main):001:0> create 'test', 'cf'
0 row(s) in 0.4170 seconds

=> Hbase::Table - test
  1. 表信息

使用 list 查看存在表

hbase(main):002:0> list 'test'
TABLE
test
1 row(s) in 0.0180 seconds

=> ["test"]

使用 describe 查看表细节及配置

hbase(main):003:0> describe 'test'
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => 'cf', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE =>
'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 'f
alse', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOCKSIZE
 => '65536'}
1 row(s)
Took 0.9998 seconds
  1. 插入数据

使用 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

在这里,我们往test表中依次插入了三条数据。首先插入了一条 rowkey 为row1、列为cf:a、值为value1的数据。HBase 中的列是包含列族前缀的,在这个例子中,冒号前的为列 cf,冒号后的为列限定符 a 。

  1. 扫描全部数据

从 HBase 获取数据的途径之一就是 scan 。使用 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
  1. 获取一条数据

使用 get 命令一次获取一条数据。

hbase(main):007:0> get 'test', 'row1'
COLUMN                                   CELL
 cf:a                                    timestamp=1421762485768, value=value1
1 row(s) in 0.0350 seconds
  1. 禁用表

如果你想删除一个表或者改变表的设置,以及一些其他的场景,首先你需要使用 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

Disable the table again if you tested the enable command above:

hbase(main):010:0> disable 'test'
0 row(s) in 1.1820 seconds
  1. 删除表

使用 drop 命令删除一个表。

hbase(main):011:0> drop 'test'
0 row(s) in 0.1370 seconds
  1. 退出 HBase Shell.

使用quit命令退出命令行并从集群断开连接。HBase 仍然在后台运行。

过程: 停止 HBase
  1. 脚本 bin/start-hbase.sh 这个脚本提供了便利的启动所有 HBase 服务,同样地, bin/stop-hbase.sh 脚本用来停止所有 HBase 服务。

$ ./bin/stop-hbase.sh
stopping hbase....................
$
  1. 在使用这个命令后,它可能需要过几分钟才能停掉服务进程。可以使用 jps 确认 HMaster 和 HRegionServer 进程是否关闭。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞬间的醒悟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值