部署HDFS HA的環境


===>?環境架構部署規劃:

bigdata1 NameNode ResourceManager Zookeeper JournalNode failOverController

bigdata2 NameNode ResourceManager Zookeeper JournalNode failOverController

bigdata3 DataNode NodeManager Zookeeper

bigdata4 DataNode NodeManager



===>?準備環境:

(*)清除之前的配置

(*)安裝JDK、修改/etc/hosts文件、關閉防火墻、免密碼登錄

###############################################################################

hdfs-site.xml

<!--nameservice 名子

? 此處必須與core-site文件中fs.defaultFS的值一致-->

? <property>

? ? <name>dfs.nameservices</name>

? ? <value>mycluster</value>

? </property>

??

? <!--ns1 下面有兩個 namenode, nn1,nn2-->

? <property>

? ? <name>dfs.ha.namenodes.mycluster</name>

? ? <value>nn1,nn2</value>

? </property>

??

? <!-- nn1,nn2 的rpc 通信地址-->

? <property>

? ? <name>dfs.namenode.rpc-address.mycluster.nn1</name>

? ? <value>bigdata1:8020</value>

? </property>

? <property>

? ? <name>dfs.namenode.rpc-address.mycluster.nn2</name>

? ? <value>bigdata2:8020</value>

? </property>

??

? <!-- nn1, nn2 的 http 通信地址-->

? <property>

? ? <name>dfs.namenode.http-address.mycluster.nn1</name>

? ? <value>bigdata1:50070</value>

? </property>

? <property>

? ? <name>dfs.namenode.http-address.mycluster.nn2</name>

? ? <value>bigdata2:50070</value>

? </property>

??

? ? <!--指定 JournalNode 的日志在 JournalNode 上的存放位置,ns1 表示保存ns1的日志-->

? <property>

? ? <name>dfs.namenode.shared.edits.dir</name>

? ? <value>qjournal://bigdata1:8485;bigdata2:8485/mycluster</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>


? <!-- 配置隔離機制需要ssh免密碼登陸 -->

? <property>

? ? <name>dfs.ha.fencing.ssh.private-key-files</name>

? ? <value>/root/.ssh/id_rsa</value>

? </property>


? <!-- 配置隔離機制超時時間 -->

? <property>

? ? <name>dfs.ha.fencing.ssh.connect-timeout</name>

? ? <value>30000</value>

? </property>

??

? ? <property>

? ? <name>dfs.journalnode.edits.dir</name>

? ? <value>/data/journal</value>

? </property>


? <!--開啟 NameNode 失敗自動切換?

? 這指定應將群集設置為自動故障轉移。在你的core-site.xml文件中,添加:

??

? <property>?

? ? ?<name> ha.zookeeper.quorum </name>?

? ? ?<value> bigdata1:2181,bigdata2:2181,bigdata3:2181 </value>?

? ?</property>-->

? <property>

? ? ?<name> dfs.ha.automatic-failover.enabled </name>

? ? ?<value>true</value>

? </property>

??

###############################################################################

core-site.xml

<!--HDFS數據保存的目錄,默認是Linux的tmp目錄-->

<property>

? <name>hadoop.tmp.dir</name>

? <value>/data/app/hadoop-2.7.1/tmp/</value>

</property>


<!--指定hdfs 的nameservice 為 ns1-->

<property>

? <name>fs.defaultFS</name>

? <value>hdfs://mycluster</value>

</property>


<!--指定zookeeper的地址-->

<property>

? <name>ha.zookeeper.quorum</name>

? <value>bigdata1,bigdata2,bigdata3</value>

</property>


###############################################################################

?mapred-site.xml

<!--MR程序運行的容器是Yarn-->

<property>

? <name>mapreduce.framework.name</name>

? <value>yarn</value>

</property>

###############################################################################

yarn-site.xml

<!--開啟RM 高可靠-->

<property>

? <name>yarn.resourcemanager.ha.enabled</name>

? <value>true</value>

</property>


<!-- 指定RM的cluster id -->

<property>

? <name>yarn.resourcemanager.cluster-id</name>

? <value>yrc</value>

</property>


<!--指定 RM 的名子-->

<property>

? <name>yarn.resourcemanager.ha.rm-ids</name>

? <value>rm1,rm2</value>

</property>


<!-- 分別指定 RM的地址 -->

<property>

? <name>yarn.resourcemanager.hostname.rm1</name>

? <value>bigdata1</value>

</property>

<property>

? <name>yarn.resourcemanager.hostname.rm2</name>

? <value>bigdata2</value>

</property>


<!-- 指定 zk 集群地址 -->

<property>

? <name>yarn.resourcemanager.zk-address</name>

? <value>bigdata1:2181,bigdata2:2181,bigdata3:2181</value>

</property>

<!--NodeManager運行MR任務的方式-->

<property>

? <name>yarn.nodemanager.aux-services</name>

? <value>mapreduce_shuffle</value>

</property>


###############################################################################

slaves

bigdata3

bigdata4

###############################################################################

===>?將配置好的安裝文件拷貝到其它幾臺主機上

scp? -r hadoop-2.7.1? bigdata2:/data/app

scp? -r hadoop-2.7.1? bigdata3:/data/app

scp? -r hadoop-2.7.1? bigdata4:/data/app


===>?啟動journalnode:

hadoop-daemon.sh start journalnode


===>?格式化NameNode

注意,這里需要創建core-site.xml 文件中 hadoop.tmp.dir 所指定的目錄,否則會報錯,

此配置文件指定的目錄為/data/app/hadoop-2.7.1/tmp/,因此需要先創建目錄

mkdir? /data/app/hadoop-2.7.1/tmp/


格式化NameNode

hdfs namenode -format

===>?將 tmp 目錄下的 dfs 目錄拷貝到 bigdata2 中相同的目錄下

scp -r /data/app/hadoop-2.7.1/tmp/dfs? bigdata2:/data/app/hadoop-2.7.1/tmp

===>?格式化 zookeeper(bigdata1):

需啟動 zookeeper 才能執行成功,否則會提示:WARN zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: 拒絕連接

zkServer.sh? start??(在 bigdata1,bigdata2,bigdata3上啟動,即,zookeeper 集群所在的機器)

hdfs zkfc -formatZK

===>?至此,環境部署完畢,啟動整個集群環境:

1. 啟動 zookeeper(bigdata1,bigdata2,bigdata3):

(若不先啟動zookeeper,namenode會全部為standby 狀態)?

zkServer.sh? start

2. 啟動 hdfs 集群:

start-all.sh (在bigdata1上啟動)

yarn-daemon.sh? start? resourcemanager? ?(在 bigdata2 上啟動)

===>?各主機執行 jps 狀態:

##############################################################

[root@bigdata1 app]# jps

22224 JournalNode

22400 DFSZKFailoverController

22786 Jps

22019 NameNode

21405 QuorumPeerMain

22493 ResourceManager

##############################################################

[root@bigdata2 app]# jps

9408 QuorumPeerMain

9747 DFSZKFailoverController

9637 JournalNode

9929 Jps

9850 ResourceManager

9565 NameNode

##############################################################

[root@bigdata3 app]# jps

7664 DataNode

7531 QuorumPeerMain

7900 Jps

7775 NodeManager

##############################################################

[root@bigdata4 ~]# jps

7698 NodeManager

7587 DataNode

7823 Jps

##############################################################

測試:訪問 50070 端口網頁,其中有顯示namenode 的狀態信息(active/ standby)

可以kill 掉 activ 機器的 NameNode 進程,然后查看另一臺 NameNode 的狀態信息



本文轉自 菜鳥的征程 51CTO博客,原文鏈接:http://blog.51cto.com/songqinglong/2064665

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393142.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393142.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393142.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php layui 框架,Thinkphp5+Layui高顏值內容管理框架

Thinkphp5Layui高顏值內容管理框架TP5Layui高顏值內容管理框架&#xff0c;新增API模塊Thinkphp5Layui響應式后臺權限管理系統專注打造好用的框架&#xff0c;極速開發&#xff0c;高效靈活&#xff0c;從架構上兼顧系統復雜度的迭代與需求多變。代碼結構清晰&#xff0c;接口開…

leetcode657. 機器人能否返回原點

在二維平面上&#xff0c;有一個機器人從原點 (0, 0) 開始。給出它的移動順序&#xff0c;判斷這個機器人在完成移動后是否在 (0, 0) 處結束。 移動順序由字符串表示。字符 move[i] 表示其第 i 次移動。機器人的有效動作有 R&#xff08;右&#xff09;&#xff0c;L&#xff…

在Angular專家Dan Wahlin的免費33部分課程中學習Angular

According to the Stack Overflow developer survey 2018, Angular is one of the most popular frameworks/libraries among professional developers. So learning it increases your chances of getting a job as a web developer significantly.根據2018年Stack Overflow開…

select查詢語句執行順序

查詢中用到的關鍵詞主要包含六個&#xff0c;并且他們的順序依次為 select--from--where--group by--having--order by 其中select和from是必須的&#xff0c;其他關鍵詞是可選的&#xff0c;這六個關鍵詞的執行順序 與sql語句的書寫順序并不是一樣的&#xff0c;而是按照下面的…

Python的Virtualenv(虛擬環境)的使用(Windows篇)2

Python的Virtualenv(虛擬環境)的使用&#xff08;Windows篇&#xff09; 2018年04月13日 11:35:01 D_FallMoon 閱讀數 771 版權聲明&#xff1a;版權所有 裝載請注明 …

Loadrunner常用15種的分析點

1.Vusers&#xff1a;提供了生產負載的虛擬用戶運行狀態的相關信息&#xff0c;可以幫助我們了解負載生成的結果。 2.Rendezvous&#xff08;負載過程中集合點下的虛擬用戶&#xff09;&#xff1a;當設置集合點后會生成相關數據&#xff0c;反映了隨著時間的推移各個時間點上并…

leetcode1442. 形成兩個異或相等數組的三元組數目

給你一個整數數組 arr 。 現需要從數組中取三個下標 i、j 和 k &#xff0c;其中 (0 < i < j < k < arr.length) 。 a 和 b 定義如下&#xff1a; a arr[i] ^ arr[i 1] ^ … ^ arr[j - 1] b arr[j] ^ arr[j 1] ^ … ^ arr[k] 注意&#xff1a;^ 表示 按位異…

matlab的獨立樣本t檢驗,獨立雙樣本檢驗的Matlab實現

Independent two-samples test in MatlabYang Runhuai1楊潤懷(1987-)&#xff0c;男&#xff0c;講師&#xff0c;生物3D打印Zhang Zhen1Yang Siqiao1Liang Zhen1梁振(1981-)&#xff0c;男&#xff0c;副教授&#xff0c;臨床工程1、Life Science School, Anhui medical unive…

bi可視化工具_適用于您的BI解決方案的最佳數據可視化和Web報告工具

bi可視化工具通過智能數據分析使復雜變得簡單 (Making the complex simple with smart data analysis) It is hard to overestimate the value of insightful analytics nowadays. All business processes have become data-driven: marketing, accounting, human resources, c…

Python os 屬性(便于跨平臺開發)

1、有助于跨平臺開發的os模塊屬性 >>> tmp os.linesep >>> tmp \n >>> tmp os.sep >>> tmp / >>> tmp os.pathsep >>> tmp : >>> tmp os.curdir >>> tmp . >>> tmp os.pardir >&g…

第一個Hibernate項目

一、構建Hibernate項目 1.新建Java項目HibernateDemo1 2.導入Hibernate下的jar包&#xff08;lib->required下的所有jar包&#xff09;jdbc驅動包 3.導入hibernate.cfg.xml文件到src目錄下&#xff08;在Hibernate文件目錄中搜索*.cfg.xml&#xff09; 配置該文件如下&#…

前端面試常見邏輯題收集及分析

前端面試中常出現一些有趣的邏輯題,初見的時候有可能會手足無措,但實際多看幾個題之后就會有一定的思考邏輯,有種打通任督二脈的感覺.以下是我個人面試經歷以及網絡上收集來的一些經典題目. 題目: 1.現有一個裝有無限水的池塘,你手里有兩個空壺,一個容積為6升,一個為5升,請問你…

php htaccess實現緩存,使用.htaccess進行瀏覽器圖片文件緩存,_PHP教程

使用.htaccess進行瀏覽器圖片文件緩存&#xff0c;對于圖片類網站&#xff0c;每次打開頁面都要重新下載圖片&#xff0c;慢不說&#xff0c;還非常浪費流量。這時就需要用到緩存&#xff0c;強制瀏覽器緩存圖片文件緩存文件&#xff0c;提問網站訪問數度&#xff0c;減少流量消…

leetcode5. 最長回文子串(動態規劃)

給定一個字符串 s&#xff0c;找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。 示例 1&#xff1a; 輸入: “babad” 輸出: “bab” 注意: “aba” 也是一個有效答案。 代碼 class Solution {public String longestPalindrome(String s) {int ns.length(),max-…

aws v2.2.exe_如何在AWS Elastic Beanstalk上部署Rails 5.2 PostgreSQL應用

aws v2.2.exeby Evrim Persembe通過埃夫里姆佩塞姆貝 如何在AWS Elastic Beanstalk上部署Rails 5.2 PostgreSQL應用 (How to deploy a Rails 5.2 PostgreSQL app on AWS Elastic Beanstalk) It’s official, using Heroku for all my Rails projects so far has spoiled me ro…

學習中遇到的c++問題,持續更新

原文請訪問我的博客&#xff1a;http://xiaoshig.sinaapp.com/ 向上取整 使用ceil函數。ceil(x)返回的是大于x的最小整數。如&#xff1a; ceil(2.5) 3 ceil(-2.5) -2 sort排序頭文件#include <algorithm> 數組初始化總結 整型數組初始化&#xff1a;//僅僅能賦值0…

創建郵箱過程中的問題及解決辦法

轉自白手起家博客 http://bbs.chinaunix.net/forum.php?modviewthread&tid770141 說明一下&#xff1a;Q代表安裝過程中遇到的問題&#xff0c;或者是日志中出現的現象。A&#xff1a;代表解決方法。 Q&#xff1a; Jan 13 11:26:29 mail authdaemond: failed to connect …

php的addslashes,PHP addslashes()用法及代碼示例

addslashes()函數是PHP中的內置函數&#xff0c;它返回預定義字符前帶有反斜杠的字符串。該參數中不包含任何指定的字符。預定義的字符是&#xff1a;單引號(’)雙引號(“)反斜杠(\)NULL注意&#xff1a;addslashes()函數不同于addcslashes()函數接受要在其之前添加斜杠的指定字…

如何在React Native中使用Redux Saga監視網絡更改

by Pritish Vaidya通過Pritish Vaidya 如何在React Native中使用Redux Saga監視網絡更改 (How to monitor network changes using Redux Saga in React Native) 為什么要使用Redux Saga監視網絡更改&#xff1f; (Why should I use Redux Saga to monitor Network Changes?) …

leetcode214. 最短回文串(kmp)

給定一個字符串 s&#xff0c;你可以通過在字符串前面添加字符將其轉換為回文串。找到并返回可以用這種方式轉換的最短回文串。 示例 1: 輸入: “aacecaaa” 輸出: “aaacecaaa” 代碼 class Solution {public int getShortestPalindrome(String s) {//求next數組的最后一…