Linux下Hadoop分布式文件系统分布模式+配置部署启动YARN+zookeeper+Hbase

续我的上篇博文:https://mp.csdn.net/postedit/89188128即Hadoop分布式文件系统布模式+配置部署启动YARN+zookeeper已经部署好。

 

本篇博文在上篇博文的基础上配置部署Hbase

 

一、Hbase介绍

 

  • HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。 就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop 项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
  • HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构存储集群。
  • 与FUJITSU Cliq等商用大数据产品不同,HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。

 

二、实验环境(rhel7.3版本)

1、系统环境:

  1. selinux和firewalld状态为disabled
  2. Hadoop 、jdk、zookeeper 程序使用 nfs 共享同步配置文件

2、软件版本:

  1. hadoop-3.0.3.tar.gz
  2. zookeeper-3.4.9.tar.gz
  3. jdk-8u181-linux-x64.tar.gz
  4. hbase-1.2.4-bin.tar.gz

3各主机信息如下:

主机ip
server1(NameNode、 Secondary Namenode、nfs网络文件系统的服务端、ResourceManager、DFSZKFailoverController)172.25.83.1
server5(NameNode、 Secondary Namenode、nfs网络文件系统的客户端、ResourceManager、DFSZKFailoverController)172.25.83.5
server2(Datanode、nfs网络文件系统的客户端、NodeManager、JournalNode、QuorumPeerMain)172.25.83.2
server3(Datanode、nfs网络文件系统的客户端、NodeManager、JournalNode、QuorumPeerMain)172.25.83.3
server4(Datanode、nfs网络文件系统的客户端、NodeManager、JournalNode、QuorumPeerMain)172.25.83.4

 

三、Hadoop分布模式+配置部署启动YARN+zookeeper+Hbase

 

配置server1(Namenode):当然也可以在server2端/server3端/server4端/server5端进行配置,因为配置了nfs网络文件系统,所以在任何一端进行操作均可以。

 

1、下载hadoop、jdk安装包到hadoop用户家目录放到hadoop用户家目录下的原因是:hadoop用户对其家目录具有所有的权限,这样就不需要在/etc/sudoers下给hadoop用户权限了)

[hadoop@server1 ~]$ ll -d hbase-1.2.4-bin.tar.gz 
-rw-r--r-- 1 root root 104497899 Apr 11 12:11 hbase-1.2.4-bin.tar.gz

 

2、解压配置软链接(方便hbase更新,只更改软链接即可)

[hadoop@server1 ~]$ tar zxf hbase-1.2.4-bin.tar.gz 
[hadoop@server1 ~]$ ll -d hbase-1.2.4
drwxrwxr-x 7 hadoop hadoop 160 Apr 11 12:11 hbase-1.2.4
[hadoop@server1 ~]$ ln -s hbase-1.2.4 hbase
[hadoop@server1 ~]$ ll hbase
lrwxrwxrwx 1 hadoop hadoop 11 Apr 11 12:12 hbase -> hbase-1.2.4

 

4、修改配置文件

 

<1>修改hbase-env.sh:配置java环境变量和hadoop环境变量,并指定zookeeper

[hadoop@server1 conf]$ pwd
/home/hadoop/hbase/conf
[hadoop@server1 conf]$ vim hbase-env.sh 
 27 export JAVA_HOME=/home/hadoop/java   #指定 jdk
 28
 29 export HADOOP_HOME=/home/hadoop/hadoop   #默认值时true,hbase在启动时自动开启zookeeper,如需自己维护zookeeper集群需设置为false
128 export HBASE_MANAGES_ZK=false   #指定hadoop目录,否则hbase无法识别hdfs集群配置



#其中hbase在启动时自动开启zookeeper,zookeeper的启动脚本在解压后的hbase目录下的bin目录下
[hadoop@server1 bin]$ pwd
/home/hadoop/hbase/bin
[hadoop@server1 bin]$ ll -d zookeepers.sh 
-rwxr-xr-x 1 hadoop hadoop 1870 Dec 27  2015 zookeepers.sh

 

<2>编辑hbase-site.xml

[hadoop@server1 conf]$ pwd
/home/hadoop/hbase/conf
[hadoop@server1 conf]$ vim hbase-site.xml   #在文件的最后添加如下的内容
 23 <configuration>
 24     <property>   #该property对:指定region server的共享目录,用来持久化HBase。这里指的 HDFS地址是要跟core-site.xml里面的fs.defaultFS的HDFS的IP地址或者域名、端口必须一致。
 25         <name>hbase.rootdir</name>
 26         <value>hdfs://masters/hbase</value>
 27     </property>
 28 
 29     <property>   #该property对:启用hbase分布式模式
 30         <name>hbase.cluster.distributed</name>
 31         <value>true</value>
 32     </property>
 33 
 34     <property>   #该property对:Zookeeper集群的地址列表,用逗号分割。默认是localhost,是给伪分布式用的。要修改才能在完全分布式的情况下使用。
 35         <name>hbase.zookeeper.quorum</name>
 36         <value>172.25.83.2,172.25.83.3,172.25.83.4</value>
 37     </property>
 38 
 39     <property>  #该property对:指定hbase的master 
 40         <name>hbase.master</name>
 41         <value>h1</value>
 42     </property>
 43 </configuration>      

 

<3>编辑regionservers

[hadoop@server1 conf]$ pwd
/home/hadoop/hbase/conf
[hadoop@server1 conf]$ vim regionservers 
172.25.83.2
172.25.83.3
172.25.83.4

 

5、启动hbase

 

主节点运行(h1节点—server1端):

[hadoop@server1 hbase]$ pwd
/home/hadoop/hbase
[hadoop@server1 hbase]$ bin/start-hbase.sh

[hadoop@server1 hbase]$ jps
4513 DFSZKFailoverController
6405 ResourceManager
2966 HMaster   #新增加的内容
3354 Jps
5519 NameNode

 

备节点运行(h2节点—server5端):

 

[hadoop@server5 hadoop]$ jps
2211 NameNode
2293 DFSZKFailoverController
4726 ResourceManager
4767 Jps

[hadoop@server5 hbase]$ bin/hbase-daemon.sh start master
starting master, logging to /home/hadoop/hbase/bin/../logs/hbase-hadoop-master-server5.out

[hadoop@server5 hbase]$ jps
2211 NameNode
2293 DFSZKFailoverController
4726 ResourceManager
4844 HMaster   #新增加的内容
4956 Jps

 

6、查看各节点状态

[hadoop@server1 hbase]$ jps
4064 Jps
4513 DFSZKFailoverController
6405 ResourceManager
2966 HMaster   #新增加的内容
5519 NameNode


[hadoop@server5 hbase]$ jps
2211 NameNode
2293 DFSZKFailoverController
4726 ResourceManager
5033 Jps
4844 HMaster   #新增加的内容


[hadoop@server2 ~]$ jps
2626 NodeManager
3346 HRegionServer   #新增加的内容
2436 DataNode
3607 Jps
2329 JournalNode
2187 QuorumPeerMain


[hadoop@server3 hadoop]$ jps
3201 HRegionServer   #新增加的内容
3476 Jps
2262 JournalNode
2359 DataNode
2155 QuorumPeerMain
2559 NodeManager


[hadoop@server4 hadoop]$ jps
9425 Jps
2613 JournalNode
2981 NodeManager
2728 DataNode
2489 QuorumPeerMain
9006 HRegionServer   #新增加的内容
  • 16010端口只在server1和server5端(HMaster)开放,所以在server2,server3,server4端是查看不到16010端口的。

 

HBase Master 默认端口时 16000,还有个 web 界面默认在 Master 的 16010 端口上,HBase RegionServers 会默认绑定 16020 端口,在端口 16030 上有一个展示信息的界面。

 

 

6、测试

[hadoop@server1 hbase]$ bin/hbase shell
hbase(main):001:0> create 'test', 'cf'
0 row(s) in 2.9030 seconds

=> Hbase::Table - test
hbase(main):002:0> list 'test'
TABLE                                                                                           
test                                                                                            
1 row(s) in 0.0490 seconds

=> ["test"]
hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.3950 seconds

hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0890 seconds

hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0700 seconds

hbase(main):006:0> scan 'test'
ROW                       COLUMN+CELL                                                           
 row1                     column=cf:a, timestamp=1554967472177, value=value1                    
 row2                     column=cf:b, timestamp=1554967477266, value=value2                    
 row3                     column=cf:c, timestamp=1554967484924, value=value3                    
3 row(s) in 0.0810 seconds
[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop
[hadoop@server1 hadoop]$ bin/hdfs dfs -ls /
Found 2 items
drwxr-xr-x   - hadoop supergroup          0 2019-04-11 15:09 /hbase   #可以看到上传的hbase目录表示配置成功
drwxr-xr-x   - hadoop supergroup          0 2019-04-10 23:19 /user

 

7、测试 hbase 故障切换

[hadoop@server1 ~]$ jps
4513 DFSZKFailoverController
6405 ResourceManager
2966 HMaster
5961 Jps
5519 NameNode
[hadoop@server1 ~]$ kill -9 2966   #杀掉HMaster对应的进程ID
[hadoop@server1 ~]$ jps
4513 DFSZKFailoverController
6019 HMaster
6116 Jps
6405 ResourceManager
5519 NameNode

 

启动 server1端的 HMaster 后,server5端仍为HMaster的master。

[hadoop@server1 hbase]$ bin/hbase-daemon.sh start master
starting master, logging to /home/hadoop/hbase/bin/../logs/hbase-hadoop-master-server1.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0

[hadoop@server1 hbase]$ jps
4513 DFSZKFailoverController
6627 HMaster   #HMaster启动了
6405 ResourceManager
6854 Jps
5519 NameNode

 

在server2端(当然也可以是server3端,server4端。其实只要是zookeeper集群的集群节点都可以):我们利用zookeeper客户端的命令,连接客户端,查看格式化zookeeper生成的一些信息,以确保服务配置成功,并且可以查看上面浏览器中看到的信息(server5处于HMaster的Master状态,server1处于HMaster的Backup Master状态)。

 

[hadoop@server2 zookeeper-3.4.9]$ pwd
/home/hadoop/zookeeper-3.4.9
[hadoop@server2 zookeeper-3.4.9]$ bin/zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /hbase/

replication            meta-region-server     rs                     splitWAL
backup-masters         table-lock             flush-table-proc       region-in-transition
online-snapshot        master                 running                recovering-regions
draining               namespace              hbaseid                table
[zk: localhost:2181(CONNECTED) 1] get /hbase/master 
�master:160005yԞ�p��PBUF   

server5�}�Âڠ-�}   #表明server5是HMaster的Master
cZxid = 0x2000000a6
ctime = Thu Apr 11 15:32:09 CST 2019
mZxid = 0x2000000a6
mtime = Thu Apr 11 15:32:09 CST 2019
pZxid = 0x2000000a6
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x26a0a330b5b0008
dataLength = 55
numChildren = 0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值