在文件存储HDFS版上使用 Apache HBase

一 目的

本文档主要介绍在文件存储HDFS版上使用 Apache HBase 的方法。如果您使用的是CDH或者阿里云E-MapReduce中内置的 HBase,请参考最佳实践中的《在文件存储HDFS版上使用CDH6》《在文件存储HDFS版上使用E-MapReduce》


二 准备工作

  1. 开通文件存储HDFS版服务并创建文件系统实例和挂载点,详细文档请参见:快速入门
  2. 在 Hadoop 集群所有节点上安装JDK。版本不能低于1.8。
  3. 在集群中配置文件存储HDFS版实例,详细文档请参见:挂载文件系统
  4. 部署 Apache HBase 分布式集群,官方文档:Apache HBase Reference Guide。部署时需参考下方第三章节配置。
  5. 本文档使用 Hadoop-2.10.1 和 HBase-2.3.7 测试验证。更多信息请参考 HBase官网Hadoop版本兼容性说明

在文件存储HDFS版上使用 Apache HBase


三 配置 Apache HBase

复制 Hadoop 中配置的 core-site.xml${HBASE_HOME}/conf 目录下

cp ${HADOOP_HOME}/etc/hadoop/core-site.xml ${HBASE_HOME}/conf

配置 ${HBASE_HOME}/conf/hbase-site.xml

<property>
    <!-- 使用分布式模式运行 HBase -->
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>
    <!-- 指定 HBase 的存储目录, f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com 为您的挂载点域名,根据实际情况修改 -->
    <name>hbase.rootdir</name>
    <value>dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/hbase</value>
</property>
<property>
    <!-- 在文件存储HDFS版上使用 HBase 时该配置必须设置为 false -->
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
</property>
<property>
    <!-- 依赖的 ZooKeeper 配置, 根据实际情况修改 -->
    <name>hbase.zookeeper.quorum</name>
    <value>hostname:2181</value>
</property>

配置 ${HBASE_HOME}/conf/hbase-env.sh

## HBase 不使用自己的 ZooKeeper
export HBASE_MANAGES_ZK=false

## 在 HBASE_CLASSPATH 中添加文件存储HDFS版 Java SDK
export HBASE_CLASSPATH=/path/to/aliyun-sdk-dfs-x.y.z.jar:${HBASE_CLASSPATH}

四 验证

  1. 启动 HBase
${HBASE_HOME}/bin/start-hbase.sh

注意:启动分布式HBase集群前确保 ZooKeeper 已经启动。


  1. 创建测试文件 dfs_test.txt 并写入如下内容
create 'dfs_test', 'cf'
for i in Array(0..9999)
 put 'dfs_test', 'row'+i.to_s , 'cf:a', 'value'+i.to_s
end
list 'dfs_test'
scan 'dfs_test', {LIMIT => 10, STARTROW => 'row1'}
get 'dfs_test', 'row1'


  1. 执行如下命令向 HBase 中创建表并写入 10000 条数据
${HBASE_HOME}/bin/hbase shell dfs_test.txt

在文件存储HDFS版上使用 Apache HBase


  1. 使用 MapReduce 计算行数
HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp` \
${HADOOP_HOME}/bin/hadoop jar ${HBASE_HOME}/lib/hbase-mapreduce-2.3.7.jar \
rowcounter dfs_test

## 如果在环境变量中已配置 HADOOP_HOME 及 HADOOP_CLASSPATH 也可以执行如下命令进行 RowCounter 计算
${HBASE_HOME}/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter dfs_test

注意:在 YARN 上执行 MapReduce 计数前需要先在 Hadoop 集群中启动 YARN 服务。

在文件存储HDFS版上使用 Apache HBase


了解更多关于文件存储HDFS版的产品信息,欢迎访问https://www.aliyun.com/product/alidfs

如果您对文件存储HDFS版有任何问题,欢迎钉钉扫描以下二维码加入文件存储HDFS版技术交流群。

在文件存储HDFS版上使用 Apache HBase

上一篇:JS-比较函数中嵌套函数,可以排序【对象数组】


下一篇:在文件存储HDFS版上使用 Apache Tez