簡短使用的HADOOP2版本的安裝配置

hadoop2.0已經發布了穩定版本了,增加了很多特性,比如HDFS HAYARN等。

注意:apache提供的hadoop-2.2.0的安裝包是在32位操作系統編譯的,因爲hadoop依賴一些C++的本地庫,

所以如果在64位的操作上安裝hadoop-2.2.0就需要重新在64操作系統上重新編譯

前期準備就不詳細說了,前邊的都有

1.修改Linux主機名

2.修改IP

3.修改主機名和IP的映射關係

4.關閉防火牆

5.ssh免登陸

6.安裝JDK,配置環境變量等

集羣規劃:

         主機名                IP                                 安裝的軟件                                   運行的進程

         hadoop01         192.168.1.201  hadoopzookkeeper                 NameNodeDataNodeQuorumPeerMainJournalNodeDFSZKFailoverControllerResourceManagerNodeManager

         hadoop02         192.168.1.202  hadoopzookkeeper                 NameNodeDataNodeQuorumPeerMainJournalNodeDFSZKFailoverControllerNodeManager

         hadoop03         192.168.1.203  hadoopzookkeeper                 DataNodeQuorumPeerMainJournalNodeNodeManager

 

說明:

         hadoop2.0中通常由兩個NameNode組成,一個處於active狀態,另一個處於standby狀態。Active NameNode對外提供服務,而Standby NameNode則不對外提供服務,僅同步active namenode的狀態,以便能夠在它失敗時快速進行切換。

         hadoop2.0官方提供了兩種HDFS HA的解決方案,一種是NFS,另一種是QJM。這裏我們使用簡單的QJM。在該方案中,主備NameNode之間通過一組JournalNode同步元數據信息,一條數據只要成功寫入多數JournalNode即認爲寫入成功。通常配置奇數個JournalNode

         這裏還配置了一個zookeeper集羣,用於ZKFCDFSZKFailoverController)故障轉移,當Active NameNode掛掉了,會自動切換Standby NameNodestandby狀態

        

安裝步驟:

         1.安裝配置zooekeeper集羣

                   1.1解壓

                            tar -zxvfzookeeper-3.4.5.tar.gz -C /itcast/

         1.2修改配置

                            cd/itcast/zookeeper-3.4.5/conf/

                            cp zoo_sample.cfgzoo.cfg

                            vim zoo.cfg

                            修改:dataDir=/itcast/zookeeper-3.4.5/tmp

                            在最後添加:

                            server.1=hadoop01:2888:3888

                            server.2=hadoop02:2888:3888

                            server.3=hadoop03:2888:3888

                            保存退出

                            然後創建一個tmp文件夾

                            mkdir/itcast/zookeeper-3.4.5/tmp

                            再創建一個空文件

                            touch/itcast/zookeeper-3.4.5/tmp/myid

                            最後向該文件寫入ID

                            echo 1 >/itcast/zookeeper-3.4.5/tmp/myid

         1.3將配置好的zookeeper拷貝到其他節點(首先分別在hadoop02hadoop03根目錄下創建一個itcast目錄:mkdir /itcast)

                            scp -r/itcast/zookeeper-3.4.5/ hadoop02:/itcast/

                            scp -r/itcast/zookeeper-3.4.5/ hadoop03:/itcast/

                           

                            注意:修改hadoop02hadoop03對應/itcast/zookeeper-3.4.5/tmp/myid內容

                            hadoop02

                                     echo 2 >/itcast/zookeeper-3.4.5/tmp/myid

                            hadoop02

                                     echo 3 >/itcast/zookeeper-3.4.5/tmp/myid

        

         2.安裝配置hadoop集羣

                   2.1解壓

                            tar -zxvfhadoop-2.2.0.tar.gz -C /itcast/

                   2.2配置HDFShadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目錄下)

                            hadoop添加到環境變量中

                            vim /etc/profile

                            exportJAVA_HOME=/usr/java/jdk1.6.0_45

                            exportHADOOP_HOME=/itcast/hadoop-2.2.0

                            exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

                           

                            cd/itcast/hadoop-2.2.0/etc/hadoop

                            2.2.1修改hadoo-env.sh

                                     exportJAVA_HOME=/usr/java/jdk1.6.0_45

                                    

                            2.2.2修改core-site.xml

                                     <configuration>

                                               <!--指定hdfsnameservicens1 -->

                                               <property>

                                                        <name>fs.defaultFS</name>

                                                        <value>hdfs://ns1</value>

                                               </property>

                                               <!--指定hadoop臨時目錄 -->

                                               <property>

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

                                                        <value>/itcast/hadoop-2.2.0/tmp</value>

                                               </property>

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

                                               <property>

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

                                                        <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>

                                               </property>

                                     </configuration>

                                    

                            2.2.3修改hdfs-site.xml

                                     <configuration>

                                               <!--指定hdfsnameservicens1,需要和core-site.xml中的保持一致 -->

                                               <property>

                                                        <name>dfs.nameservices</name>

                                                        <value>ns1</value>

                                               </property>

                                               <!--ns1下面有兩個NameNode,分別是nn1nn2 -->

                                               <property>

                                                        <name>dfs.ha.namenodes.ns1</name>

                                                        <value>nn1,nn2</value>

                                               </property>

                                               <!--nn1RPC通信地址 -->

                                               <property>

                                                        <name>dfs.namenode.rpc-address.ns1.nn1</name>

                                                        <value>hadoop01:9000</value>

                                               </property>

                                               <!--nn1http通信地址 -->

                                               <property>

                                                        <name>dfs.namenode.http-address.ns1.nn1</name>

                                                        <value>hadoop01:50070</value>

                                               </property>

                                               <!--nn2RPC通信地址 -->

                                               <property>

                                                        <name>dfs.namenode.rpc-address.ns1.nn2</name>

                                                        <value>hadoop02:9000</value>

                                               </property>

                                               <!--nn2http通信地址 -->

                                               <property>

                                                        <name>dfs.namenode.http-address.ns1.nn2</name>

                                                        <value>hadoop02:50070</value>

                                               </property>

                                               <!--指定NameNode的元數據在JournalNode上的存放位置 -->

                                               <property>

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

                                                        <value>qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns1</value>

                                               </property>

                                               <!--指定JournalNode在本地磁盤存放數據的位置 -->

                                               <property>

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

                                                        <value>/itcast/hadoop-2.2.0/journal</value>

                                               </property>

                                               <!--開啓NameNode失敗自動切換 -->

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

                                               </property>

                                               <!--使用隔離機制時需要ssh免登陸 -->

                                               <property>

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

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

                                               </property>

                                     </configuration>

                                    

                            2.2.4修改slaves

                                     hadoop01

                                     hadoop02

                                     hadoop03

                           

                   2.3配置YARN

                            2.3.1修改yarn-site.xml

                                     <configuration>

                                               <!--指定resourcemanager地址 -->

                                               <property>

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

                                                        <value>hadoop01</value>

                                               </property>

                                               <!--指定nodemanager啓動時加載server的方式爲shuffle server -->

                                               <property>

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

                                                        <value>mapreduce_shuffle</value>

                                               </property>

                                     </configuration>

2.3.2修改mapred-site.xml

                                     <configuration>

                                               <!--指定mr框架爲yarn方式 -->

                                               <property>

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

                                                        <value>yarn</value>

                                               </property>

                                     </configuration>                

2.4將配置好的hadoop拷貝到其他節點

                            scp -r/itcast/hadoop-2.2.0/ hadoo02:/itcast/

                            scp -r /itcast/hadoop-2.2.0/hadoo03:/itcast/      

2.5啓動zookeeper集羣(分別在hadoop01hadoop02hadoop03上啓動zk

                            cd/itcast/zookeeper-3.4.5/bin/

                            ./zkServer.sh start

                            查看狀態:

                            ./zkServer.sh status

                            (一個leader,兩個follower                           

2.6啓動journalnode(在hadoop01上啓動所有journalnode

                            cd /itcast/hadoop-2.2.0

                            sbin/hadoop-daemons.shstart journalnode

                            (運行jps命令檢驗,多了JournalNode進程)

                  

                   2.7格式化HDFS

                            hadoop01上執行命令:

                            hadoop namenode-format

                            格式化後會在根據core-site.xml中的hadoop.tmp.dir配置生成個文件,這裏我配置的是/itcast/hadoop-2.2.0/tmp,然後將/itcast/hadoop-2.2.0/tmp拷貝到hadoop02/itcast/hadoop-2.2.0/下。

                            scp -r tmp/hadoop02:/itcast/hadoop-2.2.0/

                   2.8格式化ZK(hadoop01上執行即可)

                            hdfs zkfc -formatZK

                   2.9啓動HDFS(hadoop01上執行)

                            sbin/start-dfs.sh

                   2.10啓動YARN(hadoop01上執行)

                            sbin/start-yarn.sh

到此,hadoop2.2.0配置完畢,可以統計瀏覽器訪問:

         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 /

         然後再killactiveNameNode

         kill -9 <pid of NN>

         通過瀏覽器訪問:http://192.168.1.202:50070

         NameNode 'hadoop02:9000' (active)

         這個時候hadoop02上的NameNode變成了active

         在執行命令:

         hadoop fs -ls /

         -rw-r--r--   3 root supergroup      1926 2014-02-06 15:36 /profile

         剛纔上傳的文件依然存在!!!

         手動啓動那個掛掉的NameNode

         sbin/hadoop-daemon.sh start namenode

         通過瀏覽器訪問:http://192.168.1.201:50070

         NameNode 'hadoop01:9000' (standby)

驗證YARN

         運行一下hadoop提供的demo中的WordCount程序:

         hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /profile/out

        

         OK,大功告成!!!

 參見:http://blog.163.com/frank_gwf/blog/static/23020501220141274320724/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章