hadoop徹底分佈式集羣搭建

                hadoop分佈式集羣搭搭建(環境:linux虛擬機上)java

1.準備工做:(規劃主機名,ip及用途,先搭建三臺,第四臺動態的添加node

            用途欄中,也能夠把namenode,secondaryNamenode及jobTrackerlinux

            分開部署,看實際需求,不惟一)安全

  主機名        機器ip        用途服務器

  cloud01    192.168.1.101    namenode/secondaryNamenode/jobTrackerssh

  cloud02    192.168.1.102    datanode/taskTracker分佈式

  cloud03    192.168.1.103    datanode/taskTrackeroop

  cloud04    192.168.1.104    datanode/taskTrackerspa

2.配置linux環境(如下參照僞分佈式的搭建)orm

    2.1修改主機名(cloud01,cloud02,cloud03)

    2.2修改每臺機器的ip(按照本身分配的)

    2.3修改主機名與ip的映射關係

       (只在cloud01上修改,改完後拷貝到其它機器上就行,指令:

        scp /etc/profile cloud02:/etc/

        scp /etc/profile cloud03:/etc/)

    2.4關閉防火牆

    2.5重啓

3.安裝jdk(參照僞分佈式的搭建,版本以jdk1.6.0_45爲例)

  只須要在一臺機器上安裝,而後拷貝到其餘機器上(軟件最好統一管理)

  例如在cloud01上jdk安裝在/soft/java下

  (使用指令:scp -r /soft/java/ cloud02:/soft/

            scp -r /soft/java/ cloud03:/soft/

  就能夠把jdk拷貝過去了.可是咱們暫時不拷貝過去,等下面hadoop安裝好後,一塊兒拷過去)

4.安裝hadoop集羣(hadoop版本以hadoop-1.1.2爲例)

    4.1上傳hadoop壓縮包到/soft目錄下,並解壓到該目錄下(參照僞分佈式的搭建)

    4.2配置hadoop(此次須要配置6個文件)

    4.21hadoop-env.sh

        在第九行

        export JAVA_HOME=/soft/java/jdk1.6.0_45 (注意把前面的#號去掉)

    4.22core-site.xml

        <!-- 指定HDFS的namenode的通訊地址 -->

        <property>

            <name>fs.default.name</name>

            <value>hdfs://cloud01:9000</value>

        </property>

        <!-- 指定hadoop運行時產生文件的存放目錄 -->

        <property>

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

            <value>/soft/hadoop-1.1.2/tmp</value>

        </property>

    4.23hdfs-site.xml

        <!-- 配置HDFS副本的數量(根據需求,實際狀況本身定義,默認爲3份) -->

        <property>

            <name>dfs.replication</name>

            <value>3</value>

        </property>

    4.24mapred-site.xml

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

        <property>

            <name>mapred.job.tracker</name>

            <value>cloud01:9001</value>

        </property>

    4.25masters(指定secondarynamenode地址)

        cloud01

    4.26slaves(指定子節點)

        cloud02

        cloud03

    4.3將配置好的hadoop拷貝到其餘兩臺機器上

        直接將soft那個文件夾都拷貝過去(裏面包含了jdk和hadoop,因此強烈建議

        文件要統一管理)

        指令:

        scp -r /soft/ cloud02:/

        scp -r /soft/ cloud03:/

    4.4配置ssh免登

        是主節點到子節點的免登錄

        即cloud01到cloud02和cloud03的免登錄

        在cloud01上生成便可

        指令:ssh-keygen -t rsa

        而後拷貝到其它兩臺機器上

        指令:ssh-copy-id -i cloud02

         ssh-copy-id -i cloud03

    4.5格式化hadoop

        只須要在cloud01(主節點namenode)上格式化就行

        指令:hadoop namenode -format

    4.6驗證

        啓動集羣 指令:start-all.sh

        若是啓動過程,報錯safemode相關的Exception

        執行命令:hadoop dfsadmin -safemode leave(退出安全模式)

        再次啓動hadoop

        而後jps一下,查看各臺機器,看是否和規劃好的用途同樣便可)

        OK,若是和規劃好的同樣,就大功告成了.

5.動態添加一臺節點

        (在實際生產過程當中,很常見,很實用)

        cloud04    192.168.1.104    datanode/taskTracker

    5.1經過clone的方式添加一臺linux(以clone cloud01爲例.實際生產過程當中不會這樣,

       由於實際生產過程當中不多用虛擬機,都是直接服務器.注意,clone時,

       得先把要clone的機器給停掉)

    5.2修改主機名,ip地址,配置映射文件,關閉防火牆,再hadoop配置

        文件slaves中添加cloud04,設置免登錄,重啓

       (clone的話,就無需再配置映射文件,和關閉防火牆了.由於

        你clone的那臺機器已經配置好了)

    5.3重啓機器後,分別啓動datanode和taskTracker

        指令:hadoop-daemon.sh start datanode

         hadoop-daemon.sh start tasktracker

    5.4在cloud01上即namenode所在節點上運行命令刷新

       hadoop dfsadmin -refreshNodes

    5.5驗證

        http://linux的ip:50070(hdfs管理界面)

        看是否多了一個節點,若是多了一個,則大功告成了!

6.刪除一臺節點(此處爲收集)

    6.1在cloud01上修改/soft/hadoop-1.1.2/conf/hdfs-site.xml文件

        添加配置信息:

        <property>

            <name>dfs.hosts.exclude</name>

            <value>/soft/hadoop-1.1.2/conf/excludes</value>

        </property>

    6.2肯定要下架的機器

        dfs.hosts.exclude定義的文件內容爲,每一個須要下線的機器,一行一個。

    6.3強制從新加載配置

        指令:hadoop dfsadmin  -refreshNodes

    6.4關閉節點

        指令:hadoop dfsadmin -report 

        能夠查看到如今集羣上鍊接的節點

        正在執行Decommission,會顯示: 

        Decommission Status : Decommission in progress   

        執行完畢後,會顯示: 

        Decommission Status : Decommissioned 

    6.5再次編輯excludes文件

        一旦完成了機器下架,它們就能夠從excludes文件移除了

        登陸要下架的機器,會發現DataNode進程沒有了,可是TaskTracker依然存在,

        須要手工處理一下

相關文章
相關標籤/搜索