1. 程式人生 > >3臺虛擬機器搭建Hadoop HA

3臺虛擬機器搭建Hadoop HA

1.修改Linux主機名 2.修改IP 3.修改主機名和IP的對映關係 4.關閉防火牆 5.ssh免登陸 6.安裝JDK,配置環境變數等 叢集規劃: 主機名 IP 安裝的軟體 執行的程序 3臺虛擬機器 node1 jdk、hadoop、zookeeper zookeeper journalnode namenode zkfc resourcemanager datanode nodemanager node2 jdk、hadoop、zookeeper zookeeper journalnode namenode zkfc resourcemanager datanode nodemanager node3 jdk、hadoop、zookeeper zookeeper journalnode datanode nodemanager 說明: 1.在hadoop2.0中通常由兩個NameNode組成,一個處於active狀態,另一個處於standby狀態。Active NameNode對外提供服務,而Standby NameNode則不對外提供服務,僅同步active namenode的狀態,以便能夠在它失敗時快速進行切換。 hadoop2.0官方提供了兩種HDFS HA的解決方案,一種是NFS,另一種是QJM。這裡我們使用簡單的QJM。在該方案中,主備NameNode之間通過一組JournalNode同步元資料資訊,一條資料只要成功寫入多數JournalNode即認為寫入成功。通常配置奇數個JournalNode 這裡還配置了一個zookeeper叢集,用於ZKFC(DFSZKFailoverController)故障轉移,當Active NameNode掛掉了,會自動切換Standby NameNode為standby狀態 2.hadoop-2.2.0中依然存在一個問題,就是ResourceManager只有一個,存在單點故障,hadoop-2.4.1解決了這個問題,有兩個ResourceManager,一個是Active,一個是Standby,狀態由zookeeper進行協調 安裝步驟: 1.安裝配置zooekeeper叢集(在demo1上) 1.1解壓 tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local 1.2修改配置 cd /usr/local/zookeeper-3.4.5/conf/ cp zoo_sample.cfg zoo.cfg vim zoo.cfg 修改:dataDir=/usr/local/zookeeper-3.4.5/tmp 在最後新增: server.1=demo:2888:3888 server.2=demo2:2888:3888 server.3=demo3:2888:3888 儲存退出 然後建立一個tmp資料夾 mkdir /usr/local/zookeeper-3.4.5/tmp 再建立一個空檔案 touch /usr/local/zookeeper-3.4.5/tmp/myid 最後向該檔案寫入ID echo 1 > /usr/local/zookeeper-3.4.5/tmp/myid 1.3將配置好的zookeeper拷貝到其他節點 scp -r /usr/local/zookeeper-3.4.5/ demo2:/usr/local/ scp -r /usr/local/zookeeper-3.4.5/ demo3:/usr/local/ 注意:修改weekend06、weekend07對應/weekend/zookeeper-3.4.5/tmp/myid內容 weekend06: echo 2 > /usr/local/zookeeper-3.4.5/tmp/myid weekend07: echo 3 > /usr/local/zookeeper-3.4.5/tmp/myid 2.安裝配置hadoop叢集(在weekend01上操作) 2.1解壓 tar -zxvf hadoop-2.4.1.tar.gz -C /usr/local/ 2.2配置HDFS(hadoop2.X所有的配置檔案都在$HADOOP_HOME/etc/hadoop目錄下) #將hadoop新增到環境變數中 vim /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0_141 export HADOOP_HOME=/usr/local/hadoop-2.7.3 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbinll #hadoop2.x的配置檔案全部在$HADOOP_HOME/etc/hadoop下 cd /usr/local/hadoop-2.7.3/etc/hadoop 2.2.1修改hadoo-env.sh export JAVA_HOME=/usr/local/jdk1.8.0_141 2.2.2修改core-site.xml <configuration> <!-- 指定hdfs的nameservice為mycluster --> <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <!-- 指定hadoop臨時目錄 --> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/dfs</value> </property> <!-- 指定zookeeper地址 --> <property> <name>ha.zookeeper.quorum</name> <value>dome1:2181,dome2:2181,dome3:2181</value> </property> </configuration> 2.2.3修改hdfs-site.xml <configuration> <!--指定hdfs的nameservice為mycluster,需要和core-site.xml中的保持一致 --> <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <!-- mycluster下面有兩個NameNode,分別是nn1,nn2 --> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <!-- nn1的RPC通訊地址 --> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>dome1:9000</value> </property> <!-- nn1的http通訊地址 --> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>dome1:50070</value> </property> <!-- nn2的RPC通訊地址 --> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>dome2:9000</value> </property> <!-- nn2的http通訊地址 --> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>dome2:50070</value> </property> <!-- 指定NameNode的元資料在JournalNode上的存放位置 --> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://dome1:8485;dome2:8485;dome3:8485/mycluster</value> </property> <!-- 指定JournalNode在本地磁碟存放資料的位置 --> <property> <name>dfs.journalnode.edits.dir</name> <value>/usr/local/hadoop/journaldata</value> </property> <!-- 開啟NameNode失敗自動切換 --> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> <!-- 配置失敗自動切換實現方式 --> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <!-- 配置隔離機制方法,多個機制用換行分割,即每個機制暫用一行--> <property> <name>dfs.ha.fencing.methods</name> <value> sshfence shell(/bin/true) </value> </property> <!-- 使用sshfence隔離機制時需要ssh免登陸 --> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/hadoop/.ssh/id_rsa</value> </property> <!-- 配置sshfence隔離機制超時時間 --> <property> <name>dfs.ha.fencing.ssh.connect-timeout</name> <value>30000</value> </property> </configuration> 2.2.4修改mapred-site.xml <configuration> <!-- 指定mr框架為yarn方式 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 2.2.5修改yarn-site.xml <configuration> <!-- 開啟RM高可用 --> <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <!-- 指定RM的cluster id --> <property> <name>yarn.resourcemanager.cluster-id</name> <value>zlf</value> </property> <!-- 指定RM的名字 --> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> <!-- 分別指定RM的地址 -->sl ` SL <property> <name>yarn.resourcemanager.hostname.rm1</name> <value>dome1</value> </property> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>dome2</value> </property> <!-- 指定zk叢集地址 --> <property> <name>yarn.resourcemanager.zk-address</name> <value>dome1:2181,dome2:2181,dome3:2181</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> 2.2.6修改slaves demo1 demo2 demo3 2.2.7配置免密碼登陸 #首先要配置demo1到demo1、demo2、demo3的免密碼登陸 #配置demo2到demo1、demo2、demo3的免密碼登陸 2.4將配置好的hadoop拷貝到其他節點 scp -r /usr/local/hadoop [email protected]:/usr/local/ scp -r /usr/local/hadoop [email protected]:/usr/local/ ###注意:嚴格按照下面的步驟 2.5啟動zookeeper叢集(分別在demo1,demo2,demo3上啟動zk) cd /usr/local/zookeeper-3.4.6/bin/ ./zkServer.sh start #檢視狀態:一個leader,兩個follower ./zkServer.sh status 2.6啟動journalnode(分別在在demo1,demo2,demo3上執行) cd /usr/local/hadoop-2.7.3 sbin/hadoop-daemon.sh start journalnode #執行jps命令檢驗,demo1,demo2.demo3上多了JournalNode程序 2.7格式化HDFS #在demo1上執行命令: hdfs namenode -format #格式化後會在根據core-site.xml中的hadoop.tmp.dir配置生成個檔案,這裡我配置的是/usr/local/hadoop-2.7.3/dfs,然後將/usr/local/hadoop-2.7.3/dfs拷貝到demo2的/usr/local/hadoop-2.7.3/下。 scp -r dfs/ dome2:/usr/local/hadoop/ 2.8格式化ZKFC(在demo1上執行即可) hdfs zkfc -formatZK 2.9啟動HDFS(在demo1上執行) sbin/start-dfs.sh 2.10啟動YARN(#####注意#####:在demo1上執行start-yarn.sh,並且手動在demo2上執行yarn-demon.sh start resourcemanager sbin/start-yarn.sh yarn-daemon.sh start resourcemanager(demo2上手動啟動) yya 到此,hadoop-2.7.3 HA配置完畢,可以統計瀏覽器訪問: http://demo1:50070 NameNode 'demo1:9000' (active) http://demo2:50070 NameNode 'demo2:9000' (standby) 驗證HDFS HA 首先向hdfs上傳一個檔案 hadoop fs -put /etc/profile /profile hadoop fs -ls / 然後再kill掉active的NameNode kill -9 <pid of NN> 通過瀏覽器訪問:http://demo2:50070 NameNode 'demo2:9000' (active) 這個時候weekend02上的NameNode變成了active 在執行命令: hadoop fs -ls / 剛才上傳的檔案依然存在!!! 手動啟動那個掛掉的NameNode sbin/hadoop-daemon.sh start namenode 通過瀏覽器訪問:http://demo1:50070 NameNode 'demo1:9000' (standby) 驗證YARN: 執行一下hadoop提供的demo中的WordCount程式: hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /profile /out 驗證YARN:HA 開啟http://demo1:8088 頁面可以顯示ResourceManager HA state: active 開啟http://demo2:8080 頁面自動跳轉http://demo1:8088 (window上hosts檔案需配置ip對映關係,否則無法訪問網頁) kill -9 <demo1上resourcemanger> weekend02上的 http://demo2:8080 頁面可以顯示ResourceManager HA state: active 手動啟動demo1上的resourcemanger http://demo1:8088 頁面上顯示ResourceManager HA state: standby OK,大功告成!!! 測試叢集工作狀態的一些指令 : bin/hdfs dfsadmin -report 檢視hdfs的各節點狀態資訊 bin/hdfs haadmin -getServiceState nn1 獲取一個namenode節點的HA狀態 sbin/hadoop-daemon.sh start namenode 單獨啟動一個namenode程序 ./hadoop-daemon.sh start zkfc 單獨啟動一個zkfc程序

相關推薦

使用3虛擬機器搭建Hadoop HA叢集(1)

系列部落格目錄連結:Hadoop權威指南學習筆記:總章 基礎環境搭建:使用3臺虛擬機器搭建Hadoop HA叢集(1) HA環境搭建:使用3臺虛擬機器搭建Hadoop HA叢集(2) 工欲善其事,必先利其器,要學好大資料,就必須首先學會自己動手

使用3虛擬機器搭建Hadoop HA叢集(2)

系列部落格目錄連結:Hadoop權威指南學習筆記:總章 基礎環境搭建:使用3臺虛擬機器搭建Hadoop HA叢集(1) HA環境搭建:使用3臺虛擬機器搭建Hadoop HA叢集(2) 本部分包含以下基本分內容 安裝部署zookeeper

3虛擬機器搭建Hadoop HA

1.修改Linux主機名 2.修改IP 3.修改主機名和IP的對映關係 4.關閉防火牆 5.ssh免登陸 6.安裝JDK,配置環境變數等 叢集規劃: 主機名 IP 安裝的軟體 執行的程序 3臺虛擬機器 node1 jdk、hadoop、zookeeper zookee

大資料基礎環境之hbase(3虛擬機器

hbase安裝   注意開啟hbase之前,需要將之前的hadoop叢集開啟 start-all.sh (啟動hadoop) zkServer.sh start(各個節點均執行) 1.同樣先建立工作路徑/usr/hbase,將/opt/soft下的hbase加壓到工作路

利用虛擬機器搭建hadoop叢集

概述 在搭建hadoop叢集時,主要參考了網上的幾篇部落格,但也遇到一些問題。 點選原文 問題一:core-site.xml檔案中的錯誤 <property> <name>hadoop.tmp.dir</name>

虛擬機器搭建hadoop叢集

1.虛擬機器安裝系統(個人安裝系統是centos 6.x final版) 1.在虛擬機器安裝了三個系統(centos 6.x final版的)目前兩個都是安裝的,一個是在檔案複製的。 2. 安裝完系統後開始安裝rz命令包(由於系統在window系統用crt操作linux系

微信棋牌原始碼虛擬機器搭建Hadoop叢集

虛擬機器搭建Hadoop叢集安裝包準備作業系統:ubuntu-16.04.3-desktop-amd64.iso軟體包:VirtualBox安裝包:hadoop-3.0.0.tar.gz,jdk-8u161-linux-x64.tar.gz1. 環境準備使用VirtualBo

阿里雲虛擬機器搭建Hadoop-2.6.0-cdh5.7.1安裝詳解(偽分散式環境)

首先先搭配安全組 開啟映象後輸入以下內容:             重要:  yum -y install lrzsz HOSTNAME=(自己的主機名字) hostname $HOSTNAME echo "$(grep -E '127|::1' /etc/host

大資料基礎環境之kafka(3虛擬機器

Kafka叢集: 首先,下載解壓壓縮包 kafka_2.11-2.0.0.tgz 到 /usr/kafka/ 配置/usr/kafka/kafka_2.11-2.0.0/config/server.properties檔案: 開啟監聽埠(開啟這一行註釋):

虛擬機器搭建zookeeper叢集

一、什麼是zookeeper(摘自百度百科) ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務

基於Virtualbox虛擬機器搭建hadoop叢集環境

1.1安裝centos7 在centos官網下載centos7映象檔案,在Virtualbox軟體中匯入映象檔案進行安裝,本次由於實驗環境限制,只安裝了三臺centos7虛擬機器,分別命名為hadoop1,hadoop2,hadoop3,為保證三臺虛擬機器能夠正常通訊,三臺

zookeeper-3.4.7 環境搭建 (偽分散式環境三虛擬機器

樓主小白 ,本帖給自已以後重灌留點記憶。希望能幫到他人。本人實驗切實可行 。環境準備 hadoop-2.7.5(搭建完成) ,centos 6.5  ,zookeeper-3.4.7.tar.gz  1.準備安裝目錄為 /home/ywh   (cd )  2.解壓縮 zoo

搭建3個節點的hadoop叢集(完全分散式部署)--1 安裝虛擬機器hadoop元件

昨晚搞到晚上11.30,終於把hadoop元件安裝好了,執行試了下,正常...這裡記錄下完全分散式hadoop叢集的搭建步驟。1.VWMare平臺安裝之前已經安裝好了,這裡不詳細說明。2.安裝CentOS虛擬機器1)下載好centos ISO安裝檔案,我安裝的是centos6

Centos 7下VMware三虛擬機器Hadoop叢集初體驗

一、下載並安裝Centos 7   傳送門:https://www.centos.org/download/      注:下載DVD ISO映象 這裡詳解一下VMware安裝中的兩個過程 網絡卡配置 二、SecureCRT遠端操控 p

虛擬機器搞定負載均衡lvs-NAT模式和lvs-DR模式搭建

首先來說一下負載均衡,為了解決一個伺服器不能支撐大併發量使用者的訪問,所以通過負載均衡的方法來解決這個問題,負載均衡有兩種實現方案,一種是通過硬體來實現可以購買 f5裝置,一種是通過軟體來實現如lvs、nginx等,由於lvs直接是linux系統核心級別的,實現起來方便所以仙子主要講解lvs實現

VMware 下Hadoop叢集環境搭建虛擬機器克隆,Hadoop環境配置

在上一篇我們完成了ContOS網路配置以及JDK的安裝,這一篇將在上一篇的基礎上繼續講解虛擬機器的克隆,hadoop環境搭建 虛擬機器克隆. 利用上一篇已經完成網路配置和jdk安裝的虛擬機器在克隆兩臺虛擬機器. 1. 將擬機hadoop01關機.

虛擬機器搭建叢集(三虛擬機器

1、將各節點的IP和hostname加入到每個節點的/etc/hosts中 echo 192.168.63.141 admin-node >> /etc/hosts echo 192.168.63.142 ceph-node1 >> /etc/

機器搭建Hadoop叢集

上的各種守護程序的。這就必須在節點之間執行指令的時候是不需要輸入密碼的形式,故我們需要配置SSH運用無密碼公鑰認證的形式,這樣NameNode使用SSH無密碼登入並啟動DataName程序,同樣原理,DataNode上也能使用SSH無密碼登入到 NameNode。

kubernetes 簡單叢集搭建(2虛擬機器

之前做的實驗都是單臺伺服器上進行,最近做到需要在其它節點部署pod master部署可以參考之前的文件,node節點上只需要啟動兩個程序。首先安裝軟體:yum install etcd kubernetes -y 兩臺節點ip: 192.168.1.82

ubuntu 16.04搭建hadoop2.7.2(Vmware 12.0搭建完全分散式三虛擬機器)

此做法無實際意義,只是用來學習搭建過程和了解hadoop相關配置。 版本:Ubuntu16.04  hadoop2.7.2(一臺電腦開三臺虛擬機器完全分散式) 主結點:192.168.150.112 Caxiongyu1 從結點:192.168.150.113 Caix