系統環境:CentOS 5.10(虛拟機下)
[plain] view plain copy print ?
- [[email protected] hadoop]# lsb_release -a
- LSB Version: :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
- Distributor ID: CentOS
- Description: CentOS release 5.10 (Final)
- Release: 5.10
- Codename: Final
準備
Jdk安裝與配置 Oracle官網下載下傳jdk,這裡我下載下傳的是jdk-6u45-linux-i586.bin,并上傳到虛拟機上,使用root使用者,執行以下指令建立檔案夾,移動安裝檔案,執行安裝。 [plain] view plain copy print ?
- mkdir /usr/java
- mv/home/auxu/Desktop/jdk-6u45-linux-i586.bin /usr/java
- cd /usr/java
- ./jdk-6u45-linux-i586.bin
配置環境變量 [plain] view plain copy print ?
- vi /etc/profile
加入 export JAVA_HOME=/usr/java/jdk1.6.0_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
儲存完畢之後,執行: [sql] view plain copy print ?
- source /etc/profile
驗證java配置 [sql] view plain copy print ?
- [[email protected] java]# java -version
- java version "1.6.0_45"
- Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
- Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode, sharing)
可以簡單寫一個java class來進行測試,這裡不多說明
建立Hadoop使用者及相關應用檔案夾 同樣使用root使用者建立一個名為hadoop的新使用者 [plain] view plain copy print ?
- useradd hadoop
- passwd hadoop
建立應用檔案夾,以便進行之後的hadoop配置 [sql] view plain copy print ?
- mkdir /hadoop
- mkdir /hadoop/hdfs
- mkdir /hadoop/hdfs/data
- mkdir /hadoop/hdfs/name
- mkdir /hadoop/mapred
- mkdir /hadoop/mapred/local
- mkdir /hadoop/mapred/system
- mkdir /hadoop/tmp
将檔案夾屬主更改為hadoop使用者 [plain] view plain copy print ?
- chown -R hadoop /hadoop
設定Hadoop使用者使之可以免密碼ssh到localhost
[sql] view plain copy print ?
- su - hadoop
- ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
- cat ~/.ssh/id_dsa.pub>> ~/.ssh/authorized_keys
- cd /home/hadoop/.ssh
- chmod 600 authorized_keys
注意這裡的權限問題,保證.ssh目錄權限為700,authorized_keys為600
驗證: [plain] view plain copy print ?
- [[email protected] .ssh]$ ssh localhost
- Last login: Sun Nov 17 22:11:55 2013
ssh localhost之後無需輸入密碼就可以連接配接,配置OK
安裝配置Hadoop
建立目錄并安裝 重新切回root使用者,建立安裝目錄 [plain] view plain copy print ?
- su
[plain] view plain copy print ?
- mkdir /opt/hadoop
将安裝檔案移動到以上建立目錄,確定其執行權限,然後執行 [plain] view plain copy print ?
- mv /home/auxu/Desktop/hadoop-1.2.1.tar.gz /opt/hadoop
- cd /opt/hadoop
- tar -xzvf hadoop-1.2.1.tar.gz
将hadoop安裝目錄的屬主更改為hadoop使用者 [plain] view plain copy print ?
- chown -R hadoop /opt/hadoop
切換到hadoop使用者,修改配置檔案,這裡根據前面建立的應用檔案進行相關配置,依照各自情況而定 [plain] view plain copy print ?
- su - hadoop
[plain] view plain copy print ?
- cd /opt/hadoop/hadoop-1.2.1/conf
core-site.xml [html] view plain copy print ?
- <configuration>
- <property>
- <name>fs.default.name</name>
- <value>hdfs://localhost:9000</value>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/hadoop/tmp</value>
- </property>
- </configuration>
hdfs-site.xml
[html] view plain copy print ?
- <configuration>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- <property>
- <name>dfs.name.dir</name>
- <value>/hadoop/hdfs/name</value>
- </property>
- <property>
- <name>dfs.data.dir</name>
- <value>/hadoop/hdfs/data</value>
- </property>
- </configuration>
mapred-site.xml [html] view plain copy print ?
- <configuration>
- <property>
- <name>mapred.job.tracker</name>
- <value>localhost:9001</value>
- </property>
- </configuration>
hadoop-env.sh 配置JAVA_HOME 與 HADOOP_HOME_WARN_SUPPRESS。 PS:HADOOP_HOME_WARN_SUPPRESS這個變量可以避免某些情況下出現這樣的提醒 "WARM: HADOOP_HOME is deprecated” [plain] view plain copy print ?
- export JAVA_HOME=/usr/java/jdk1.6.0_45
- export HADOOP_HOME_WARN_SUPPRESS="TRUE"
- source hadoop-env.sh
重新配置 /etc/profile 檔案,最終如:
[html] view plain copy print ?
- export JAVA_HOME=/usr/java/jdk1.6.0_45
- export JRE_HOME=$JAVA_HOME/jre
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- export HADOOP_HOME=/opt/hadoop/hadoop-1.2.1
- export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使更新後的配置檔案生效 [html] view plain copy print ?
- source /etc/profile
測試hadoop安裝 [html] view plain copy print ?
- [[email protected] conf]$ hadoop version
- Hadoop 1.2.1
- Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152
- Compiled by mattf on Mon Jul 22 15:23:09 PDT 2013
- From source with checksum 6923c86528809c4e7e6f493b6b413a9a
啟動HADOOP
需要先格式化namenode,再啟動所有服務 [html] view plain copy print ?
- hadoop namenode -format
- start-all.sh
檢視程序 [html] view plain copy print ?
- [email protected] conf]$ jps
- 6360 NameNode
- 6481 DataNode
- 6956 Jps
- 6818 TaskTracker
- 6610 SecondaryNameNode
- 6698 JobTracker
如果能找到這些服務,說明Hadoop已經成功啟動了。 如果有什麼問題,可以去/opt/hadoop/hadoop-1.2.1/logs檢視相應的日志
最後就可以通過以下連結通路haddop服務了
localhost:50030/ for the Jobtracker
localhost:50070/ for the Namenode
localhost:50060/ for the Tasktracker
Hadoop JobTracker:
Hadoop Namenode:
Hadoop TaskTracker:
PS:完全分布式的安裝與僞分布式安裝大同小異,注意如下幾點即可 1.叢集内ssh免使用者登入 2.配置檔案中指定具體的ip位址(或機器名),而不是localhost 3.配置masters和slaves檔案,加入相關ip位址(或機器名)即可 以上配置需要在各個節點上保持一緻。