大数据之(6)hbase2.1.1版本全分布式安装及使用

版权声明:本文为博主原创文章,欢迎转载。 https://blog.csdn.net/u011095110/article/details/84145164

一、Hadoop安装

具体请参见 https://blog.csdn.net/u011095110/article/details/83791734

二、Zookeeper分布式集群安装

1.Zookeeper下载

#进入hadoop主目录
cd /hadoop
#下载zookeeper
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

2.文件配置

cd /hadoop/zookeeper-3.4.13/conf
cp zoo_sample.cfg zoo.cfg

dataDir为存储myid的地址,需要创建,server.1/2/3 myid就为对应的1,2,3
vim myid
1

dataDir=/hadoop/data
server.1=master.hadoop:2888:3888
server.2=slave1.hadoop:2888:3888
server.3=slave2.hadoop:2888:3888

3.启动zookeeper集群

在每个机器上进入/hadoop/zookeeper-3.4.13/bin并执行

./zkServer.sh start
[root@master bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /hadoop/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: leader

4.查看zookeeper启动状态

三、HBase下载&安装

1.下载HBase2.1.1

进入hadoop主目录
cd /hadoop/
下载hbase2.1.1
wget http://mirrors.hust.edu.cn/apache/hbase/2.1.1/hbase-2.1.1-bin.tar.gz
解压hbase2.1.1
tar -zxvf hbase-2.1.1-bin.tar.gz

2.修改配置文件

  • 修改hbase-env.sh
    #指定自己的HBASE_PID_DIR目录,此目录存储pid文件
    #创建/hadoop/data/hbase/pids目录
    export HBASE_PID_DIR=/hadoop/data/hbase/pids
    #使用自带的zookeeper指定为false,此处使用自己下载安装的zookeeper
    export HBASE_MANAGES_ZK=false
    #指定自己的JAVA_HOME路径
    export JAVA_HOME=/usr/java/jdk1.8.0_181
  • 修改hbase-site.xml
 <!-- 指定hbase master机器 -->
<property>
    <name>hbase.master</name>
    <value>hdfs://master.hadoop:60000</value>
  </property>
   <!-- hbase分布式集群为true -->
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
 <!-- 指定ZK集群地址,分别在master.hadoop,slave1.hadoop,slave2.hadoop 使用hostname配置即可上安装了zookeeper-->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>master.hadoop,slave1.hadoop,slave2.hadoop</value>
  </property>
<!-- 指定独立Zookeeper安装路径 -->

  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/hadoop/zookeeper-3.4.13</value>
  </property>

  <!-- 指定ZooKeeper集群端口 -->
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<!--此处避免一个启动时候得错误-->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>

配置hbase.unsafe.stream.capability.enforce是解决下面的启动错误

Please check the config value of 'hbase.procedure.store.wal.use.hsync' to set the desired level of robustness and ensure the config value of 'hbase.wal.dir' points to a FileSystem mount that can provide it
  • 修改regionservers
slave1.hadoop
slave2.hadoop
  • copy htrace 相关jar到HBASE_HOME/lib目录下
    如果不拷贝jar包出来启动时可能报错
2018-11-16 16:16:27,914 ERROR [main] regionserver.HRegionServer: Failed construction RegionServer
java.lang.NoClassDefFoundError: org/apache/htrace/SamplerBuilder

cd /hadoop/hbase-2.1.1/lib/client-facing-thirdparty
cp htrace-core-3.1.0-incubating.jar …/
cp htrace-core4-4.2.0-incubating.jar …/

四、启动HBase

  • 在hbase的bin目录下,运行./start-hbase.sh
    Master节点
[root@master bin]# jps
836 HMaster
29797 QuorumPeerMain
22150 ResourceManager
21976 SecondaryNameNode
21742 NameNode
10030 Jps
  • jps查看hmaster和zookeeper进程是否已存在
    QuorumPeerMain为Zookeeper进程,HMaster是master进程,HRegionServer是regionserver进程;
  • 查看RegionServer进程是否已启动
    Slave节点
[root@slave2 conf]# jps
15889 HRegionServer
19364 Jps
26437 NodeManager
26333 DataNode
14574 QuorumPeerMain

五、验证HBase

  • hbase shell基本操作
//进入HBase Shell
[root@vnet ~] hbase shell

//查看当前HBase有哪些表
hbase(main):> list

//创建表t_user,cf1和cf2是列族,列族一般不超过3个
hbase(main):> create 't_user','name','password'

//获得表t_user的描述信息
hbase(main):> describe 't_user'

//禁用表
hbase(main):> disable 't_user'

//删除表,删除表之前要先把表禁用掉
hbase(main):> drop 't_user'

//查询表是否存在
hbase(main):> exists 't_user'

//查看全表数据
hbase(main):> scan 't_user'

//插入数据,分别是表名、key、列(列族:具体列)、值。HBase是面向列的数据库,列可无限扩充
hbase(main):> put 't_user' ,'001','cf1:name','chenxj'
hbase(main):> put 't_user' ,'001','cf1:age','18'
hbase(main):> put 't_user' ,'001','cf2:sex','man'
hbase(main):> put 't_user' ,'002','cf1:name','chenxj'
hbase(main):> put 't_user' ,'002','cf1:address','fuzhou'
hbase(main):> put 't_user' ,'002','cf2:sex','man'

//获取数据,可根据key、key和列族等进行查询
hbase(main):> get 't_user','001'
hbase(main):> get 't_user','002','cf1'
hbase(main):> get 't_user','001','cf1:age'

  • web ui访问 yourip:16010
    譬如我的是172.16.16.15:16010
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u011095110/article/details/84145164