【二】HBase安装(基于hadoop2.9HA的搭建)(分布式)

先安装分布式Zookeeper

hadoop分布式配置(HA高可用)

 

NN

DN

ZK

ZKFC

JN

RM

NM

HM

RS

Node1

Y   Y Y   Y     Y

Node2

Y Y Y Y Y   Y   Y

Node3

  Y Y   Y   Y Y Y

Node4

  Y     Y   Y Y Y

下载地址

每个node上都要安装hbase

解压

tar -zxvf hbase-1.4.4-bin.tar.gz

修改文件名字

mv hbase-1.4.4 hbase

修改配置文件

cd /app/hbase/conf

vi hbase-env.sh

配置JAVA的路径,不启动hbase自带的zk

export JAVA_HOME=/app/java/jdk1.8.0_101

export HBASE_MANAGES_ZK=false

export HBASE_PID_DIR=/app/hbase/pids

 

vi hbase-site.xml



    hbase.rootdir
    hdfs://hadoopcluster/hbase
  



  hbase.cluster.distributed
  true





  hbase.zookeeper.quorum
  node1,node2,node3





  hbase.zookeeper.property.dataDir
  /app/zookeeper/tmp

vi regionservers

指明regionservers在哪些机器上。

node1
node2
node3
node4

把hadoop的hdfs-site.xml、core-site.xml配置文件拷贝到HBase的配置文件夹中

cp /app/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml /app/hbase/conf/

 cp /app/hadoop/hadoop-2.9.0/etc/hadoop/core-site.xml /app/hbase/conf/

配置环境变量

vi ~/.bashrc

export HBASE_HOME=/app/hbase
export PATH=:$PATH:$HBASE_HOME/bin

使环境变量生效

source ~/.bashrc

创建保存pid文件的路径

cd /app/hbase

mkdir pids

 

启动zookeeper集群

cd /app/zookeeper/bin

./zkServer.sh start

启动hadoop集群(在namenode上执行)

cd /app/hadoop/hadoop-2.9.0/sbin

./start-all.sh

 

HMaster是node3和node4

启动(在node3上)

cd /app/hbase/bin

./start-hbase.sh

这个命令在哪里执行,就在当前的机器上跑一个HMaster

 

单独启动HMaster。在哪台机器上执行该命令,就在哪台机器上启动HMaster(在node4上)

cd /app/hbase/bin

./hbase-daemon.sh start master

jps查看4台机器

正确显示是

node1 HRegionServer

node2 HRegionServer

node3 HMaster、HRegionServer

node4 HMaster、HRegionServer

 

通过浏览器访问: http://node3:16010

在HBase1.0之前UI界面端口是60010,1.0以后改成了16010

需要访问有HMaster的机器

【二】HBase安装(基于hadoop2.9HA的搭建)(分布式)_第1张图片

 

进入hbase的命令行(先要启动hbase)

cd /app/hbase/bin

./hbase shell

 

查看存在hbase中的文件

cd /app/hbase/bin

以键值对的方式打印存在hbase中(HDFS上的某个文件)的数据

./hbase hfile -p -f /hbase/data/default/person/4a2cd5b24a163b41c637df09d0dff0c1/cf1/b5f5d7712f934603b13aedcd00d942b1

HBase的shell命令

创建表 create ’t_student’,’cf1’

显示有那些表  list

查看表结构 desc ‘t_student’

插入一条数据:put ‘tablename’,’row key’,’column family name:column name’,’value’

put ‘t_student’,’007’,’cf1:name’,’sid’

查看该表中所有的数据: scan ‘tablename’

手动溢写到HDFS上(类似于MYSQL的commit):flush ‘tablename’

手动合并HDFS上的小文件:(因为每次hbase写一个hfile到HDFS上就会在HDFS上产一个文件,小文件太多,影响访问的速度)major_compact ‘tablename’

你可能感兴趣的:(hbase)