Hadoop高可用安装
Hadoop高可用安裝過程
在Hadoop安裝過程中在配置虛擬機網關地址的時候一定要仔細,千萬不要弄錯了,不然Ping.www.baidu會ping不出來。還有本來老師給了xshell5,然后后來我想試試安裝xshell6可不可以,然后之前的步驟是一直沒有問題的,但是到了傳輸文件的時候就不能傳輸,然后我卸掉了xshell6安裝了xshell5之后就可以了。在Hadoop安裝過程中千萬要做到仔細,不要拼寫錯誤。還有相互免秘鑰一定要成功不然之后的集群會啟動不起來,在出錯的時候,要學會查日志。還有在啟動集群之后千萬不要忘記關閉集群,如果電腦關機了之后集群跑不出來了,千萬崩潰,再來一遍就好了,堅持堅持,很重要。
1、分發jdk到node02、03、04
scp jdk-7u67-linux-x64.rpm node02:pwd
scp jdk-7u67-linux-x64.rpm node03:pwd
scp jdk-7u67-linux-x64.rpm node04:pwd
并在Xshell的全部會話欄里一起ll,看jdk是否發送成功。
2、給node02、03、04分別安裝jdk
分別在node02、03、04上執行rpm安裝命令
rpm -i jdk-7u67-linux-x64.rpm
在node01上cd /etc,在此目錄下把profile文件分發到node02、03、04上。
scp profile node02:pwd
利用Xshell全部會話欄,source /etc/profile
利用Xshell全部會話欄,jps,看02、03、04這三臺機子的jdk是否裝好。
3、同步所有服務器的時間
date查看機子當前的時間。
時間不能差太大,否則集群啟動后某些進程跑不起來。
若時間不同步,
1.yum進行時間同步器的安裝
yum -y install ntp
2.執行同步命令
ntpdate time1.aliyun.com 和阿里云服務器時間同步
4、裝機之前的配置文件檢查
1.cat /etc/sysconfig/network
查看HOSTNAME是否正確
2.cat /etc/hosts
查看IP映射是否正確,若不正確,可以改文件,也可以把node01上的用scp分發過去
3.cat /etc/sysconfig/selinux里是否出現SELINUX=disabled
4.service iptables status查看防火墻是否關閉
5、NN與其他三臺機子的免秘鑰設置
1.在家目錄下 ll -a看下有無.ssh文件,如果沒有就ssh loalhost一下(不能忘記exit)
2.cd .ssh ,并ll查看一下
3.把node01的公鑰發給其他三臺機子
scp id_dsa.pub node02:pwd/node01.pub node02公鑰發送到哪臺機子
node01的公鑰重命名
scp id_dsa.pub node03:pwd/node01.pub
scp id_dsa.pub node04:pwd/node01.pub
4. 在node02的.ssh目錄下ll看是否有node01.pub
如果有,那就追加到authorized_keys
cat node01.pub >> authorized_keys
并且在node01上ssh node02看是否免密鑰了,千萬不要忘了exit
同理給node03、04都追加一下node01.pub,也就是在node03、04的.ssh目錄下執行cat node01.pub >> authorized_keys
5.同理給其他節點發送公鑰并在各個節點上把node01的公鑰追加上
scp id_dsa.pub node03:pwd/node01.pub
scp id_dsa.pub node04:pwd/node01.pub
在node01上分別ssh node02,ssh node03,ssh node04,看是否能免密鑰登錄,每次ssh都別忘了exit
6、兩個NN間互相免密鑰
1.node01與node02間互相免密鑰: node01可免密鑰登錄node02,那現需node02上能免密鑰登node01,所以
在node02上:
ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh localhost驗證一下
分發到node01上:scp id_dsa.pub node01:pwd/node02.pub
在node01的.ssh目錄下,cat node02.pub >> authorized_keys,
在node02上ssh node01驗證一下可否免密鑰登錄
7、修改namenode的一些配置信息
1.vi hdfs-site.xml
?去掉snn的配置
dfs.namenode.secondary.http-address
node03:50090
?增加以下property
<!– 集群名稱mycluster–>
fs.defaultFS
hdfs://mycluster
<!– zookeeper布署的位置–>
ha.zookeeper.quorum
node07:2181,node08:2181,node09:2181
2.vi slaves
node02
node03
node04
3.安裝hadoop
cd /opt ,將其下的tjx目錄分發到node02、03、04
scp -r tjx/ node02:pwd
scp -r tjx/ node03:pwd
scp -r tjx/ node04:pwd
4.將hdfs-site.xml和core-site.xml分發到node02、03、04
scp hdfs-site.xml core-site.xml node02:pwd
scp hdfs-site.xml core-site.xml node03:pwd
scp hdfs-site.xml core-site.xml node04:pwd
8、安裝zookeeper
1、解壓安裝zookeeper
tar xf zookeeper-3.4.6.tar.gz -C /opt/tjx
在node02
2. 修改zookeeper的配置文件 cd /opt/tjx/zookeeper-3.4.6/conf
給zoo_sample.cfg改名 cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
改dataDir=/var/tjx/zk
并在末尾追加
server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888
其中2888主從通信端口,3888是當主掛斷后進行選舉機制的端口
3.把zookeeper分發到其他節點
scp -r zookeeper-3.4.6/ node03:pwd scp -r zookeeper-3.4.6/ node04:pwd
并用ll /opt/tjx檢查下看分發成功沒
4.給每臺機子創建剛配置文件里的路徑
mkdir -p /var/tjx/zk
對node02來說:
echo 1 > /var/tjx/zk/myid
cat /var/tjx/zk/myid
對node03來說:
echo 2 > /var/tjx/zk/myid
cat /var/tjx/zk/myid
對node04來說:
echo 3 > /var/tjx/zk/myid
cat /var/tjx/zk/myid
5.在/etc/profile里面配置
export ZOOKEEPER_HOME=/opt/tjx/zookeeper-3.4.6
export ::PATH=PATH:/usr/java/jdk1.7.067/bin:PATH:/usr/java/jdk1.7.0_67/bin:PATH:/usr/java/jdk1.7.06?7/bin:HADOOP_HOME/bin:HADOOPHOME/sbin:HADOOP_HOME/sbin:HADOOPH?OME/sbin:ZOOKEEPER_HOME/bin
6.然后在把/etc/profile分發到其他node03、node04
scp /etc/profile node03:/etc
scp /etc/profile node04:/etc
在node02、03、04 source /etc/profile,驗證source這句是否完成,輸入zkCli.s,按Tab可以把名字補全zkCli.sh最后把zkCli.sh刪掉)
同理可得03、04
7.啟動zookeeper
在node02中全部會話:zkServer.sh start
接著用zkServer.sh status查看每個zookeeper節點的狀態
8、啟動journalnode
在01、02、03三臺機子上分別把journalnode啟動起來
hadoop-daemon.sh start journalnode
9、格式化任一namenode
選擇node01上執行hdfs namenode -format
然后,啟動剛剛格式化的namenode01
hadoop-daemon.sh start namenode
10、給另一namenode同步數據
給node02另外同步數據
hdfs namenode -bootstrapStandby
11、格式化zkfc
hdfs zkfc -formatZK
在node02上執行zkCli.sh打開zookeeper客戶端看hadoop-ha是否打開 (ls / 查看)
12、啟動hdfs集群
在node01中啟動hdfs集群start-dfs.sh
全部會話jps
用瀏覽器訪問node01:50070和node02:50070
關閉集群命令:stop-dfs.sh(在node01里面)
關閉zookeeper命令:zkServer.sh stop(全部對話框)
啟動hdfs集群
注意:你下一次啟動hdfs集群的時候start-dfs.sh
13、為MapReduce做準備
把mapred-site.xml.template留個備份,并且改下名字
cp mapred-site.xml.template mapred-site.xml
在mapred-site.xml里添加如下property
mapreduce.framework.name
yarn
在yarn-site.xml里添加如下property
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.ha.enabled
true
yarn.resourcemanager.cluster-id
cluster1
yarn.resourcemanager.ha.rm-ids
rm1,rm2
yarn.resourcemanager.hostname.rm1
node03
yarn.resourcemanager.hostname.rm2
node04
yarn.resourcemanager.zk-address
node02:2181,node03:2181,node04:2181
把mapred-site.xml和yarn-site.xml 分發到node02、03、04
scp mapred-site.xml yarn-site.xml node02:pwd
scp mapred-site.xml yarn-site.xml node03:pwd
scp mapred-site.xml yarn-site.xml node04:pwd
由于node03和node04都是resourcemanager,所以它倆應該相互免密鑰
node03上免密鑰登錄node04:
在node03的.ssh目錄下生成密鑰
ssh-keygen -t dsa -P ‘’ -f ./id_dsa
并追加到自己authorized_keys
cat id_dsa.pub >> authorized_keys
用ssh localhost驗證看是否需要密碼,別忘了exit
將node03 的公鑰分發到node04
scp id_dsa.pub node04:pwd/node03.pub
在node04的.ssh目錄下,追加node03.pub
cat node03.pub >> authorized_keys
在node03上ssh node04,看是否免密鑰
node04上免密鑰登錄node03:
在node04的.ssh目錄下生成密鑰
ssh-keygen -t dsa -P ‘’ -f ./id_dsa
并追加到自己authorized_keys
cat id_dsa.pub >> authorized_keys
用ssh localhost驗證看是否需要密碼,別忘了exit
將node04 的公鑰分發到node03
scp id_dsa.pub node03:pwd/node04.pub
在node03的.ssh目錄下,追加node04.pub
cat node04.pub >> authorized_keys
在node04上ssh node03,看是否免密鑰
1.啟動zookeeper,全部會話zkServer.sh start
2.在node01上啟動hdfs,start-dfs.sh
3.在node01上啟動yarn,start-yarn.sh
4.在node03、04上分別啟動resourcemanager,
yarn-daemon.sh start resourcemanager
5.全部會話jps,看進程全不全
在瀏覽器訪問node03:8088,查看resourcemanager管理的內容
14、跑一個wordcount試試
1.cd /opt/tjx/hadoop-2.6.5/share/hadoop/mapreduce
2.在hdfs里建立輸入目錄和輸出目錄
hdfs dfs -mkdir -p /data/in
hdfs dfs -mkdir -p /data/out
3.將要統計數據的文件上傳到輸入目錄并查看
hdfs dfs -put ~/500miles.txt /data/in
hdfs dfs -ls /data/in
4. 運行wordcount(注意:此時的/data/out必須是空目錄
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /data/in /data/out/result
5.查看運行結果
hdfs dfs -ls /data/out/result
hdfs dfs -cat /data/out/result/part-r-00000
15、關閉集群:
node01: stop-dfs.sh
node01: stop-yarn.sh (停止nodemanager)
node03,node04: yarn-daemon.sh stop resourcemanager
Node02、03、04:zkServer.sh stop
16、在Windows下配置hadoop的環境
1.把壓縮包解壓后的這三個文件夾放到一個usr文件夾里,把usr放到一個你知道的地方。
2.“此電腦”右鍵-屬性-高級系統設置
3.更改環境變量,增加HADOOP_HOME(上次就配好了沒有截圖所以我就直接打開了)
4.并且給path后追加HADOOP_HOME的bin目錄,注意:Windows里path的路徑分隔符是分號;,而不是冒號:
5.然后再新建一個變量HADOOP_USER_NAME
6.把hadoop.dll拷貝到以下路徑
7.安裝ecipse-mars,此版本的eclipse帶插件,可以可視化的看到hadoop的一些東西,比較方便
8.如果eclipse界面下方沒有小象圖標,則做后續三步調出上次已做已出現小象)點others
9.在eclipse里把hadoop相關信息填一下(上次已改已填)
(Hos中查哪個namenode是active就填哪一個)
10.這樣在eclipse左側列表的DFS location里新建一個目錄,對應hdfs里也就建好了,可以用瀏覽器查看一下,自己試試。
11.在eclipse里導入自己建一個包庫
12.把jar包導入剛建的包庫
13.把剛建的包庫引入到project里
14.把JUnit包庫引入到project里
15.利用xftp把hdfs-site.xml,core-site.xml等幾個xml放到project的src目錄
16.結果(最后得到的結果如下圖所示)
總結
以上是生活随笔為你收集整理的Hadoop高可用安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为手机大变?余承东被传离职转岗,进军美
- 下一篇: win10 kms激活