最近为了方便开发,在自己的虚拟机上搭建了三节点的Hadoop集群与Hbase集群,hadoop集群的搭建与zookeeper集群这里就不再详细说明,原来的笔记中记录过。这里将hbase配置参数进行相应整理,方便日后使用。
首先vi ~/.bash_profile将hbase的环境变量进行配置,最后source ~./bash_profile使之立即生效
1、修改hbase-env.sh
由于我使用的是外置的zookeeper,所以这里HBASE_MANAGES_ZK设置为,设置参数:
# The java implementation to use. Java 1.7+ required.
export JAVA_HOME=/usr/local/yangsy/jdk1.7.0_55
# Extra Java CLASSPATH elements. Optional.
export HBASE_CLASSPATH=/usr/local/hbase-1.0.2/conf
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
2、修改hbase-site.xml
//设置将数据写入hdfs的目录
hbase.rootdir
hdfs://master:9000/usr/local/hadoop-2.6.0/hbaseData
//设置hbase模式为集群模式
hbase.cluster.distributed
true
//设置hbase的master端口地址
hbase.master
hdfs://master:60000
//HBase Master web界面绑定的端口,默认为0.0.0.0
hbase.master.info.port
60010
//连接zookeeper的端口设置
hbase.zookeeper.property.clientPort
2183
//设置zookeeper的连接地址(必须为基数个)
hbase.zookeeper.quorum
master,slave1,slave2
//Zookeeper的zoo.conf中的路径配置,快照的存储位置
hbase.zookeeper.property.dataDir
/usr/local/zookeeper-3.4.6/data
//Zookeeper连接超时时间
zookeeper.session.timeout
60000
这里要注意的是,如果选择外置的zookeeper集群,则需要将zookeeper的zoo.cfg拷贝至HBase的conf下。在启动HBase时,将会自动加载该配置文件。同时,如果hadoop为ha集群的话,需要将core-site.xml以及hdfs-site.xml拷贝到hbase的conf下,否则启动后regionServer会报unknownhost.
3、修改regionservers
slave1
slave2
4、启动hadoop集群、zookeeper集群以及Hbase
首先要确保zkeeper是否正常启动 在zookeeper bin目录下使用./zkServer.sh status查看状态
5、查看HBase master启动是否报错
6、查看各slave节点reginserver是否报错
6、看来启动成功,可以后续愉快的玩耍了
最后查阅了Hbase相关配置参数,这里进行总结,以便日后熟练后调优
hbase.rootdir
这个目录是region server的共享目录,用来持久化Hbase。URL需要是'完全正确'的,还要包含文件系统的scheme。例如,要表示hdfs中的 '/hbase'目录,namenode 运行在namenode.example.org的9090端口。则需要设置为hdfs://namenode.example.org:9000 /hbase。默认情况下Hbase是写到/tmp的。不改这个配置,数据会在重启的时候丢失。
默认: file:///tmp/hbase-${user.name}/hbase
hbase.master.port
Hbase的Master的端口.
默认: 60000
hbase.cluster.distributed
Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。
默认: false
hbase.tmp.dir
本地文件系统的临时文件夹。可以修改到一个更为持久的目录上。(/tmp会在重启时清楚)
默认: /tmp/hbase-${user.name}
hbase.master.info.port
HBase Master web 界面端口. 设置为-1 意味着你不想让他运行。
默认: 60010
hbase.master.info.bindAddress
HBase Master web 界面绑定的端口
默认: 0.0.0.0
hbase.client.write.buffer
HTable 客户端的写缓冲的默认大小。这个值越大,需要消耗的内存越大。因为缓冲在客户端和服务端都有实例,所以需要消耗客户端和服务端两个地方的内存。得到的好处 是,可以减少RPC的次数。可以这样估算服务器端被占用的内存: hbase.client.write.buffer * hbase.regionserver.handler.count
默认: 2097152
hbase.regionserver.port
HBase RegionServer绑定的端口
默认: 60020
hbase.regionserver.info.port
HBase RegionServer web 界面绑定的端口 设置为 -1 意味这你不想与运行 RegionServer 界面.
默认: 60030
hbase.regionserver.info.port.auto
Master或RegionServer是否要动态搜一个可以用的端口来绑定界面。当hbase.regionserver.info.port已经被占用的时候,可以搜一个空闲的端口绑定。这个功能在测试的时候很有用。默认关闭。