安装分布式Zookeeper

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

 

NN

DN

ZK

ZKFC

JN

RM

NM

HM

RS

Node1

Y YY Y  Y

Node2

YYYYY Y Y

Node3

 YY Y YYY

Node4

 Y  Y YYY

下载地址

每个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

<!-- 指明hadoopHA集群的名字 
    跟/app/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml
    中配置的dfs.nameservices的值一样   -->
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoopcluster/hbase</value>
  </property>

<!-- 打开分布式 -->
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>


<!-- 指明zookeeper集群所在地 -->
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>node1,node2,node3</value>
</property>


<!-- 指明zookeeper的工作目录(与安装zookeeper的时候配置的zoo.cfg文件的dataDir值) -->
<property>
  <name>hbase.zookeeper.property.dataDir</name>
  <value>/app/zookeeper/tmp</value>
</property>

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的命令行(先要启动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’

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐