1. 程式人生 > >從頭安裝hadoop環境

從頭安裝hadoop環境

hadoop配置 linux學習 openssh無密碼訪問 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

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

從頭安裝hadoop環境