作為Hadoop初學(xué)者,自然要從安裝入手。而hadoop的優(yōu)勢(shì)就是分布式,所以,也一定要安裝分布式的系統(tǒng)。
整體安裝步驟,包括Zookeeper+HDFS+Hbase,為了文章簡(jiǎn)潔,我會(huì)分三篇blog記錄我的安裝步驟。
本文記錄的是集群環(huán)境準(zhǔn)備,zookeeper的安裝步驟。
~~~~~~~~~~~環(huán)境準(zhǔn)備部分~~~~~~~~~~~~~~~~~
IP部署規(guī)劃(準(zhǔn)備了三個(gè)虛擬機(jī),操作系統(tǒng)是Centos6.7)
Zookeeper主機(jī)分配
192.168.67.101 c6701 192.168.67.102 c6702 192.168.67.103 c6703
HDFS主機(jī)分配
192.168.67.101 c6701 --Namenode+datanode 192.168.67.102 c6702 --datanode 192.168.67.103 c6703 --datanode
Hbase主機(jī)分配
192.168.67.101 c6701 --Master + region 192.168.67.102 c6702 --region 192.168.67.103 c6703 --region
1. 為了分別管理各個(gè)服務(wù),我為每個(gè)服務(wù),都單獨(dú)創(chuàng)建了用戶(hù).
創(chuàng)建的用戶(hù)有:
zk hdfs hbase
2. 為每一個(gè)用戶(hù)創(chuàng)建ssh免密,并分發(fā)到全部節(jié)點(diǎn),這樣,我就只在C6701上執(zhí)行命令,通過(guò)遠(yuǎn)程的方式安裝C6702和C6703
ssh-keygen -t rsa -f ~/.ssh/id_rsa
拷貝密鑰到全部節(jié)點(diǎn)即可(只有c6701訪問(wèn)02和03不需要密碼,反向訪問(wèn)是需要密碼的)
ssh-copy-id c6701 ssh-copy-id c6702 ssh-copy-id c6703
3. 強(qiáng)調(diào)一下,/etc/hosts 需要設(shè)置
[root@c6701 ~]# more /etc/hosts 192.168.67.101 c6701.org c6701 192.168.67.102 c6702.org c6702 192.168.67.103 c6703.org c6703
4. 下面在C6701執(zhí)行,中間會(huì)調(diào)用ssh遠(yuǎn)程執(zhí)行一些命令,驗(yàn)證ssh免密是否生效
ssh c6702 "cat /proc/cpuinfo" ssh c6702 "hostname"
5. 下載安裝軟件(內(nèi)網(wǎng)地址)
cd /tmp/software wget http://192.21.104.48/deploy/jdk-8u144-linux-x64.tar.gz wget http://192.21.104.48/deploy/zookeeper-3.4.6.tar.gz wget http://192.21.104.48/deploy/hbase-1.1.3.tar.gz wget http://192.21.104.48/deploy/hadoop-2.6.0-EDH-0u2.tar.gz wget http://192.21.104.48/deploy/hadoop-2.7.1.tar.gz
6. 安裝JDK,全部節(jié)點(diǎn)都要安裝
#tar -xzvf jdk-8u144-linux-x64.tar.gz -C /usr/local
7. 添加下面信息到.bash_profile
export JAVA_HOME=/usr/local/jdk1.8.0_144 export JRE_HOME=/usr/local/jdk1.8.0_144/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH source /etc/profile
8. 檢查版本信息
# java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
~~~~~~~~~~~zookeeper的安裝部分~~~~~~~~~~~~~~~~~
1. 在C6701安裝Zookeeper
useradd zk echo "zk:zk" | chpasswd su - zk mkdir zk tar -zxvf /tmp/software/zookeeper-3.4.6.tar.gz -C /home/zk/zk
~~~~~~~~~~~~~zoo.cfg的配置~~~~~~~~~~~~~~~ $ pwd /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg $ cat /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg |grep -v '^#' tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/zookeeper/data dataLogDir=/data/zookeeper/log clientPort=2181 autopurge.snapRetainCount=3 autopurge.purgeInterval=6 server.1=c6701:2888:3888 server.2=c6702:2888:3888 server.3=c6703:2888:3888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2. 根據(jù)zoo.cfg創(chuàng)建data和log兩個(gè)文件夾
#mkdir -p /data/zookeeper/data #mkdir -p /data/zookeeper/log #chown -R zk:zk /data/zookeeper #chown -R zk:zk /data/zookeeper/data #chown -R zk:zk /data/zookeeper/log
3.在zookeeper的目錄中,創(chuàng)建上述兩個(gè)文件夾。進(jìn)入zkdata文件夾,創(chuàng)建文件myid,填入1。這里寫(xiě)入的1,是在zoo.cfg文本中的server.1中的1。當(dāng)我們把所有文件都配置完畢,我們把hadoop1中yarn目錄復(fù)制到其它機(jī)器中,我們?cè)谛薷拿颗_(tái)機(jī)器中對(duì)應(yīng)的myid文本,hadoop2中的myid寫(xiě)入2。其余節(jié)點(diǎn),安照上面配置,依此寫(xiě)入相應(yīng)的數(shù)字。Zkdatalog文件夾,是為了指定zookeeper產(chǎn)生日志指定相應(yīng)的路徑。
# su - zk -c "echo 1 > /data/zookeeper/data/myid"
4. 添加環(huán)境變量,在/etc/profile目錄中,將ZOOKEEPER_HOME/bin在原有的PATH后面加入":$ZOOKEEPER_HOME/bin"
關(guān)于環(huán)境變量修改/etc目錄下的profile文件,也可以在根目錄下的.bashrc目錄下添加環(huán)境變量。這兩者有什么區(qū)別:.bashrc是對(duì)當(dāng)前目錄用戶(hù)的環(huán)境變量,profile文件是對(duì)所有用戶(hù)都開(kāi)放的目錄。當(dāng)系統(tǒng)加載文件中,先從profile找相應(yīng)的路勁,如果沒(méi)有會(huì)在.bashrc文件中找對(duì)應(yīng)的環(huán)境變量路徑。這兩者大家稍至了解。
然后 source /etc/profile
5. 安裝c6702的zookeeper
#ssh c6702 "useradd zk" #ssh c6702 "echo "zk:zk" | chpasswd"
為zk用戶(hù)ssh免密
#ssh-copy-id zk@c6702
拷貝軟件
#scp -r /tmp/software/hadoop-* root@c6702:/tmp/software #ssh c6702 "chmod 777 /tmp/software/*"
創(chuàng)建目錄,解壓軟件
#ssh zk@c6702 "mkdir zk" #ssh zk@c6702 "tar -zxvf /tmp/software/zookeeper-3.4.6.tar.gz -C /home/zk/zk" #ssh zk@c6702 "ls -al zk" #ssh zk@c6702 "ls -al zk/zookeeper*" #ssh zk@c6702 "rm /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg" #scp -r /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg zk@c6702:/home/zk/zk/zookeeper-3.4.6/conf/. #ssh zk@c6702 "cat /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg |grep -v '^#'" 根據(jù)zoo.cfg創(chuàng)建目錄 #ssh c6702 "mkdir -p /data/zookeeper/data" #ssh c6702 "chown -R zk:zk /data/zookeeper" #ssh c6702 "chown -R zk:zk /data/zookeeper/data" #ssh c6702 "mkdir -p /data/zookeeper/log" #ssh c6702 "chown -R zk:zk /data/zookeeper/log" 創(chuàng)建文件myid,填入2 ssh zk@c6702 "echo 2 > /data/zookeeper/data/myid"
6. 安裝c6703的zookeeper
#ssh c6703 "useradd zk" #ssh c6703 "echo "zk:zk" | chpasswd"
為zk用戶(hù)ssh免密
ssh-copy-id zk@c6703
拷貝軟件
#scp -r /tmp/software/hadoop-* root@c6703:/tmp/software #ssh c6703 "chmod 777 /tmp/software/*"
創(chuàng)建目錄,解壓軟件
#ssh zk@c6703 "mkdir zk" #ssh zk@c6703 "tar -zxvf /tmp/software/zookeeper-3.4.6.tar.gz -C /home/zk/zk" #ssh zk@c6703 "ls -al zk" #ssh zk@c6703 "ls -al zk/zookeeper*" #ssh zk@c6703 "rm /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg" #scp -r /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg zk@c6703:/home/zk/zk/zookeeper-3.4.6/conf/. #ssh zk@c6703 "cat /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg |grep -v '^#'"
根據(jù)zoo.cfg創(chuàng)建目錄
#ssh c6703 "mkdir -p /data/zookeeper/data" #ssh c6703 "chown -R zk:zk /data/zookeeper" #ssh c6703 "chown -R zk:zk /data/zookeeper/data" #ssh c6703 "mkdir -p /data/zookeeper/log" #ssh c6703 "chown -R zk:zk /data/zookeeper/log" 創(chuàng)建文件myid,填入3 ssh zk@c6703 "echo 3 > /data/zookeeper/data/myid"
7. 啟動(dòng)ZK
/home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh start /home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh status
遠(yuǎn)程啟動(dòng)命令
ssh zk@c6702 "/home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh\ start" ssh zk@c6703 "/home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh\ start" ssh zk@c6702 "/home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh\ status" ssh zk@c6703 "/home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh\ status"
8. 沒(méi)有全部啟動(dòng)三個(gè)ZK前的狀態(tài)
[vagrant@c7003 bin]$ ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /home/vagrant/zookeeper-3.4.10/bin/../conf/zoo.cfg Error contacting service. It is probably not running.
9. 需要將三個(gè)ZK全啟動(dòng)之后,才能選舉出leader
$ ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /home/vagrant/zookeeper-3.4.10/bin/../conf/zoo.cfg Mode: follower [vagrant@c7002 bin]$ ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /home/vagrant/zookeeper-3.4.10/bin/../conf/zoo.cfg Mode: leader
=======2018.1.13更新==========
客戶(hù)端連接方式
客戶(hù)端是隨機(jī)順序的方式連接server的,無(wú)法指定,或者優(yōu)先讀哪個(gè)一個(gè)zookeeper server。
./zkCli.sh -server c6701:2181,c6702:2181,c6703:2181
輸出如下:
第一次連接,連接到c6701上
[zookeeper@c6702 bin]$ /usr/local/hadoop/zookeeper-3.4.6/bin/zkCli.sh -server c6701:2181,c6702:2181,c6703:2181 Connecting to c6701:2181,c6702:2181,c6703:2181 ...... 2018-01-11 21:07:30,797 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=c6701:2181,c6702:2181,c6703:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@4b4bc1e Welcome to ZooKeeper! 2018-01-11 21:07:30,830 [myid:] - INFO [main-SendThread(c6701.python279.org:2181):ClientCnxn$SendThread@975] - Opening socket connection to server c6701.python279.org/192.168.67.101:2181. Will not attempt to authenticate using SASL (unknown error) JLine support is enabled 2018-01-11 21:07:30,873 [myid:] - INFO [main-SendThread(c6701.python279.org:2181):ClientCnxn$SendThread@852] - Socket connection established to c6701.python279.org/192.168.67.101:2181, initiating session 2018-01-11 21:07:30,916 [myid:] - INFO [main-SendThread(c6701.python279.org:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server c6701.python279.org/192.168.67.101:2181, sessionid = 0x160e70285f70001, negotiated timeout = 30000 WATCHER:: WatchedEvent state:SyncConnected type:None path:null
第二次連接,連接到c6702上
Connecting to c6701:2181,c6702:2181,c6703:2181 ...... 2018-01-11 21:10:18,442 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=c6701:2181,c6702:2181,c6703:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@4b4bc1e Welcome to ZooKeeper! 2018-01-11 21:10:18,489 [myid:] - INFO [main-SendThread(c6702.python279.org:2181):ClientCnxn$SendThread@975] - Opening socket connection to server c6702.python279.org/192.168.67.102:2181. Will not attempt to authenticate using SASL (unknown error) JLine support is enabled 2018-01-11 21:10:18,508 [myid:] - INFO [main-SendThread(c6702.python279.org:2181):ClientCnxn$SendThread@852] - Socket connection established to c6702.python279.org/192.168.67.102:2181, initiating session 2018-01-11 21:10:18,561 [myid:] - INFO [main-SendThread(c6702.python279.org:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server c6702.python279.org/192.168.67.102:2181, sessionid = 0x260e70284650002, negotiated timeout = 30000 WATCHER:: WatchedEvent state:SyncConnected type:None path:null
至此,基礎(chǔ)環(huán)境部署完。并且zookeeper也安裝完成。下面我們會(huì)在下一篇文章中,繼續(xù)安裝HDFS。
系列文章,請(qǐng)參考
Hadoop集群(一) Zookeeper搭建
Hadoop集群(二) HDFS搭建
Hadoop集群(三) Hbase搭建
Hadoop集群(四) Hadoop升級(jí)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
文章名稱(chēng):Hadoop集群(一)Zookeeper搭建-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://chinadenli.net/article12/cdgjdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、定制網(wǎng)站、App開(kāi)發(fā)、靜態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容