hadoop筆記(二)HA環(huán)境搭建

(1)前期準備
1.修改linux主機名稱。
2.修改主機ip苇经。
3.主機和ip進行映射锨推,如果是云主機铅歼,ip對應是公網(wǎng)ip。
4.修改防火墻换可。
5.修改ssh通信
6.安裝jdk,配置環(huán)境變量椎椰。
(2)集群規(guī)劃
主機名 ip 安裝 軟件
hadoop01 192.168.1.201 jdk、hadoop NameNode DFSZKFailoverController
hadoop02 192.168.1.202 jdk沾鳄、hadoop NameNode慨飘、DFSZKFailoverController
hadoop03 192.168.1.203 jdk、hadoop ResourceManager
hadoop04 192.168.1.204 jdk译荞、hadoop瓤的、zookeeper 、DataNode吞歼、NodeManager圈膏、JournalNode、QuorumPeerMain
hadoop05 192.168.1.205 jdk篙骡、hadoop稽坤、zookeeper、DataNode糯俗、NodeManager尿褪、JournalNode、QuorumPeerMain
hadoop06 192.168.1.206 jdk得湘、hadoop杖玲、zookeeper、DataNode淘正、NodeManager摆马、JournalNode、QuorumPeerMain
說明:在hadoop2.0當中鸿吆,有2個namenode組成今膊,一個處于active一個處于stand by 。其中active的namenode對外提供服務伞剑,而standby不提供服務斑唬,只是同步activeNamed的狀態(tài),以便于在在它失敗時候進行快速切換黎泣。
hadoop2.0官方提供了兩種HDFS HA的解決方案恕刘,一種是NFS,另一種是QJM抒倚。這里我們使用簡單的QJM褐着。在該方案中,主備NameNode之間通過一組JournalNode同步元數(shù)據(jù)信息托呕,一條數(shù)據(jù)只要成功寫入多數(shù)JournalNode即認為寫入成功含蓉。通常配置奇數(shù)個JournalNode频敛。這里還配置了一個zookeeper集群,用于ZKFC(DFSZKFailoverController)故障轉(zhuǎn)移馅扣,當Active NameNode掛掉了斟赚,會自動切換Standby NameNode為standby狀態(tài)
(3).安裝配置zooekeeper集群
1.解壓
tar -zxvf zookeeper-3.4.5.tar.gz -C /data/
2.修改配置
cd /data/zookeeper-3.4.5/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改:dataDir=/data/zookeeper-3.4.5/tmp
在最后添加:
server.1=hadoop04:2888:3888
server.2=hadoop05:2888:3888
server.3=hadoop06:2888:3888
保存退出
然后創(chuàng)建一個tmp文件夾
mkdir /data/zookeeper-3.4.5/tmp
再創(chuàng)建一個空文件
touch /data/zookeeper-3.4.5/tmp/myid
最后向該文件寫入ID
echo 1 > /data/zookeeper-3.4.5/tmp/myid
3.將配置好的zookeeper拷貝到其他節(jié)點(首先分別在hadoop05、hadoop06根目錄下創(chuàng)建一個data目錄:mkdir /data)
scp -r /data/zookeeper-3.4.5/ hadoop05:/data/
scp -r /data/zookeeper-3.4.5/ hadoop06:/data/
注意:修改hadoop05差油、hadoop06對應/data/zookeeper-3.4.5/tmp/myid內(nèi)容
hadoop05:
echo 2 > /data/zookeeper-3.4.5/tmp/myid
hadoop06:
echo 3 > /data/zookeeper-3.4.5/tmp/myid

(4)安裝配置hadoop集群
1.解壓 tar -zxvf hadoop-2.2.0.tar.gz -C /data/
2.配置HDFS(hadoop2.0所有的配置文件都z$HADOOP_HOME/etc/hadoop目錄下)
#將hadoop添加到環(huán)境變量中
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_55
export HADOOP_HOME=data/hadoop-2.2.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

        #hadoop2.0的配置文件全部在$HADOOP_HOME/etc/hadoop下
        cd /data/hadoop-2.2.0/etc/hadoop
        
        3.修改hadoo-env.sh
            export JAVA_HOME=/usr/java/jdk1.7.0_55
            
        4.修改core-site.xml
            <configuration>
                <!-- 指定hdfs的nameservice為ns1 -->
                <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://ns1</value>
                </property>
                <!-- 指定hadoop臨時目錄 -->
                <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/data/hadoop-2.2.0/tmp</value>
                </property>
                <!-- 指定zookeeper地址 -->
                <property>
                    <name>ha.zookeeper.quorum</name>
        <value>hadoop04:2181,hadoop05:2181,hadoop06:2181</value>
                </property>
            </configuration>
            
        5.修改hdfs-site.xml
            <configuration>
<!--指定hdfs的nameservice為ns1拗军,需要和core-site.xml中的保持一致 -->
                <property>
                    <name>dfs.nameservices</name>
                    <value>ns1</value>
                </property>
                <!-- ns1下面有兩個NameNode,分別是nn1蓄喇,nn2 -->
                <property>
                    <name>dfs.ha.namenodes.ns1</name>
                    <value>nn1,nn2</value>
                </property>
                <!-- nn1的RPC通信地址 -->
                <property>
                <name>dfs.namenode.rpc-address.ns1.nn1</name>
                    <value>hadoop01:9000</value>
                </property>
                <!-- nn1的http通信地址 -->
                <property>
                <name>dfs.namenode.http-address.ns1.nn1</name>
                    <value>hadoop01:50070</value>
                </property>
                <!-- nn2的RPC通信地址 -->
                <property>
                <name>dfs.namenode.rpc-address.ns1.nn2</name>
                    <value>hadoop02:9000</value>
                </property>
                <!-- nn2的http通信地址 -->
                <property>
                <name>dfs.namenode.http-address.ns1.nn2</name>
                    <value>hadoop02:50070</value>
                </property>
            <!-- 指定NameNode的元數(shù)據(jù)在JournalNode上的存放位置 -->
                <property>
                              <name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://hadoop04:8485;hadoop05:8485;hadoop06:8485/ns1</value>
</property>

<property>
<name>dfs.journalnode.edits.dir</name>
<value>/data/hadoop-2.2.0/journal</value>
</property>

<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>

<property>
<name>dfs.client.failover.proxy.provider.ns1</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>

<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>
</configuration>

        6.修改mapred-site.xml
            <configuration>
                <!-- 指定mr框架為yarn方式 -->
                <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
                </property>
            </configuration>    
        
        7.修改yarn-site.xml
            <configuration>
                <!-- 指定resourcemanager地址 -->
                <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>hadoop03</value>
                </property>
        <!-- 指定nodemanager啟動時加載server的方式為shuffle server -->
                <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
                </property>
            </configuration>
        
            
        8.修改slaves(slaves是指定子節(jié)點的位置发侵,因為要在hadoop01上啟動HDFS、在hadoop03啟動yarn妆偏,所以hadoop01上的slaves文件指定的是datanode的位置刃鳄,hadoop03上的slaves文件指定的是nodemanager的位置)
            hadoop04
            hadoop05
            hadoop06

        9.配置免密碼登陸

首先要配置hadoop01到hadoop02、hadoop03钱骂、hadoop04铲汪、hadoop05、hadoop06的免密碼登陸

            #在hadoop01上生產(chǎn)一對鑰匙
            ssh-keygen -t rsa
            #將公鑰拷貝到其他節(jié)點罐柳,包括自己
            ssh-coyp-id hadoop01
            ssh-coyp-id hadoop02
            ssh-coyp-id hadoop03
            ssh-coyp-id hadoop04
            ssh-coyp-id hadoop05
            ssh-coyp-id hadoop06

        #配置hadoop03到hadoop04掌腰、hadoop05、hadoop06的免密碼登陸
            #在hadoop03上生產(chǎn)一對鑰匙
            ssh-keygen -t rsa
            #將公鑰拷貝到其他節(jié)點
            ssh-coyp-id hadoop04
            ssh-coyp-id hadoop05
            ssh-coyp-id hadoop06
            
            #注意:兩個namenode之間要配置ssh免密碼登陸张吉,別忘了配置hadoop02到hadoop01的免登陸
            在hadoop02上生產(chǎn)一對鑰匙
            ssh-keygen -t rsa
            ssh-coyp-id -i hadoop01             
    
    10.將配置好的hadoop拷貝到其他節(jié)點
        scp -r /itcast/ hadoop02:/
        scp -r /itcast/ hadoop03:/
        scp -r /data/hadoop-2.2.0/ root@hadoop04:/itcast/
        scp -r /data/hadoop-2.2.0/ root@hadoop05:/itcast/
        scp -r /data/hadoop-2.2.0/ root@hadoop06:/itcast/
    
    ###注意:嚴格按照下面的步驟
    11.啟動zookeeper集群(分別在hadoop04齿梁、hadoop05、hadoop06上啟動zk)
        cd /data/zookeeper-3.4.5/bin/
        ./zkServer.sh start
        #查看狀態(tài):一個leader肮蛹,兩個follower
        ./zkServer.sh status
        
    12.啟動journalnode(在itcast01上啟動所有journalnode勺择,注意:是調(diào)用的hadoop-daemons.sh這個腳本,注意是復數(shù)s的那個腳本)
        cd /data/hadoop-2.2.0
        sbin/hadoop-daemons.sh start journalnode

運行jps命令檢驗伦忠,hadoop04省核、hadoop05、hadoop06上多了JournalNode進程

    13.格式化HDFS
        #在itcast01上執(zhí)行命令:
        hdfs namenode -format
#格式化后會在根據(jù)core-site.xml中的hadoop.tmp.dir配置生成個文件昆码,這里我配置的是/data/hadoop-2.2.0/tmp气忠,然后將/data/hadoop-2.2.0/tmp拷貝到hadoop02的/itcast/hadoop-2.2.0/下。
        scp -r tmp/ hadoop02:/data/hadoop-2.2.0/
    
    15.格式化ZK(在haoop01上執(zhí)行即可)
        hdfs zkfc -formatZK
    
    16.啟動HDFS(在hadoop01上執(zhí)行)
        sbin/start-dfs.sh

    17.啟動YARN(#####注意#####:是在hadoop03上執(zhí)行start-yarn.sh赋咽,把namenode和resourcemanager分開是因為性能問題旧噪,因為他們都要占用大量資源,所以把他們分開了脓匿,他們分開了就要分別在不同的機器上啟動)
        sbin/start-yarn.sh

到此淘钟,hadoop2.2.0配置完畢,可以統(tǒng)計瀏覽器訪問:
    http://192.168.1.201:50070
    NameNode 'hadoop01:9000' (active)
    http://192.168.1.202:50070
    NameNode 'hadoop02:9000' (standby)

驗證HDFS HA
    首先向hdfs上傳一個文件
    hadoop fs -put /etc/profile /profile
    hadoop fs -ls /
    然后再kill掉active的NameNode
    kill -9 <pid of NN>
    通過瀏覽器訪問:http://192.168.1.202:50070
    NameNode 'hadoop02:9000' (active)
    這個時候hadoop02上的NameNode變成了active
    在執(zhí)行命令:
    hadoop fs -ls /
    -rw-r--r--   3 root supergroup       1926 2014-02-06 15:36 /profile
    剛才上傳的文件依然存在E阏薄C啄浮勾扭!
    手動啟動那個掛掉的NameNode
    sbin/hadoop-daemon.sh start namenode
    通過瀏覽器訪問:http://192.168.1.201:50070
    NameNode 'hadoop01:9000' (standby)

驗證YARN:
    運行一下hadoop提供的demo中的WordCount程序:
    hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /profile /out

OK,至此結(jié)束L鳌妙色!關(guān)于zookeeper以及HA的問題,后面再詳細說精拟!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市虱歪,隨后出現(xiàn)的幾起案子蜂绎,更是在濱河造成了極大的恐慌,老刑警劉巖笋鄙,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件师枣,死亡現(xiàn)場離奇詭異,居然都是意外死亡萧落,警方通過查閱死者的電腦和手機践美,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來找岖,“玉大人陨倡,你說我怎么就攤上這事⌒聿迹” “怎么了兴革?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蜜唾。 經(jīng)常有香客問我杂曲,道長,這世上最難降的妖魔是什么袁余? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任擎勘,我火速辦了婚禮,結(jié)果婚禮上颖榜,老公的妹妹穿的比我還像新娘棚饵。我一直安慰自己,他們只是感情好掩完,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布蟹地。 她就那樣靜靜地躺著,像睡著了一般藤为。 火紅的嫁衣襯著肌膚如雪怪与。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天缅疟,我揣著相機與錄音分别,去河邊找鬼遍愿。 笑死,一個胖子當著我的面吹牛耘斩,可吹牛的內(nèi)容都是我干的沼填。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼括授,長吁一口氣:“原來是場噩夢啊……” “哼坞笙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起荚虚,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤薛夜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后版述,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梯澜,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年渴析,在試婚紗的時候發(fā)現(xiàn)自己被綠了晚伙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡俭茧,死狀恐怖咆疗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情母债,我是刑警寧澤民傻,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站场斑,受9級特大地震影響漓踢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜漏隐,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一喧半、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧青责,春花似錦挺据、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至产阱,卻和暖如春婉称,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工王暗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留悔据,地道東北人。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓俗壹,卻偏偏與公主長得像科汗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绷雏,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 終極算法 關(guān)注微信號每天收聽我們的消息終極算法為您推送精品閱讀 前言 Hadoop 在大數(shù)據(jù)技術(shù)體系中的地位至關(guān)...
    Yespon閱讀 130,010評論 12 168
  • hadoop2集群搭建詳解------------------------天津九安醫(yī)療電子--吳偉 一头滔、需要軟件 ...
    hogface閱讀 1,821評論 1 4
  • 軟件環(huán)境: 主機配置: 一共m1, m2, m3這五部機, 每部主機的用戶名都為centos 前期準備 1.配置主...
    咸魚翻身記閱讀 1,097評論 0 5
  • 部署規(guī)劃zookeeper集群需要奇數(shù)臺機器,至少需要三臺機器涎显。hadoop集群至少需要2臺機器坤检。因此至少準備三臺...
    Bottle丶Fish閱讀 499評論 0 1
  • 夏天,吃海鮮的好時節(jié)棺禾,想想自己左手一盆麻辣小龍蝦缀蹄,右手一只大閘蟹峭跳,那個美滋滋的膘婶。 作為一名溫州人,海鮮是我生活中必...
    吃與不吃差個不閱讀 435評論 0 0