從頭安裝hadoop環境

請看上一篇linux 的安裝。

環境:centos6.5    3臺主機   (複製主機,可以直接複製虛擬機文件)一臺爲主,複製的爲從。

master-ip:192.168.237.10    slave1-ip:192.168.237.11   slave2-ip:192.168.237.12

上網調試: 分別進入slave1 和 slave2   裏面的  ifcfg-eth0 文件下修改 IPADDR  分別爲 11 和 12.

進入secureCRT,添加 slave1和slave2 的連接端口(填寫 ssh2下的hostname  和 username  屬性)

然後進入3臺主機 。測試是否可以上網。(如果複製的不可以。可以採取刪除網卡重新添加試試^_^)

軟件包:jdk-6u45-linux-x64.bin    hadoop-1.2.1-bin.tar.gz

步驟一:安裝jdk,配置java運行環境

1.可以使用rz  命令上傳jdk-6u45-linux-x64.bin

2.可以在wmware裏面設置(右擊標題--設置--文件共享打開並且指定共享文件位置)

複製程序到/usr/local/src  目錄下

#  cp   jdk-6u45-linux-x64.bin /usr/local/src/

# ll  jdk-6u45-linux-x64.bin(查看權限看是否有X 權限)

#./jdk-6u45-linux-x64.bin(安裝jdk)

3.配置java

# vim ~/.bashrc

export JAVA_HOME=/usr/local/src/jdk1.6.0_45

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/bin

export PATH=.:$PATH:$JAVA_HOME/bin

# source ~/.bashrc  (使剛纔配置生效)

4.測試java

在任意目錄下  # java    (如果命令生效則代表成功。否則從新回到第一步。檢查)


下面配置另外兩臺slave的 java環境

# scp  -rp /usr/local/src/jdk1.6.0_45 192.168.237.11:/usr/local/src

# scp -rp /usr/local/src/jdk1.6.0_45 192.168.237.12:/usr/local/src

(這裏選項 -r: 遞歸複製整個目錄。-p:保留原文件的修改時間,訪問時間和訪問權限。)

然後分別修改 環境變量設置     ~/.bashrc    文件   同上面的。

步驟二:hadoop相關配置文件信息解析,配置


一 概述:

(1)Hadoop MapReduce採用Master/Slave結構。

*Master:是整個集羣的唯一的全局管理者,功能包括:作業管理、狀態監控和任務調度等,即MapReduce中的JobTracker。

*Slave:負責任務的執行和任務狀態的回報,即MapReduce中的TaskTracker。

二 JobTracker剖析:

(1)概述:JobTracker是一個後臺服務進程,啓動之後,會一直監聽並接收來自各個TaskTracker發送的心跳信息,包括資源使用情況和任務運行情況等信息。 

(2)JobTracker的主要功能:

1.作業控制:在hadoop中每個應用程序被表示成一個作業,每個作業又被分成多個任務,JobTracker的作業控制模塊則負責作業的分解和狀態監控。

*最重要的是狀態監控:主要包括TaskTracker狀態監控、作業狀態監控和任務狀態監控。主要作用:容錯和爲任務調度提供決策依據。

2.資源管理。

三 TaskTracker剖析:

(1)TaskTracker概述:TaskTracker是JobTracker和Task之間的橋樑:一方面,從JobTracker接收並執行各種命令:運行任務、提交任務、殺死任務等;另一方面,將本地節點上各個任務的狀態通過心跳週期性彙報給JobTracker。TaskTracker與JobTracker和Task之間採用了RPC協議進行通信。

(2)TaskTracker的功能:

1.彙報心跳:Tracker週期性將所有節點上各種信息通過心跳機制彙報給JobTracker。這些信息包括兩部分:

*機器級別信息:節點健康情況、資源使用情況等。

*任務級別信息:任務執行進度、任務運行狀態等。

2.執行命令:JobTracker會給TaskTracker下達各種命令,主要包括:啓動任務(LaunchTaskAction)、提交任務(CommitTaskAction)、殺死任務(KillTaskAction)、殺死作業(KillJobAction)和重新初始化(TaskTrackerReinitAction)。


hadoop 集羣中有兩種節點,一種是namenode,還有一種是datanode。

其中datanode主要負責數據的存儲,namenode主要負責三個功能,分別是(1)管理元數據  (2)維護目錄樹 (3)響應客戶請求

hadoop的安裝配置:同樣把hadoop-1.2.1-bin.tar.gz拷貝到 /usr/local/src/

解壓:  # tar  zxvf hadoop-1.2.1-bin.tar.gz

進入hadoop-1.2.1創建hadoop運行所需的臨時文件  tmp

# cd hadoop-1.2.1  &&  mkdir tmp

修改配置文件:

1. # vim  master

master

2. # vim slaves

slave1

slave2

3. # vim core-site.xml       (設置tmp目錄和 namenode節點)

####添加如下內容

<property>

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

                <value>/usr/local/src/hadoop-1.2.1/tmp</value>

</property>

<property>

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

                <value>hdfs://192.168.237.10:9000</value>

</property>

4.#vim mapred-site.xml(配置 jobtracker)

#####添加如下內容

        <property>

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

                <value>http://192.168.237.10:9001</value>

        </property>

5. #vim hdfs-site.xml

##########添加如下內容

        <property>

                <name>dfs.replication</name>

                <value>3</value>

        </property>         

  6.# vim  hadoop-env.sh

  最結尾添加:export JAVA_HOME=/usr/local/src/jdk1.6.0_45

     # source hadoop-env.sh

  檢查下,修改配置文件是否完成。

  然後複製給給slave1和slave2

  #  scp -rp hadoop-1.2.1 slave1:/usr/local/src/(這裏的slave1 是這192.168.237.11機器配置完hostname後使用。)

#  scp -rp hadoop-1.2.1 slave2:/usr/local/src/(如果沒有配置hostname,請使用ip地址)

  配置master的DNS和hosts

  # vim  /etc/hosts

    ### 添加如下

     192.168.237.10  master

     192.168.237.11 slave1

     192.168.237.12 slave2

  # vim /etc/sysconfig/network

  HOSTNAME=master

  # hostname master

  slave1和slave2的修改:

              # vim /etc/hosts

              192.168.237.10  master

  192.168.237.11 slave1

  192.168.237.12 slave2

  slave1:

  # vim /etc/sysconfig/network

  HOSTNAME=slave1

  # hostname slave1

  slave2:

  # vim /etc/sysconfig/network

  HOSTNAME=slave2

  # hostname slave2

步驟三:下面需要主機之間進行免密碼登錄;配置openssl

建議先關閉防護牆和selinux

  # /etc/init.d/iptable stop

  # setenforce 0

進入master主機:

# ssh-keygen      (然後一路回車即可)

# cd ~/.ssh/ (查看是否生成公鑰文件)

# cat id_rsa.pub >authorized_keys   (authorized_keys 是認證文件,存放公鑰。是一個3臺主機都共同需要的)

依次進入slave1和slave2 主機:

# ssh-keygen 

# cd ~/.ssh/

分別把slave1 和 slave2的  id_rsa.pub  文件裏面的內容 複製給 master裏面的authorized_keys

然後進入將master裏面的 ~/.ssh/authorized_keys   分發給slave1和 slave2 中的  ~/.ssh/ 目錄下

步驟四:啓動hadoop

# ./hadoop namenode -format  (初始化namenode)

# ./start-all.sh  (啓動hadoop)

# jsp (查看信息)

如果有異常請重點檢查配置文件

下面是幾條簡單的hadoop命令

# cd /usr/local/src/hadoop-1.2.1/bin

#./hadoop fs -ls /

# ./hadoop fs -put /usr/local/src/hadoop-1.2.1/README.txt /

# ./hadoop fs -ls /

             -rw-r--r--   3 root supergroup       1366 2018-03-26 18:57 /README.txt

如果,你覺得可以請繼續關注。陸續會有系列跟新。

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