Ubuntu下Hbase伪分布式环境配置

HBase一个十分高效的非关系型数据库。可以处理 百亿行X百万列的数据量,且速度在毫秒级,很强大!

1. Hbase 特点

  • 面向列

HBase是面向列的存储和权限控制,并支持独立检索,根据数据的增加,动态增加列。

  • 多版本

HBase每一列的数据的存储有多个version。 例如: 家庭住址有多个版本。

  • 稀疏性

为空的列并不占用存储空间,表可以设计的十分稀疏。

  • 扩展性

底层依赖 HDFS

  • 高可靠性

WAL机制保证了数据写入时不会因集群异常而导致写入数据丢失。Replication机制保证了在集群出现严重问题时,数据不会发生丢失和损坏。而且Hbase底层使用HDFS,HDFS本身也有备份。

  • 高性能

读写数据具有很高的性能,查询可以达到毫秒级。

与其说HBase是面向列的,不如说它是面向列簇的,用户在创建表的时候,不需要创建有哪些列,只用规定有哪些列簇即可。另外说明,一张表的列簇不会超过五个。

HBase架构体系

《Ubuntu下Hbase伪分布式环境配置》 图片来自网络

HBase伪分布式配置包括三个部分:JDK、 Hadoop、HBase。而zookeeper(伪分布式我用的自带的,所以不用下载)
上资源:

我的路径是/usr/local/bigdata,以后不作说明

1. JDK配置略过,直接下载后解压,配一下环境变量即可。

2. ssh的安装与配置

sudo apt-get install ssh
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh localhost
如果免密码则设置成功

3. 配置Hadoop

  • 修改 hadoop-env.sh
    《Ubuntu下Hbase伪分布式环境配置》 添加的路径是JDK路径
  • 修改 core-site.xml
    《Ubuntu下Hbase伪分布式环境配置》
    第一个value标签是 主机名:9000
    第二个value标签是 hadoop用来存放namenode相关的原数据和日志信息的文件夹路径。需要自己创建:
cd /usr/local/bigdata/hadoop-2.5.0/
sudo mkdir -p data/tmp

-修改 hdfs-site.xml

《Ubuntu下Hbase伪分布式环境配置》

-修改 slaves
将localhost改为主机名

启动hadoop,看是否配置成功,去sbin目录

《Ubuntu下Hbase伪分布式环境配置》

格式化namenode

bin/hdfs namenode -format

启动hadoop

sudo sbin/hadoop-daemon.sh start namenode
sudo sbin/hadoop-daemon.sh start datanode

然后去浏览器输入:
http://主机名:50070
进入Hadoop的监控界面,如果出现以下界面则配置成功

《Ubuntu下Hbase伪分布式环境配置》 下滑看到namenode

点击datanode可以看到datanode信息

《Ubuntu下Hbase伪分布式环境配置》 datanode

4. 配置HBase

  • 修改 hbase-env.sh
    《Ubuntu下Hbase伪分布式环境配置》

这里就是使用自己的zookeeper,如果要做完全分布式的话,这里为false

《Ubuntu下Hbase伪分布式环境配置》

  • 修改 hbase-site.xml

《Ubuntu下Hbase伪分布式环境配置》

这里的改法和hadoop类似。第一个value还是需要自己创建,否则会使用默认的tmp文件夹。

cd /usr/local/bigdata/hbase-0.98.6-hadoop2/
sudo mkdir -p data/tmp

第二个value 仍然是主机名:9000

  • 修改 regionservers
    将localhost 修改为 主机名。主机名通过hostname获取。
接下来 通过启动HBase

《Ubuntu下Hbase伪分布式环境配置》 bin中的启动文件

sudo bin/start-hbase.sh

然后去浏览器输入:
http://主机名:60010
进入HBase的监控界面,如果出现以下界面则配置成功

《Ubuntu下Hbase伪分布式环境配置》 HBase监控页面

问题:

  1. 如果hadoop启动失败,并且报错是与权限相关,那么解决办法是:

/etc/sshd.confg 中的
PermitRootLogin prohibit-password 改为
PermitRootLogin yes

  1. 如果HBase是1.0以上版本的话,输入主机名:60010可能会失败:
    原因:因为1.0.1版本的hbase的master web 默认是不运行的,所以需要自己配置默认端口。配置如下:
    在hbase-site.xml中加入以下内容即可
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>

好了,终于配置结束了。真的觉得这个配置麻烦,但功夫不负有心人,加油吧,奋斗中的程序员们!

另外: 资源我用的是 **hadoop 2.5.0 hbase0.98.6 jdk1.8.0 **,这些资源都是可以去官网下载的,前两个最好是下载CDH版本的,比较稳定。
PLUS: 需要资源的,私聊哈~
    原文作者:渺茫的小怪兽
    原文地址: https://www.jianshu.com/p/070271dbfc92
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞