Hello,world!
??
??本篇博客使用到的工具有:VMware16 ,Xftp7
若不熟悉操作命令,推薦使用帶GUI頁(yè)面的CentOS7虛擬機(jī)
我將使用帶GUI頁(yè)面的虛擬機(jī)演示
虛擬機(jī)(Virtual Machine)
指通過(guò)軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。在實(shí)體計(jì)算機(jī)中能夠完成的工作在虛擬機(jī)中都能夠?qū)崿F(xiàn)。在計(jì)算機(jī)中創(chuàng)建虛擬機(jī)時(shí),需要將實(shí)體機(jī)的部分硬盤(pán)和內(nèi)存容量作為虛擬機(jī)的硬盤(pán)和內(nèi)存容量。每個(gè)虛擬機(jī)都有獨(dú)立的CMOS、硬盤(pán)和操作系統(tǒng),可以像使用實(shí)體機(jī)一樣對(duì)虛擬機(jī)進(jìn)行操作。
【確保服務(wù)器集群安裝和配置已經(jīng)完成!】可參考我的上篇博客:
VMware創(chuàng)建Linux虛擬機(jī)之(一)實(shí)現(xiàn)免密登錄_Vim_飛魚(yú)的博客-CSDN博客
VMware創(chuàng)建Linux虛擬機(jī)之(二)下載安裝JDK與配置Java環(huán)境變量_Vim_飛魚(yú)的博客-CSDN博客
VMware創(chuàng)建Linux虛擬機(jī)之(三)Hadoop安裝與配置及搭建集群_Vim_飛魚(yú)的博客-CSDN博客_利用vmware虛擬機(jī)安裝hadoop
前言
請(qǐng)根據(jù)讀者的自身情況,進(jìn)行相應(yīng)隨機(jī)應(yīng)變。
我的三臺(tái)CentOS7服務(wù)器:
主機(jī):master(192.168.149.101)
從機(jī):slave1(192.168.149.102)
從機(jī):slave2(192.168.149.103)
每一個(gè)節(jié)點(diǎn)的安裝與配置是相同的,在實(shí)際工作中,通常在master節(jié)點(diǎn)上完成安裝和配置后,然后將安裝目錄通過(guò) scp 命令復(fù)制到其他節(jié)點(diǎn)即可。
注意:所有操作都是root用戶(hù)權(quán)限,需要我們登陸時(shí)選擇root用戶(hù)登錄。
zookeeper完全分布式安裝
下載Zookeeper安裝包
Zookeeper?下載地址:
Apache ZooKeeperhttps://zookeeper.apache.org/
解壓Zookeeper安裝包
????????首先,需要確保?network 網(wǎng)絡(luò)已經(jīng)配置好,使用 Xftp 等類(lèi)似工具進(jìn)行上傳,把 apache-zookeeper-3.6.2-bin.tar.gz 上傳到 opt/?目錄內(nèi)。(也可使用U盤(pán)等工具拖拽)
上傳完成后,在 master 主機(jī)上執(zhí)行以下代碼: 解壓zookeeper
cd /opt/
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
執(zhí)行成功后,系統(tǒng)在 opt?目錄自動(dòng)創(chuàng)建 zookeeper-3.6.2?子目錄。
? 注意:可使用 ls 等命令查看文件解壓是否無(wú)誤。
?
配置bashrc文件(等同于profile)
#zookeeper config
export ZOOKEEPER_HOME=/opt/zookeeper-3.6.2
export PATH=$PATH:$ZOOKEEPER_HOME/bin
三臺(tái)虛擬機(jī)均進(jìn)行此操作?
?
創(chuàng)建zookeeper數(shù)據(jù)存放目錄
首先,我們可以使用 ls -l? 命令查看文件權(quán)限,并修改文件權(quán)限
其中? -R? 表示目錄? ?前篇文章已經(jīng)提到?
ls -l
sudo chmod -R 777 /opt/zookeeper-3.6.2
分別在三臺(tái)虛擬機(jī)上執(zhí)行 echo id > /opt/zookeeper-3.6.2/myid? 命令創(chuàng)建 zookeeper 編號(hào)的 myid? 的文件
echo 0 > /opt/zookeeper-3.6.2/myid
echo 1 > /opt/zookeeper-3.6.2/myid
echo 2 > /opt/zookeeper-3.6.2/myid
編輯zoo.cfg配置文件
將? zookeeper? 下載后解壓到當(dāng)前用戶(hù)目錄? opt? ,然后進(jìn)入 zookeeper-3.6.2/conf,將zoo_sample.cfg??文件復(fù)制為 zoo.cfg 并編輯
cd zookeper-3.6.2/conf???????
cp zoo_sample.cfg zoo.cfg???????
vim zoo.cfg
其中 dataDir? 是zookeeper數(shù)據(jù)存放位置,server.y=XXXX:2888:3888??是zookeeper每臺(tái)配置的信息,y代表zookeeper編號(hào)及myid文件對(duì)應(yīng)的內(nèi)容,XXXX是服務(wù)器對(duì)應(yīng)的IP地址或者主機(jī)名
將以上 zookeeper 文件復(fù)制到三臺(tái)服務(wù)器上
scp -r /opt/zookeeper-3.6.2 root@slave1:/opt
scp -r /opt/zookeeper-3.6.2 root@slave2:/opt
?
啟動(dòng)zookeeper
分別在服務(wù)器上執(zhí)行zookeeper服務(wù)啟動(dòng)命令
服務(wù)器1? ? master???????
[root@master bin]# cd /opt/zookeeper-3.6.2/bin/
[root@master bin]# ls
README.txt zkCli.sh zkServer.cmd zkSnapShotToolkit.cmd zkTxnLogToolkit.sh
zkCleanup.sh zkEnv.cmd zkServer-initialize.sh zkSnapShotToolkit.sh
zkCli.cmd zkEnv.sh zkServer.sh zkTxnLogToolkit.cmd
[root@master bin]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
服務(wù)器2? ?slave1???????
[root@slave1 ~]# cd /opt/zookeeper-3.6.2/bin/
[root@slave1 bin]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
服務(wù)器3? ? slave2
[root@slave2 ~]# cd /opt/zookeeper-3.6.2/bin/
[root@slave2 bin]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
我們可以使用? status? ?檢查集群狀態(tài)
master
[root@master bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[root@master bin]#
?slave1
[root@slave1 bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
[root@slave1 bin]#
?slave2
[root@slave2 bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.6.2/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[root@slave2 bin]#
上圖中的? leader? 及? follower? ?是集群自動(dòng)分配
至此 ,zookeeper集群安裝完成。
學(xué)會(huì)了嗎?
?
?
?
HBase完全分布式安裝?
下載HBase安裝包
Apache HBase – Apache HBase Downloadshttps://hbase.apache.org/downloads.html
?
上傳至master虛擬機(jī)并解壓HBase
cd /opt/
tar -zxvf hbase-2.3.3.tar.gz
#修改權(quán)限
sudo chmod -R 777 /opt/hbase-2.3.3
配置環(huán)境變量
[root@master ~]# vim /etc/bashrc
#HBase
export HBASE_HOME=/opt/hbase-2.3.3
export PATH=$PATH:$HBASE_HOME/bin
#配置生效
[root@master ~]# source /etc/bashrc
三臺(tái)虛擬機(jī)均進(jìn)行此操作?
在這里我們可以使用 hbase -version? 查看環(huán)境變量是否正確
[root@master ~]# hbase -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
[root@master ~]#
?
配置hbase相關(guān)文件
修改及配置 hbase-2.3.3/conf? 目錄下的? hbase-env.sh? 文件
[root@master ~]# cd /opt/hbase-3.6.2/conf
[root@master ~]# vim hbase-env.sh
#!/usr/bin/env bash
# Where log files are stored. $HBASE_HOME/logs by default.
# export HBASE_LOG_DIR=${HBASE_HOME}/logs
# Enable remote JDWP debugging of major HBase processes. Meant for Core Developers
# export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8070"
# export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8071"
# export HBASE_THRIFT_OPTS="$HBASE_THRIFT_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8072"
# export HBASE_ZOOKEEPER_OPTS="$HBASE_ZOOKEEPER_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8073"
# export HBASE_REST_OPTS="$HBASE_REST_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8074"
# A string representing this instance of hbase. $USER by default.
# export HBASE_IDENT_STRING=$USER
# The scheduling priority for daemon processes. See 'man nice'.
# export HBASE_NICENESS=10
# The directory where pid files are stored. /tmp by default.
export HBASE_PID_DIR=/opt/hadoop/hadoop/pids
# Seconds to sleep between slave commands. Unset by default. This
# can be useful in large clusters, where, e.g., slave rsyncs can
# otherwise arrive faster than the master can service them.
# export HBASE_SLAVE_SLEEP=0.1
# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
# export HBASE_MANAGES_ZK=true
# The default log rolling policy is RFA, where the log file is rolled as per the size defined for the
# RFA appender. Please refer to the log4j.properties file to see more details on this appender.
# In case one needs to do log rolling on a date change, one should set the environment property
# HBASE_ROOT_LOGGER to "<DESIRED_LOG LEVEL>,DRFA".
# For example:
# HBASE_ROOT_LOGGER=INFO,DRFA
# The reason for changing default to RFA is to avoid the boundary case of filling out disk space as
# DRFA doesn't put any cap on the log size. Please refer to HBase-5655 for more context.
# Tell HBase whether it should include Hadoop's lib when start up,
# the default value is false,means that includes Hadoop's lib.
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
# Override text processing tools for use by these launch scripts.
# export GREP="${GREP-grep}"
# export SED="${SED-sed}"
export JAVA_HOME=/opt/jdk1.8.0_261
export HBASE_HOME=/opt/hbase-2.3.3
export HBASE_MANAGES_ZK=false
其中 HBASE_MANAGES_ZK=false 表示我們使用自己安裝? zookeeper? 集群而不是 hbase 自帶的 zookeeper 集群
修改及配置 hbase-2.3.3/conf 目錄下的 hbase-site.xml 文件
[root@master ~]# vim hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<configuration>
<property>
<name>hbase.root.dir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>./tmp</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/zookeeper-3.6.2</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>300000</value> <!--默認(rèn): 180000 :zookeeper 會(huì)話超時(shí)時(shí)間,單位是毫秒 -->
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>30000</value>
</property>
</configuration>
添加 hbase 集群服務(wù)器的 ip 或者 hostname ,vi regionservers
[root@master ~]# vim regionservers
master
slave1
slave2
將以上? Hbase?文件復(fù)制到三臺(tái)服務(wù)器上
scp -r /opt/hbase-2.3.3 root@slave1:/opt
scp -r /opt/hbase-2.3.3 root@slave2:/opt
完成即可?
?
啟動(dòng)hbase
配置完成hbase后將上面的所有文件復(fù)制到其他兩臺(tái)服務(wù)器上,然后使用? start-hbase.sh? 命令啟動(dòng)hbase集群
[root@master ~]# cd /opt/hbase-2.3.3/bin/
[root@master bin]# ls
considerAsDead.sh hbase-config.cmd master-backup.sh start-hbase.sh
draining_servers.rb hbase-config.sh region_mover.rb stop-hbase.cmd
get-active-master.rb hbase-daemon.sh regionservers.sh stop-hbase.sh
graceful_stop.sh hbase-daemons.sh region_status.rb test
hbase hbase-jruby replication tmp
hbase-cleanup.sh hirb.rb rolling-restart.sh zookeepers.sh
hbase.cmd local-master-backup.sh shutdown_regionserver.rb
hbase-common.sh local-regionservers.sh start-hbase.cmd
[root@master bin]# start-hbase.sh
running master, logging to /opt/hbase-2.3.3/logs/hbase-root-master-master.out
slave1: running regionserver, logging to /opt/hbase-2.3.3/logs/hbase-root-regionserver-slave1.out
slave2: running regionserver, logging to /opt/hbase-2.3.3/logs/hbase-root-regionserver-slave2.out
master: running regionserver, logging to /opt/hbase-2.3.3/logs/hbase-root-regionserver-master.out
[root@master bin]#
在哪臺(tái)服務(wù)器使用上述命令啟動(dòng)則那臺(tái)服務(wù)器即為 master 節(jié)點(diǎn),使用 jps命令查看啟動(dòng)情況
[root@master bin]# jps
7281 ResourceManager
8450 HMaster
6965 SecondaryNameNode
6535 NameNode
8619 HRegionServer
7693 QuorumPeerMain
8943 Jps
?slave1
[root@slave1 bin]# jps
2180 QuorumPeerMain
2509 Jps
1919 DataNode
2351 HRegionServer
[root@slave1 bin]#
slave2
[root@slave2 ~]# jps
3441 QuorumPeerMain
3875 HRegionServer
4040 Jps
3165 DataNode
[root@slave2 ~]#
可以看到服務(wù)器1啟動(dòng)和? HMaster 和 HRegionServer? 進(jìn)程,服務(wù)器2和服務(wù)器3啟動(dòng)和HRegionServer? 進(jìn)程。
至此大功告成?。?!困擾了我一個(gè)月的難題,終于解決了?。?!
???
當(dāng)然,我們也可以通過(guò)Web頁(yè)面查看 Hbase 集群情況 : http://IP:16010
?
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-471133.html
加油(? ?_?)??文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-471133.html
到了這里,關(guān)于VMware創(chuàng)建Linux虛擬機(jī)之(四)ZooKeeper&HBase完全分布式安裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!