hbase部署分为单机、伪分布式、分布式三种
应用于生产环境的是分布式方式,部署分布式参照以下步骤:
1、配置hosts及hostname
假设三台服务器,ip如下:
192.168.1.1
192.168.1.2
192.168.1.3
三台服务器的/etc/hosts内容修改如下:
192.168.1.1 Master
192.168.1.2 Slave1
192.168.1.3 Slave2
192.168.1.1 namenode
192.168.1.2 datanode1
192.168.1.3 datanode2
192.168.1.1服务器的/etc/sysconfig/network的hostname修改为Master
192.168.1.2服务器的/etc/sysconfig/network的hostname修改为Slave1
192.168.1.3服务器的/etc/sysconfig/network的hostname修改为Slave2
修改后重启服务器
2、配置linux ssh互信
在三台服务器上分别生成公钥,将公钥内容合并到authorized_key,保证每台机器都有一个合并后的authorized_key,生成公钥时三台服务器使用的账户需要一致,且该用户需要具有hadoop和hbase安装目录操作权限和authorized_key操作权限,步骤如下:
登陆192.168.1.1
ssh-keygen -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_key
scp authorized_key 192.168.1.2:~/.ssh
进入192.168.1.2重复以上步骤后进入192.168.1.3重复以上步骤
将192.168.1.3的authorized_key覆盖192.168.1.1和192.168.1.2的authorized_key
三台服务器互相ssh登陆不需要密码验证即可
3、部署hadoop
进入hadoop/conf,修改hdfs-site.xml,类似如下:
dfs.name.dir为name数据存储目录
dfs.data.dir为data数据存储目录
dfs.replication为冗余备份数量,需要小于Slave数量
修改hadoop-env.sh,如下:
设置为服务器jdk安装路径,去掉前面的#
修改core-site.xml,如下:
fs.default.name为namenode地址及端口号
hadoop.tmp.dir为hadoop临时文件目录
masters修改为:
slaves修改为:
配置完成后将hadoop通过scp传到Slave节点,启动hdfs,hbase不需要启动整个hadoop,执行Master节点的bin/start-dfs.sh,jps看到Master服务器有NameNode、SecondaryNameNode,Slave服务器有DataNode即为部署成功
部署后需要在Master服务器执行./hadoop namenode -format
部署后需要在Master和Slave服务器执行./hadoop dfsadmin -safemode leave,
简单测试:
./hadoop fs -mkdir /yibao
./hadoop fs -put test.txt /yibao
在三台服务器执行./hadoop fs -ls /yibao都能看到test.txt即可
4、部署hbase
分布式环境需要zookeeper支持,hbase自带zookeeper,可是直接使用,也可以使用独立的zookeeper,配置conf/hbase-env.sh中export HBASE_MANAGES_ZK=true为使用hbase自带的zookeeper,false为使用独立zookeeper,启动hbase后jps,自带zookeeper显示为HQuorumPeer,独立zookeeper为HQuorumPeerMain
这里使用hbase自带zookeeper部署
修改配置文件,conf/hbase-en.sh:
修改为本机jdk目录
修改conf/hbase-site.xml
hbase.rootdir为hdfs地址及端口
hbase.master为Master服务器地址及端口
hbase.zookeeper.quorum为集群中各节点ip
修改regionservers:
各节点ip
将hadoop中hadoop-core的jar包替换到hbase/lib中,删除原hbase/lib下hadoop-core的jar包
配置完成后通过scp将hbase传到Slave节点,执行Master节点的bin/start-hbase启动hbase后jsp,Master有HMaster、HRegionServer即为成功,Slave节点有HRegionServer,另外可以通过http://Master:60010/查看hbase状态
简单测试:
./hbase shell
list查看所有表
create ‘yibao’,’usr’ 建表
不报错即为成功