環境java
Linux:Centos Linux 7.3
JDK:jdk1.8.0_181
Hadoop:2.8.5
Zookeeper:3.4.13
HBase:1.4.8vim
服務器
bigdata01:192.168.1.50 (主節點)
bigdata02:192.168.1.51
bigdata03:192.168.1.52瀏覽器
安裝步驟
1,下載hbase安裝包hbase-1.4.8-bin.tar.gz,並上傳到bigdata01服務器的/opt目錄中。
2,解壓安裝包,bash
tar -zvxf hbase-1.4.8-bin.tar.gz
而後將目錄hbase-1.4.8修改成hbase,服務器
mv hbase-1.4.8 hbase
3,進入hbase的conf目錄,編輯hbase-env.sh文件,修改JAVA_HOME,網絡
export JAVA_HOME=/usr/local/java/jdk1.8.0_181
由於咱們用的jdk1.8,因此註釋掉下面兩行,分佈式
# export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
# export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"工具
這兩個配置是用於jdk1.7的;
HBASE_MANAGES_ZK變量, 此變量默認爲true,告訴HBase是否啓動/中止ZooKeeper集合服務器做爲HBase啓動/中止的一部分。若是爲true,這Hbase把zookeeper啓動,中止做爲自身啓動和中止的一部分。若是設置爲false,則表示獨立的Zookeeper管理。咱們將其設置爲false,oop
export HBASE_MANAGES_ZK=false
修改Hbase堆設置,將其設置成4G,spa
export HBASE_HEAPSIZE=4G
而後保存文件。
4,接下來編輯配置文件hbase-site.xml,
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>hbase.zookeeper.quorum</name> <value>bigdata01:2181,bigdata02:2181,bigdata03:2181</value> <description>The directory shared by RegionServers. </description> </property> <property> <name>hbase.rootdir</name> <value>hdfs://bigdata01:9666/hbase</value> <description>The directory shared by RegionServers. </description> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> <description>The mode the cluster will be in. Possible values are false: standalone and pseudo-distributed setups with managed ZooKeeper true: fully-distributed with unmanaged ZooKeeper Quorum (see hbase-env.sh) </description> </property> </configuration>
hbase.zookeeper.quorum: 這個參數是用來設置zookeeper服務列表,每一個服務器之間使用使用逗號分隔,2181是zookeeper默認端口號,你能夠自行根據你的端口號添加,默認的端口號加不加都無所謂。
hbase.rootdir: 這個參數是用來設置RegionServer 的共享目錄,用來存放HBase數據。特別須要注意的是 hbase.rootdir 裏面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 裏面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必須一致。
hbase.cluster.distributed: HBase 的運行模式。爲 false 表示單機模式,爲 true 表示分佈式模式。
5,編輯regionservers文件,配置從服務器,去掉 localhost,添加 slaves 節點
bigdata02
bigdata03
6,把 hadoop 的 hdfs-site.xml 複製一份到 hbase 的 conf 目錄下,
cp /opt/hadoop/etc/hadoop/hdfs-site.xml /opt/hbase/conf/
7,將配置好的 habase 分發到其它節點對應的路徑下
scp -r /opt/hbase root@bigdata02:/opt/
scp -r /opt/hbase root@bigdata03:/opt/
8,分別在三臺服務器上增長HBASE_HOME環境變量,修改vim /etc/profile
export HBASE_HOME=/opt/hbase
export PATH=$HBASE_HOME/bin:$PATH
使配置生效
source /etc/profile
9,同步服務器時間,咱們在使用HDFS的時候常常會出現一些莫名奇妙的問題,一般多是因爲多臺服務器的時間不一樣步形成的。咱們可使用網絡時間服務器進行同步。
安裝ntpdate工具
yum -y install ntp ntpdate
設置系統時間與網絡時間同步
ntpdate cn.pool.ntp.org
將系統時間寫入硬件時間
hwclock --systohc
查看系統時間
timedatectl
10,在 bigdata01上輸入:start-hbase.sh,啓動hbase,
等待啓動完成,在每一個節點上輸入 jps 命令,查看進程
出現以上進程表 hbase 明啓動成功了。
經過瀏覽器訪問http://bigdata01:16010能夠查看hbase 集羣狀態。
實例配置:
Hbase 分佈式集羣搭建 需在 hadoop集羣, zookeeper集羣創建的基礎上建立
[root@hadoop000 conf]# cat hbase-site.xml ***** <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://hadoop000:8020/hbase</value> </property> <property> <name>hbase.master.info.port</name> <value>60010</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop000,hadoop001,hadoop002</value> </property> </configuration>
[root@hadoop000 conf]# cat hbase-env.sh |grep -v "^#" export JAVA_HOME=/home/JDK/jdk1.8.0_181 export HBASE_OPTS="-XX:+UseConcMarkSweepGC" export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m" export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m" export HBASE_MANAGES_ZK=false
[root@hadoop000 conf]# cat regionservers hadoop001 hadoop002
[root@hadoop001 conf]# cat hbase-site.xml <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://hadoop000:8020/hbase</value> </property> <property> <name>hbase.master.info.port</name> <value>60010</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop001,hadoop002,hadoop000</value> </property> </configuration>
[root@hadoop001 conf]# cat hbase-env.sh |grep -v "^#" export JAVA_HOME=/home/jdk8 export HBASE_OPTS="-XX:+UseConcMarkSweepGC" export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m" export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m" export HBASE_MANAGES_ZK=false
[root@hadoop001 conf]# cat regionservers hadoop001 hadoop002